 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    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
- type NetworkService
Constants ¶
      View Source
      
  
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 ¶
      View Source
      
  
    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") )
      View Source
      
  
    var ( OutOfOrderMessage error = errors.New("Message arrived out of order") DuplicateMessage error = errors.New("Duplicate Message") )
      View Source
      
  
    var STUN_PORT int = 3478
    
      View Source
      
  
var STUN_SERVERS []string = []string{
	"stun.ekiga.net",
	"stun.ideasip.com",
	"stun.voiparound.com",
	"stun.voipbuster.com",
	"stun.voipstunt.com",
	"stun.voxgratia.org",
}
    Functions ¶
func CreateHiddenServiceKey ¶ added in v0.2.0
Generate a new RSA key and onion address and save it to the repo
func GetTorControlPort ¶ added in v0.2.0
Return the Tor control port if Tor is running or an error
func MaybeCreateHiddenServiceKey ¶ added in v0.2.0
Generate a new key pair if one does not already exist
func NATtoString ¶
Types ¶
type BanManager ¶ added in v0.5.1
func NewBanManager ¶ added in v0.5.1
func NewBanManager(blockedIds []peer.ID) *BanManager
func (*BanManager) AddBlockedId ¶ added in v0.5.1
func (bm *BanManager) AddBlockedId(peerId peer.ID)
func (*BanManager) GetBlockedIds ¶ added in v0.5.1
func (bm *BanManager) GetBlockedIds() []peer.ID
func (*BanManager) RemoveBlockedId ¶ added in v0.5.1
func (bm *BanManager) RemoveBlockedId(peerId peer.ID)
func (*BanManager) SetBlockedIds ¶ added in v0.5.1
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
}
     Click to show internal directories. 
   Click to hide internal directories.