Certificate

class siotls.contents.handshakes.certificate.CertificateEntry

Abstract base class and registry for siotls.iana.CertificateType.

certificate_type: CertificateType

The unique numeric identifier of the certificate type.

extensions: dict[ExtensionType | int, Extension]

The extensions applied to this entry, indexed by siotls.iana.ExtensionType.

class siotls.contents.handshakes.certificate.CertificateHandshake

Certificate handshake as defined in RFC 8446 Section 4.4.2. Conveys the certificate chain or raw public key of one of the peers.

__init__(certificate_request_context, certificate_list)
Parameters:
  • certificate_request_context (bytes)

  • certificate_list (Sequence[CertificateEntry])

certificate_list: Sequence[CertificateEntry]

The sequence (chain) of CertificateEntry structures, each containing a single certificate, or raw public key, with set of extensions.

Quoting RFC 8446 Section 4.4.2 (TLS 1.3 - Certificate):

Note: Prior to TLS 1.3, “certificate_list” ordering required each certificate to certify the one immediately preceding it; however, some implementations allowed some flexibility. Servers sometimes send both a current and deprecated intermediate for transitional purposes, and others are simply configured incorrectly, but these cases can nonetheless be validated properly. For maximum compatibility, all implementations SHOULD be prepared to handle potentially extraneous certificates and arbitrary orderings from any TLS version, with the exception of the end-entity certificate wich MUST be first.

certificate_request_context: bytes

Additional opaque data, for Post-Handshake Authentication (RFC 8446 Section 4.6.2).

msg_type: HandshakeType | HandshakeType_ = 11

The unique numeric identifier of the handshake.

class siotls.contents.handshakes.certificate.RawPublicKeyEntry

An entry for a Raw Public Key (RFC 7250#).

__init__(public_key, extensions)
Parameters:
property asn1_public_key: PublicKeyInfo

The public key as a asn1crypto object.

certificate_type: CertificateType = 2
public_key: DerPublicKey

The der-encoded public key stored in this entry.

class siotls.contents.handshakes.certificate.X509Entry

An entry for a X509 certificate.

__init__(certificate, extensions)
Parameters:
property asn1_certificate: Certificate

The certificate as a asn1crypto object.

certificate: DerCertificate

The der-encoded x509 certificate stored in this entry.

certificate_type: CertificateType = 0