Documentation ¶
Index ¶
- Constants
- func NewIPv4() net.IP
- func NewIPv6() net.IP
- func NewIPv6FromPrefix(prefix *net.IPNet) net.IP
- func NewPrefixedIPv6() (ip net.IP, ifi *net.Interface, err error)
- func ParseMessage(data []byte) (interface{}, error)
- type AddressDeclarationPayload
- type PacketConn
- type SessionDataPayload
- type SessionInitiationPayload
Constants ¶
View Source
const ( TypeAddressDeclaration uint8 = iota TypeSessionInitiation TypeSessionData )
Variables ¶
This section is empty.
Functions ¶
func NewIPv6FromPrefix ¶
NewIPv6FromPrefix generates a globally routable unicast prefixed multicast address with the same prefix as the given net.IPNet
func NewPrefixedIPv6 ¶
NewPrefixedIPv6 generates a globally routable, unicast-prefixed multicast address with the same prefix as the returned net.Interface
func ParseMessage ¶
Types ¶
type AddressDeclarationPayload ¶
type AddressDeclarationPayload struct { Type uint8 Port uint16 Address [16]byte Src [32]byte Signature [ed25519.SignatureSize]byte }
func NewAddressDeclarationPayload ¶
func NewAddressDeclarationPayload(addr net.UDPAddr, key ed25519.PrivateKey) (p AddressDeclarationPayload)
func ParseAddressDeclarationPayload ¶
func ParseAddressDeclarationPayload(data []byte) (p AddressDeclarationPayload, err error)
func (AddressDeclarationPayload) Bytes ¶
func (p AddressDeclarationPayload) Bytes() (d []byte)
func (AddressDeclarationPayload) Validate ¶
func (p AddressDeclarationPayload) Validate() bool
type PacketConn ¶
type PacketConn interface { WriteTo(b []byte, dst net.Addr) (n int, err error) ReadFrom(b []byte) (n int, src net.Addr, err error) SetDeadline(time.Time) error Close() error Group() net.Addr }
PacketConn is the shared interface of an ipv4 or ipv6 packet connection
func NewIPv4Conn ¶
NewIPv4Conn creates a new ipv4 packet connection
func NewIPv6Conn ¶
NewIPv6Conn creates a new ipv6 packet connection
type SessionDataPayload ¶
func NewSessionDataPayload ¶
func NewSessionDataPayload(sessKey []byte, sessID [16]byte, data []byte) (p SessionDataPayload)
func ParseSessionDataPayload ¶
func ParseSessionDataPayload(data []byte) (p SessionDataPayload, err error)
func (SessionDataPayload) Bytes ¶
func (p SessionDataPayload) Bytes() []byte
type SessionInitiationPayload ¶
type SessionInitiationPayload struct { Type uint8 SessionID [16]byte Src, Dst [32]byte SessionKey [32]byte Signature [ed25519.SignatureSize]byte }
func NewSessionInitiationPayload ¶
func NewSessionInitiationPayload(src ed25519.PrivateKey, dst ed25519.PublicKey, sessID []byte) (p SessionInitiationPayload, priv [32]byte, err error)
func ParseSessionInitiationPayload ¶
func ParseSessionInitiationPayload(data []byte) (p SessionInitiationPayload, err error)
func (SessionInitiationPayload) Bytes ¶
func (p SessionInitiationPayload) Bytes() []byte
func (SessionInitiationPayload) Validate ¶
func (p SessionInitiationPayload) Validate() bool
Click to show internal directories.
Click to hide internal directories.