Certificate¶
Parsing for Tor Ed25519 certificates, which are used to validate the key used to sign server descriptors.
New in version 1.6.0.
Module Overview:
Ed25519Certificate - Ed25519 signing key certificate
| +- Ed25519CertificateV1 - version 1 Ed25519 certificate
| |- is_expired - checks if certificate is presently expired
| +- validate - validates signature of a server descriptor
|
+- parse - reads base64 encoded certificate data
Ed25519Extension - extension included within an Ed25519Certificate
- stem.descriptor.certificate.CertType(enum)¶
Purpose of Ed25519 certificate. As new certificate versions are added this enumeration will expand.
CertType Description SIGNING signing a signing key with an identity key LINK_CERT TLS link certificate signed with ed25519 signing key AUTH authentication key signed with ed25519 signing key
- stem.descriptor.certificate.ExtensionType(enum)¶
Recognized exception types.
ExtensionType Description HAS_SIGNING_KEY includes key used to sign the certificate
- stem.descriptor.certificate.ExtensionFlag(enum)¶
Flags that can be assigned to Ed25519 certificate extensions.
ExtensionFlag Description AFFECTS_VALIDATION extension affects whether the certificate is valid UNKNOWN extension includes flags not yet recognized by stem
- class stem.descriptor.certificate.Ed25519Extension[source]¶
Bases: stem.descriptor.certificate.Ed25519Extension
Extension within an Ed25519 certificate.
Variables: - type (int) -- extension type
- flags (list) -- extension attribute flags
- flag_int (int) -- integer encoding of the extension attribute flags
- data (bytes) -- data the extension concerns
- class stem.descriptor.certificate.Ed25519Certificate(version, encoded)[source]¶
Bases: object
Base class for an Ed25519 certificate.
Variables: - version (int) -- certificate format version
- encoded (str) -- base64 encoded ed25519 certificate
- static parse(content)[source]¶
Parses the given base64 encoded data as an Ed25519 certificate.
Parameters: content (str) -- base64 encoded certificate Returns: Ed25519Certificate subclsss for the given certificate Raises : ValueError if content is malformed
- class stem.descriptor.certificate.Ed25519CertificateV1(version, encoded, decoded)[source]¶
Bases: stem.descriptor.certificate.Ed25519Certificate
Version 1 Ed25519 certificate, which are used for signing tor server descriptors.
Variables: - type (CertType) -- certificate purpose
- expiration (datetime) -- expiration of the certificate
- key_type (int) -- format of the key
- key (bytes) -- key content
- extensions (list) -- Ed25519Extension in this certificate
- signature (bytes) -- certificate signature
- is_expired()[source]¶
Checks if this certificate is presently expired or not.
Returns: True if the certificate has expired, False otherwise
- validate(server_descriptor)[source]¶
Validates our signing key and that the given descriptor content matches its Ed25519 signature.
Parameters: server_descriptor (stem.descriptor.server_descriptor.Ed25519) -- relay server descriptor to validate
Raises : - ValueError if signing key or descriptor are invalid
- ImportError if pynacl module is unavailable