package extension

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

Dependency Relation
	imports 9 packages, and imported by 2 packages


Package-Level Type Names (total 11)
/* 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
Extension represents a single TLS extension ( Extension) Marshal() ([]byte, error) ( Extension) TypeValue() TypeValue ( Extension) Unmarshal(data []byte) error *ALPN *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/v2.SRTP_AEAD_AES_128_GCM const github.com/pion/dtls/v2.SRTP_AEAD_AES_256_GCM const github.com/pion/dtls/v2.SRTP_AES128_CM_HMAC_SHA1_32 const github.com/pion/dtls/v2.SRTP_AES128_CM_HMAC_SHA1_80 const github.com/pion/dtls/v2.SRTP_AES256_CM_SHA1_32 const github.com/pion/dtls/v2.SRTP_AES256_CM_SHA1_80 const github.com/pion/dtls/v2.SRTP_NULL_HMAC_SHA1_32 const github.com/pion/dtls/v2.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 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 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 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 16)
TypeValue constants
TypeValue constants
TypeValue constants
TypeValue constants
TypeValue constants
TypeValue constants
TypeValue constants
TypeValue constants