Version: 0.12.4


import ""




const (
    // The version of the encryption algorithm used. Currently only 1 is supported
    CiphertextVersion = 1

    // Length of the serialized version in bytes
    CiphertextVersionBytes = 4

    // Length of the secret key used to generate the AES and MAC keys in bytes
    SecretKeyBytes = 32

    // Length of the AES key in bytes
    AESKeyBytes = 32

    // Length of the MAC key in bytes
    MacKeyBytes = 32

    // Length of the RSA encrypted secret key ciphertext in bytes
    EncryptedSecretKeyBytes = 512

    // Length of the MAC in bytes
    MacBytes = 32

    // Length of nacl nonce
    NonceBytes = 24

    // Length of nacl ephemeral public key
    EphemeralPublicKeyBytes = 32


var (
    // The ciphertext cannot be shorter than CiphertextVersionBytes + EncryptedSecretKeyBytes + aes.BlockSize + MacKeyBytes
    ErrShortCiphertext = errors.New("Ciphertext is too short")

    // The HMAC included in the ciphertext is invalid
    ErrInvalidHmac = errors.New("Invalid Hmac")

    // Nacl box decryption failed
    BoxDecryptionError = errors.New("Failed to decrypt curve25519")

    // Satic salt used in the hdkf
    Salt = []byte("OpenBazaar Encryption Algorithm")
var (
    OutOfOrderMessage error = errors.New("Message arrived out of order")
    DuplicateMessage  error = errors.New("Duplicate Message")
var STUN_PORT int = 3478
var STUN_SERVERS []string = []string{

func CreateHiddenServiceKey

func CreateHiddenServiceKey(repoPath string) (onionAddr string, err error)

Generate a new RSA key and onion address and save it to the repo

func Decrypt

func Decrypt(privKey libp2p.PrivKey, ciphertext []byte) ([]byte, error)

func Encrypt

func Encrypt(pubKey libp2p.PubKey, plaintext []byte) ([]byte, error)

func GetTorControlPort

func GetTorControlPort() (int, error)

Return the Tor control port if Tor is running or an error

func MaybeCreateHiddenServiceKey

func MaybeCreateHiddenServiceKey(repoPath string) (onionAddr string, err error)

Generate a new key pair if one does not already exist

func NATtoString

func NATtoString(i stunlib.NATType) string

func Shuffle

func Shuffle(a []string)

func Stun

func Stun() (int, error)

type BanManager

type BanManager struct {
    // contains filtered or unexported fields

func NewBanManager

func NewBanManager(blockedIds []peer.ID) *BanManager

func (*BanManager) AddBlockedId

func (bm *BanManager) AddBlockedId(peerId peer.ID)

func (*BanManager) GetBlockedIds

func (bm *BanManager) GetBlockedIds() []peer.ID

func (*BanManager) IsBanned

func (bm *BanManager) IsBanned(peerId peer.ID) bool

func (*BanManager) RemoveBlockedId

func (bm *BanManager) RemoveBlockedId(peerId peer.ID)

func (*BanManager) SetBlockedIds

func (bm *BanManager) SetBlockedIds(peerIds []peer.ID)

type NetworkService

type NetworkService interface {
    // Handle incoming streams
    HandleNewStream(s inet.Stream)

    // Get handler for mesage type
    HandlerForMsgType(t pb.Message_MessageType) func(peer.ID, *pb.Message, interface{}) (*pb.Message, error)

    // Send request to a peer and wait for the response
    SendRequest(ctx context.Context, p peer.ID, pmes *pb.Message) (*pb.Message, error)

    // Send a message to a peer without requiring a response
    SendMessage(ctx context.Context, p peer.ID, pmes *pb.Message) error

    // Disconnect from the given peer
    DisconnectFromPeer(p peer.ID) error

Generated by godoc2md