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
Involved Source Files
alpn.go
connection_id.go
errors.go
Package extension implements the extension values in the ClientHello/ServerHello
renegotiation_info.go
server_name.go
srtp_protection_profile.go
supported_elliptic_curves.go
supported_point_formats.go
supported_signature_algorithms.go
use_master_secret.go
use_srtp.go
Package-Level Type Names (total 12)
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.
const SRTP_AEAD_AES_128_GCM SRTPProtectionProfile = 7 // nolint const SRTP_AEAD_AES_256_GCM SRTPProtectionProfile = 8 // nolint const SRTP_AES128_CM_HMAC_SHA1_32 SRTPProtectionProfile = 2 // nolint const SRTP_AES128_CM_HMAC_SHA1_80 SRTPProtectionProfile = 1 // nolint const SRTP_AES256_CM_SHA1_32 SRTPProtectionProfile = 4 // nolint const SRTP_AES256_CM_SHA1_80 SRTPProtectionProfile = 3 // nolint const SRTP_NULL_HMAC_SHA1_32 SRTPProtectionProfile = 6 // nolint const SRTP_NULL_HMAC_SHA1_80 SRTPProtectionProfile = 5 // nolint
TypeValue constants.
TypeValue constants.
TypeValue constants.
TypeValue constants.
TypeValue constants.
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |