package extension

Import Path
	github.com/pion/dtls/v3/pkg/protocol/extension (on go.dev)

Dependency Relation
	imports 9 packages, and imported by 2 packages


Package-Level Type Names (total 12)
/* sort by: | */
ALPN is a TLS extension for application-layer protocol negotiation within the TLS handshake. https://tools.ietf.org/html/rfc7301 ProtocolNameList []string Marshal encodes the extension. TypeValue returns the extension TypeValue. Unmarshal populates the extension from encoded data. *ALPN : Extension *ALPN : github.com/pion/rtcp.PacketStatusChunk *ALPN : github.com/gogo/protobuf/proto.Marshaler *ALPN : github.com/gogo/protobuf/proto.Unmarshaler *ALPN : github.com/golang/protobuf/proto.Marshaler *ALPN : github.com/golang/protobuf/proto.Unmarshaler
ConnectionID is a DTLS extension that provides an alternative to IP address and port for session association. https://tools.ietf.org/html/rfc9146 A zero-length connection ID indicates for a client or server that negotiated connection IDs from the peer will be sent but there is no need to respond with one // variable length Marshal encodes the extension. TypeValue returns the extension TypeValue. Unmarshal populates the extension from encoded data. *ConnectionID : Extension *ConnectionID : github.com/pion/rtcp.PacketStatusChunk *ConnectionID : github.com/gogo/protobuf/proto.Marshaler *ConnectionID : github.com/gogo/protobuf/proto.Unmarshaler *ConnectionID : github.com/golang/protobuf/proto.Marshaler *ConnectionID : github.com/golang/protobuf/proto.Unmarshaler
Extension represents a single TLS extension. ( Extension) Marshal() ([]byte, error) ( Extension) TypeValue() TypeValue ( Extension) Unmarshal(data []byte) error *ALPN *ConnectionID *RenegotiationInfo *ServerName *SupportedEllipticCurves *SupportedPointFormats *SupportedSignatureAlgorithms *UseExtendedMasterSecret *UseSRTP Extension : github.com/pion/rtcp.PacketStatusChunk Extension : github.com/gogo/protobuf/proto.Marshaler Extension : github.com/gogo/protobuf/proto.Unmarshaler Extension : github.com/golang/protobuf/proto.Marshaler Extension : github.com/golang/protobuf/proto.Unmarshaler func Unmarshal(buf []byte) ([]Extension, error) func Marshal(e []Extension) ([]byte, error)
RenegotiationInfo allows a Client/Server to communicate their renegotation support https://tools.ietf.org/html/rfc5746 RenegotiatedConnection uint8 Marshal encodes the extension. TypeValue returns the extension TypeValue. Unmarshal populates the extension from encoded data. *RenegotiationInfo : Extension *RenegotiationInfo : github.com/pion/rtcp.PacketStatusChunk *RenegotiationInfo : github.com/gogo/protobuf/proto.Marshaler *RenegotiationInfo : github.com/gogo/protobuf/proto.Unmarshaler *RenegotiationInfo : github.com/golang/protobuf/proto.Marshaler *RenegotiationInfo : github.com/golang/protobuf/proto.Unmarshaler
ServerName allows the client to inform the server the specific name it wishes to contact. Useful if multiple DNS names resolve to one IP https://tools.ietf.org/html/rfc6066#section-3 ServerName string Marshal encodes the extension. TypeValue returns the extension TypeValue. Unmarshal populates the extension from encoded data. *ServerName : Extension *ServerName : github.com/pion/rtcp.PacketStatusChunk *ServerName : github.com/gogo/protobuf/proto.Marshaler *ServerName : github.com/gogo/protobuf/proto.Unmarshaler *ServerName : github.com/golang/protobuf/proto.Marshaler *ServerName : github.com/golang/protobuf/proto.Unmarshaler
SRTPProtectionProfile defines the parameters and options that are in effect for the SRTP processing https://tools.ietf.org/html/rfc5764#section-4.1.2 const SRTP_AEAD_AES_128_GCM const SRTP_AEAD_AES_256_GCM const SRTP_AES128_CM_HMAC_SHA1_32 const SRTP_AES128_CM_HMAC_SHA1_80 const SRTP_AES256_CM_SHA1_32 const SRTP_AES256_CM_SHA1_80 const SRTP_NULL_HMAC_SHA1_32 const SRTP_NULL_HMAC_SHA1_80 const github.com/pion/dtls/v3.SRTP_AEAD_AES_128_GCM const github.com/pion/dtls/v3.SRTP_AEAD_AES_256_GCM const github.com/pion/dtls/v3.SRTP_AES128_CM_HMAC_SHA1_32 const github.com/pion/dtls/v3.SRTP_AES128_CM_HMAC_SHA1_80 const github.com/pion/dtls/v3.SRTP_AES256_CM_SHA1_32 const github.com/pion/dtls/v3.SRTP_AES256_CM_SHA1_80 const github.com/pion/dtls/v3.SRTP_NULL_HMAC_SHA1_32 const github.com/pion/dtls/v3.SRTP_NULL_HMAC_SHA1_80
SupportedEllipticCurves allows a Client/Server to communicate what curves they both support https://tools.ietf.org/html/rfc8422#section-5.1.1 EllipticCurves []elliptic.Curve Marshal encodes the extension. TypeValue returns the extension TypeValue. Unmarshal populates the extension from encoded data. *SupportedEllipticCurves : Extension *SupportedEllipticCurves : github.com/pion/rtcp.PacketStatusChunk *SupportedEllipticCurves : github.com/gogo/protobuf/proto.Marshaler *SupportedEllipticCurves : github.com/gogo/protobuf/proto.Unmarshaler *SupportedEllipticCurves : github.com/golang/protobuf/proto.Marshaler *SupportedEllipticCurves : github.com/golang/protobuf/proto.Unmarshaler
SupportedPointFormats allows a Client/Server to negotiate the EllipticCurvePointFormats https://tools.ietf.org/html/rfc4492#section-5.1.2 PointFormats []elliptic.CurvePointFormat Marshal encodes the extension. TypeValue returns the extension TypeValue. Unmarshal populates the extension from encoded data. *SupportedPointFormats : Extension *SupportedPointFormats : github.com/pion/rtcp.PacketStatusChunk *SupportedPointFormats : github.com/gogo/protobuf/proto.Marshaler *SupportedPointFormats : github.com/gogo/protobuf/proto.Unmarshaler *SupportedPointFormats : github.com/golang/protobuf/proto.Marshaler *SupportedPointFormats : github.com/golang/protobuf/proto.Unmarshaler
SupportedSignatureAlgorithms allows a Client/Server to negotiate what SignatureHash Algorithms they both support https://tools.ietf.org/html/rfc5246#section-7.4.1.4.1 SignatureHashAlgorithms []signaturehash.Algorithm Marshal encodes the extension. TypeValue returns the extension TypeValue. Unmarshal populates the extension from encoded data. *SupportedSignatureAlgorithms : Extension *SupportedSignatureAlgorithms : github.com/pion/rtcp.PacketStatusChunk *SupportedSignatureAlgorithms : github.com/gogo/protobuf/proto.Marshaler *SupportedSignatureAlgorithms : github.com/gogo/protobuf/proto.Unmarshaler *SupportedSignatureAlgorithms : github.com/golang/protobuf/proto.Marshaler *SupportedSignatureAlgorithms : github.com/golang/protobuf/proto.Unmarshaler
TypeValue is the 2 byte value for a TLS Extension as registered in the IANA https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml func ALPN.TypeValue() TypeValue func ConnectionID.TypeValue() TypeValue func Extension.TypeValue() TypeValue func RenegotiationInfo.TypeValue() TypeValue func ServerName.TypeValue() TypeValue func SupportedEllipticCurves.TypeValue() TypeValue func SupportedPointFormats.TypeValue() TypeValue func SupportedSignatureAlgorithms.TypeValue() TypeValue func UseExtendedMasterSecret.TypeValue() TypeValue func UseSRTP.TypeValue() TypeValue const ALPNTypeValue const ConnectionIDTypeValue const RenegotiationInfoTypeValue const ServerNameTypeValue const SupportedEllipticCurvesTypeValue const SupportedPointFormatsTypeValue const SupportedSignatureAlgorithmsTypeValue const UseExtendedMasterSecretTypeValue const UseSRTPTypeValue
UseExtendedMasterSecret defines a TLS extension that contextually binds the master secret to a log of the full handshake that computes it, thus preventing MITM attacks. Supported bool Marshal encodes the extension. TypeValue returns the extension TypeValue. Unmarshal populates the extension from encoded data. *UseExtendedMasterSecret : Extension *UseExtendedMasterSecret : github.com/pion/rtcp.PacketStatusChunk *UseExtendedMasterSecret : github.com/gogo/protobuf/proto.Marshaler *UseExtendedMasterSecret : github.com/gogo/protobuf/proto.Unmarshaler *UseExtendedMasterSecret : github.com/golang/protobuf/proto.Marshaler *UseExtendedMasterSecret : github.com/golang/protobuf/proto.Unmarshaler
UseSRTP allows a Client/Server to negotiate what SRTPProtectionProfiles they both support https://tools.ietf.org/html/rfc8422 MasterKeyIdentifier []byte ProtectionProfiles []SRTPProtectionProfile Marshal encodes the extension. TypeValue returns the extension TypeValue. Unmarshal populates the extension from encoded data. *UseSRTP : Extension *UseSRTP : github.com/pion/rtcp.PacketStatusChunk *UseSRTP : github.com/gogo/protobuf/proto.Marshaler *UseSRTP : github.com/gogo/protobuf/proto.Unmarshaler *UseSRTP : github.com/golang/protobuf/proto.Marshaler *UseSRTP : github.com/golang/protobuf/proto.Unmarshaler
Package-Level Functions (total 3)
ALPNProtocolSelection negotiates a shared protocol according to #3.2 of rfc7301.
Marshal many extensions at once.
Unmarshal many extensions at once.
Package-Level Variables (only one)
ErrALPNInvalidFormat is raised when the ALPN format is invalid.
Package-Level Constants (total 17)
TypeValue constants.
TypeValue constants.
TypeValue constants.
TypeValue constants.
TypeValue constants.
TypeValue constants.
TypeValue constants.
TypeValue constants.
TypeValue constants.