Documentation
¶
Index ¶
- Constants
- Variables
- func DecryptMessage(data []byte, nonce [NonceByteLength]byte, publicKey Key, privateKey Key) ([]byte, error)
- func EncryptMessage(data []byte, nonce [NonceByteLength]byte, recipientPublicKey Key, ...) []byte
- type AddDeviceControlMessage
- type AddDeviceMessage
- type AddDeviceRequestMessage
- type AddDeviceSolvedMessage
- type Address
- type ClientAuthMessage
- type ClientHelloMessage
- type ClientState
- type CloseCode
- type CombinedSequenceNumber
- type Cookie
- type Device
- type DisconnectedMessage
- type DropResponderMessage
- type Key
- type Message
- type MessageType
- type NewInitiatorMessage
- type NewResponderMessage
- type Nonce
- type OverflowNumber
- type SendErrorMessage
- type SequenceNumber
- type ServerAuthMessage
- type ServerHelloMessage
- type TypedMessage
Constants ¶
View Source
const KeyByteLength = 32
View Source
const (
NonceByteLength = 24
)
View Source
const (
SaltyRTCSubprotocol = "v1.saltyrtc.org"
)
Variables ¶
View Source
var (
CannotSplitMessage = errors.New("cannot split the message, probably no nonce sent")
)
View Source
var (
DecryptionFailed = errors.New("decryption failed")
)
View Source
var (
HexKeyNot32BytesLong = errors.New("given hexKey is not 32 bytes (64 hex chars) long")
)
View Source
var (
OverflowReached = errors.New("overflow of combined sequence number reached")
)
Functions ¶
func DecryptMessage ¶
func EncryptMessage ¶
Types ¶
type AddDeviceControlMessage ¶
func NewAddDeviceControlMessage ¶
func NewAddDeviceControlMessage(uuid string) AddDeviceControlMessage
type AddDeviceMessage ¶
type AddDeviceMessage struct { PublicKey Key Nonce [NonceByteLength]byte Data []byte }
func AddDeviceMessageFromBytes ¶
func AddDeviceMessageFromBytes(message []byte) (*AddDeviceMessage, error)
func (AddDeviceMessage) ToBytes ¶
func (m AddDeviceMessage) ToBytes() []byte
type AddDeviceRequestMessage ¶
type AddDeviceRequestMessage struct {
Message
}
type AddDeviceSolvedMessage ¶
type ClientAuthMessage ¶
type ClientAuthMessage struct { Message YourCookie Cookie `msgpack:"your_cookie"` SubProtocols []string `msgpack:"subprotocols"` PingInterval int `msgpack:"ping_interval"` YourKey Key `msgpack:"your_key"` }
func DecodeClientAuthMessageFromBytes ¶
func DecodeClientAuthMessageFromBytes( data []byte, nonce [NonceByteLength]byte, publicKey, privateKey Key, ) (*ClientAuthMessage, error)
func (ClientAuthMessage) ContainsSubProtocol ¶
func (m ClientAuthMessage) ContainsSubProtocol(subProtocol string) bool
type ClientHelloMessage ¶
func DecodeClientHelloMessageFromBytes ¶
func DecodeClientHelloMessageFromBytes(rawBytes []byte) (*ClientHelloMessage, error)
type CloseCode ¶
type CloseCode uint
var ( PathFullCode CloseCode = 3000 ProtocolErrorCode CloseCode = 3001 InternalErrorCode CloseCode = 3002 HandoverOfTheSignalingChannelCode CloseCode = 3003 DroppedByInitiatorCode CloseCode = 3004 InitiatorCouldNotDecryptCode CloseCode = 3005 InvalidKeyCode CloseCode = 3007 TimeoutCode CloseCode = 3008 DropResponderProtocolErrorCode CloseCode = 3001 DropResponderInternalErrorCode CloseCode = 3002 DropResponderDroppedByInitiatorCode CloseCode = 3004 DropResponderInitiatorCouldNotDecryptCode CloseCode = 3005 )
type CombinedSequenceNumber ¶
type CombinedSequenceNumber struct { SequenceNumber SequenceNumber OverflowNumber OverflowNumber }
func NewCombinedSequenceNumber ¶
func NewCombinedSequenceNumber(sequenceNumber SequenceNumber, overflowNumber OverflowNumber) CombinedSequenceNumber
func (CombinedSequenceNumber) Empty ¶
func (n CombinedSequenceNumber) Empty() bool
func (CombinedSequenceNumber) Equal ¶
func (n CombinedSequenceNumber) Equal(combinedSequenceNumber CombinedSequenceNumber) bool
func (CombinedSequenceNumber) Increment ¶
func (n CombinedSequenceNumber) Increment() (*CombinedSequenceNumber, error)
type DisconnectedMessage ¶
func NewDisconnectedMessage ¶
func NewDisconnectedMessage(id Address) DisconnectedMessage
type DropResponderMessage ¶
type DropResponderMessage struct { Message ID Address `msgpack:"id"` Reason CloseCode `msgpack:"reason"` }
func DecodeDropResponderMessageFromBytes ¶
func DecodeDropResponderMessageFromBytes( data []byte, nonce [NonceByteLength]byte, publicKey, privateKey Key, ) (*DropResponderMessage, error)
type Message ¶
type Message struct {
Type MessageType `msgpack:"type"`
}
func (*Message) MessageType ¶
func (m *Message) MessageType() MessageType
type MessageType ¶
type MessageType string
const ( ServerHello MessageType = "server-hello" ClientHello MessageType = "client-hello" ClientAuth MessageType = "client-auth" ServerAuth MessageType = "server-auth" NewInitiator MessageType = "new-initiator" NewResponder MessageType = "new-responder" DropResponder MessageType = "drop-responder" Disconnected MessageType = "disconnected" SendError MessageType = "send-error" AddDeviceControl MessageType = "add-device-control" )
type NewInitiatorMessage ¶
type NewInitiatorMessage struct {
Message
}
func NewNewInitiatorMessage ¶
func NewNewInitiatorMessage() NewInitiatorMessage
type NewResponderMessage ¶
func NewNewResponderMessage ¶
func NewNewResponderMessage(responderAddress Address) NewResponderMessage
type Nonce ¶
type Nonce struct { Cookie Cookie Source Address Destination Address OverflowNumber OverflowNumber SequenceNumber SequenceNumber }
func NonceFromBytes ¶
func NonceFromBytes(bytes [NonceByteLength]byte) Nonce
func (Nonce) Bytes ¶
func (n Nonce) Bytes() [NonceByteLength]byte
type OverflowNumber ¶
type OverflowNumber [2]byte
func NewOverflowNumber ¶
func NewOverflowNumber() OverflowNumber
func OverflowNumberFromInt ¶
func OverflowNumberFromInt(value uint16) OverflowNumber
func (OverflowNumber) Empty ¶
func (n OverflowNumber) Empty() bool
func (OverflowNumber) Equal ¶
func (n OverflowNumber) Equal(overflowNumber OverflowNumber) bool
func (OverflowNumber) Int ¶
func (n OverflowNumber) Int() uint16
type SendErrorMessage ¶
type SequenceNumber ¶
type SequenceNumber [4]byte
func NewSequenceNumber ¶
func NewSequenceNumber() (*SequenceNumber, error)
func SequenceNumberFromInt ¶
func SequenceNumberFromInt(value uint32) SequenceNumber
func (SequenceNumber) Empty ¶
func (n SequenceNumber) Empty() bool
func (SequenceNumber) Equal ¶
func (n SequenceNumber) Equal(sequenceNumber SequenceNumber) bool
func (SequenceNumber) Int ¶
func (n SequenceNumber) Int() uint32
type ServerAuthMessage ¶
type ServerAuthMessage struct { Message YourCookie Cookie `msgpack:"your_cookie"` SignedKeys []byte `msgpack:"signed_keys"` InitiatorConnected *bool `msgpack:"initiator_connected,omitempty"` Responders *[]Address `msgpack:"responders"` }
func NewServerAuthMessage ¶
type ServerHelloMessage ¶
func NewServerHelloMessage ¶
func NewServerHelloMessage(sessionPublicKey Key) ServerHelloMessage
type TypedMessage ¶
type TypedMessage interface {
MessageType() MessageType
}
Click to show internal directories.
Click to hide internal directories.