Expand description
Python bindings for X.509 extension DER value builders.
Registers the synta.ext submodule with low-level DER-encoding helpers
for the most common X.509 v3 extension values. Each function returns the
raw DER bytes of the extension’s extnValue — the content inside the
OCTET STRING wrapper.
§Key identifier method constants
Pass these to subject_key_identifier and authority_key_identifier
as the method argument:
| Constant | Value | Specification |
|---|---|---|
KEYID_RFC5280 | 0 | SHA-1 of BIT STRING value of subjectPublicKey (RFC 5280 §4.2.1.2) |
KEYID_RFC7093M1 | 1 | SHA-256 of BIT STRING value, truncated to 160 bits (RFC 7093 §2 m1) |
KEYID_RFC7093M2 | 2 | SHA-384 of BIT STRING value, truncated to 160 bits (RFC 7093 §2 m2) |
KEYID_RFC7093M3 | 3 | SHA-512 of BIT STRING value, truncated to 160 bits (RFC 7093 §2 m3) |
KEYID_RFC7093M4 | 4 | SHA-256 of full SubjectPublicKeyInfo DER (RFC 7093 §2 m4) |
§Key usage bitmask constants
KU_* constants are ready-to-OR bitmasks for key_usage:
| Constant | Mask | Named bit (RFC 5280 §4.2.1.3) |
|---|---|---|
KU_DIGITAL_SIGNATURE | 0x001 | digitalSignature |
KU_NON_REPUDIATION | 0x002 | contentCommitment |
KU_KEY_ENCIPHERMENT | 0x004 | keyEncipherment |
KU_DATA_ENCIPHERMENT | 0x008 | dataEncipherment |
KU_KEY_AGREEMENT | 0x010 | keyAgreement |
KU_KEY_CERT_SIGN | 0x020 | keyCertSign |
KU_CRL_SIGN | 0x040 | cRLSign |
KU_ENCIPHER_ONLY | 0x080 | encipherOnly |
KU_DECIPHER_ONLY | 0x100 | decipherOnly |
§Fluent builder classes
Four builder classes accumulate entries and produce DER on .build():
| Class | Short alias | Extension | OID |
|---|---|---|---|
SubjectAlternativeNameBuilder | SAN | Subject Alternative Name | 2.5.29.17 |
AuthorityInformationAccessBuilder | AIA | Authority Information Access | 1.3.6.1.5.5.7.1.1 |
ExtendedKeyUsageBuilder | EKU | Extended Key Usage | 2.5.29.37 |
NameConstraintsBuilder | NC | Name Constraints | 2.5.29.30 |
Structs§
- PyAuthority
Information Access Builder - Fluent builder for an
AuthorityInfoAccessSyntaxextension value (OID 1.3.6.1.5.5.7.1.1, Authority Information Access, RFC 5280 §4.2.2.1). - PyCRL
Distribution Points Builder - Fluent builder for a
CRLDistributionPointsextension value (OID 2.5.29.31). - PyCertificate
Policies Builder - Fluent builder for a
CertificatePoliciesextension value (OID 2.5.29.32, RFC 5280 §4.2.1.4). - PyExtended
KeyUsage Builder - Fluent builder for an
ExtKeyUsageSyntaxextension value (OID 2.5.29.37, Extended Key Usage, RFC 5280 §4.2.1.12). - PyIssuer
Alternative Name Builder - Fluent builder for an
IssuerAltNameextension value (OID 2.5.29.18). - PyIssuing
Distribution Point Builder - Fluent builder for an
IssuingDistributionPointextension value (OID 2.5.29.28, RFC 5280 §5.2.5). - PyName
Constraints Builder - Fluent builder for a
NameConstraintsextension value (OID 2.5.29.30, RFC 5280 §4.2.1.10). - PySubject
Alternative Name Builder - Fluent builder for a
SubjectAltNameextension value (OID 2.5.29.17).
Constants§
- KEYID_
RFC5280 - RFC 5280 §4.2.1.2: SHA-1 of the BIT STRING value of
subjectPublicKey. - KEYID_
RFC7093 M1 - RFC 7093 §2 method 1: SHA-256 of BIT STRING value, truncated to 160 bits.
- KEYID_
RFC7093 M2 - RFC 7093 §2 method 2: SHA-384 of BIT STRING value, truncated to 160 bits.
- KEYID_
RFC7093 M3 - RFC 7093 §2 method 3: SHA-512 of BIT STRING value, truncated to 160 bits.
- KEYID_
RFC7093 M4 - RFC 7093 §2 method 4: SHA-256 of the full
SubjectPublicKeyInfoDER encoding. - KU_
CRL_ SIGN cRLSign(bit 6) — RFC 5280 §4.2.1.3.- KU_
DATA_ ENCIPHERMENT dataEncipherment(bit 3) — RFC 5280 §4.2.1.3.- KU_
DECIPHER_ ONLY decipherOnly(bit 8) — RFC 5280 §4.2.1.3; only meaningful when keyAgreement is set.- KU_
DIGITAL_ SIGNATURE digitalSignature(bit 0) — RFC 5280 §4.2.1.3.- KU_
ENCIPHER_ ONLY encipherOnly(bit 7) — RFC 5280 §4.2.1.3; only meaningful when keyAgreement is set.- KU_
KEY_ AGREEMENT keyAgreement(bit 4) — RFC 5280 §4.2.1.3.- KU_
KEY_ CERT_ SIGN keyCertSign(bit 5) — RFC 5280 §4.2.1.3.- KU_
KEY_ ENCIPHERMENT keyEncipherment(bit 2) — RFC 5280 §4.2.1.3.- KU_
NON_ REPUDIATION contentCommitment/nonRepudiation(bit 1) — RFC 5280 §4.2.1.3.
Functions§
- register_
ext_ module - Register the
synta.extsubmodule.