mikey

package
v4.16.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 12, 2025 License: MIT Imports: 1 Imported by: 0

Documentation

Overview

Package mikey contains functions to decode and encode MIKEY messages.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CSIDMapType

type CSIDMapType uint8

CSIDMapType is a CS ID map type.

const (
	CSIDMapTypeSRTPID CSIDMapType = 0
)

RFC3830, Table 6.1.d

type DataType

type DataType uint8

DataType is a message data type.

const (
	DataTypeInitiatorPSK DataType = 0
)

RFC3830, Table 6.1.a

type Header struct {
	Version     uint8
	DataType    DataType
	V           bool
	PRFFunc     uint8
	CSBID       uint32
	CSIDMapType CSIDMapType
	CSIDMapInfo []SRTPIDEntry
}

Header is a MIKEY header.

type Message

type Message struct {
	Header   Header
	Payloads []Payload
}

Message is a MIKEY message.

func (*Message) Marshal

func (m *Message) Marshal() ([]byte, error)

Marshal encodes a Message.

func (*Message) Unmarshal

func (m *Message) Unmarshal(buf []byte) error

Unmarshal decodes a Message.

type Payload

type Payload interface {
	// contains filtered or unexported methods
}

Payload is a MIKEY payload.

type PayloadKEMAC

type PayloadKEMAC struct {
	EncrAlg     PayloadKEMACEncrAlg
	SubPayloads []*SubPayloadKeyData
	MacAlg      PayloadKEMACMacAlg
}

PayloadKEMAC is a Key data transport payload.

type PayloadKEMACEncrAlg

type PayloadKEMACEncrAlg uint8

PayloadKEMACEncrAlg is a encryption algorithm.

const (
	PayloadKEMACEncrAlgNULL PayloadKEMACEncrAlg = 0
)

RFC3830, Table 6.2.a

type PayloadKEMACMacAlg

type PayloadKEMACMacAlg uint8

PayloadKEMACMacAlg is a authentication algorithm.

const (
	PayloadKEMACMacAlgNULL PayloadKEMACMacAlg = 0
)

RFC3830, Table 6.2.b

type PayloadRAND

type PayloadRAND struct {
	Data []byte
}

PayloadRAND is a payload with random data.

type PayloadSP

type PayloadSP struct {
	PolicyNo     uint8
	ProtType     PayloadSPProtType
	PolicyParams []PayloadSPPolicyParam
}

PayloadSP is a security policy payload.

type PayloadSPPolicyParam

type PayloadSPPolicyParam struct {
	Type  PayloadSPPolicyParamType
	Value []byte
}

PayloadSPPolicyParam is a policy param.

type PayloadSPPolicyParamType

type PayloadSPPolicyParamType uint8

PayloadSPPolicyParamType is a policy param type.

const (
	PayloadSPPolicyParamTypeEncrAlg           PayloadSPPolicyParamType = 0
	PayloadSPPolicyParamTypeSessionEncrKeyLen PayloadSPPolicyParamType = 1
	PayloadSPPolicyParamTypeAuthAlg           PayloadSPPolicyParamType = 2
	PayloadSPPolicyParamTypeSessionAuthKeyLen PayloadSPPolicyParamType = 3
	PayloadSPPolicyParamTypeSessionSaltKeyLen PayloadSPPolicyParamType = 4
	PayloadSPPolicyParamTypeSRTPPseudoRandFun PayloadSPPolicyParamType = 5
	PayloadSPPolicyParamTypeKeyDerRate        PayloadSPPolicyParamType = 6
	PayloadSPPolicyParamTypeSRTPEncrOffOn     PayloadSPPolicyParamType = 7
	PayloadSPPolicyParamTypeSRTCPEncrOffOn    PayloadSPPolicyParamType = 8
	PayloadSPPolicyParamTypeSenderFECOrder    PayloadSPPolicyParamType = 9
	PayloadSPPolicyParamTypeSRTPAuthOffOn     PayloadSPPolicyParamType = 10
	PayloadSPPolicyParamTypeAuthTagLen        PayloadSPPolicyParamType = 11
	PayloadSPPolicyParamTypeSRTPPrefixLen     PayloadSPPolicyParamType = 12
)

RFC3830, Table 6.10.1.a

type PayloadSPProtType

type PayloadSPProtType uint8

PayloadSPProtType is a security protocol.

const (
	PayloadSPProtTypeSRTP PayloadSPProtType = 0
)

RFC3830, Table 6.2.a

type PayloadT

type PayloadT struct {
	TSType  uint8
	TSValue uint64
}

PayloadT is a timestamp payload.

type SRTPIDEntry

type SRTPIDEntry struct {
	PolicyNo uint8
	SSRC     uint32
	ROC      uint32
}

SRTPIDEntry is an entry of a SRTP-ID map.

type SubPayloadKeyData

type SubPayloadKeyData struct {
	Type    SubPayloadKeyDataKeyType
	KV      uint8
	KeyData []byte
}

SubPayloadKeyData is a key data sub-payload.

type SubPayloadKeyDataKeyType

type SubPayloadKeyDataKeyType uint8

SubPayloadKeyDataKeyType is a data key type.

const (
	SubPayloadKeyDataKeyTypeTEK SubPayloadKeyDataKeyType = 2
)

RFC3830, table 6.13.a

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL