openbazaar-go/net
Version: 0.12.4
Source: https://github.com/OpenBazaar/openbazaar-go/
import "github.com/OpenBazaar/openbazaar-go/net"
Overview
Index
- Constants
- Variables
- func CreateHiddenServiceKey(repoPath string) (onionAddr string, err error)
- func Decrypt(privKey libp2p.PrivKey, ciphertext []byte) ([]byte, error)
- func Encrypt(pubKey libp2p.PubKey, plaintext []byte) ([]byte, error)
- func GetTorControlPort() (int, error)
- func MaybeCreateHiddenServiceKey(repoPath string) (onionAddr string, err error)
- func NATtoString(i stunlib.NATType) string
- func Shuffle(a []string)
- func Stun() (int, error)
- type BanManager
- func NewBanManager(blockedIds []peer.ID) *BanManager
- func (bm *BanManager) AddBlockedId(peerId peer.ID)
- func (bm *BanManager) GetBlockedIds() []peer.ID
- func (bm *BanManager) IsBanned(peerId peer.ID) bool
- func (bm *BanManager) RemoveBlockedId(peerId peer.ID)
- func (bm *BanManager) SetBlockedIds(peerIds []peer.ID)
- type NetworkService
Constants
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
)
Variables
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{
"stun.ekiga.net",
"stun.ideasip.com",
"stun.voiparound.com",
"stun.voipbuster.com",
"stun.voipstunt.com",
"stun.voxgratia.org",
}
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 {
*sync.RWMutex
// 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