Skip to content

Upgrading cryptography 44 to 45

Breaking44.0.3 → 45.0.7Breaking2Deprecated2New14Changed8Fixed4

BreakingUpgrade verdict

2 breaking changes.

  • Loading SSH private keys now raises a TypeError in two mismatched password cases instead of silently succeeding or raising ValueError.
  • Code reading VerifiedClient.subject must now handle a possible None value.
  • Python 3.7 will stop being supported in the next version, so users on it should plan to upgrade Python.
  • Deprecates subject, verification_time and max_chain_depth on ClientVerifier and ServerVerifier in favor of a policy property.
4 items need code or config changes
Breaking2
load_ssh_private_key now raises TypeError when a password is given for an unencrypted key or omitted for an encrypted key.
load_ssh_private_key
VerifiedClient.subject can now be None because a custom extension policy may allow certificates without a Subject Alternative Name.
VerifiedClient.subject
Deprecated2
Deprecates support for Python 3.7, to be removed in the next release.
Deprecates subject, verification_time and max_chain_depth on ClientVerifier and ServerVerifier in favor of a policy property.
ClientVerifierServerVerifiersubjectverification_timemax_chain_depthpolicy

Generated by DepDelta from published Python source. Not mixed with prose notes.

  • changed: constructor MultiFernet(fernets: typing.Iterable[Fernet]) → constructor MultiFernet(fernets: Iterable[Fernet])
  • changed: function build_conditional_library(lib: typing.Any, conditional_names: dict[str, typing.Callable[[], list[str]]]) -> typing.Any → function build_conditional_library(lib: typing.Any, conditional_names: dict[str, Callable[[], list[str]]]) -> typing.Any
  • changed: method DSAPrivateKey.sign(data: bytes, algorithm: asym_utils.Prehashed | hashes.HashAlgorithm) -> bytes → method DSAPrivateKey.sign(data: Buffer, algorithm: asym_utils.Prehashed | hashes.HashAlgorithm) -> bytes
  • changed: method DSAPublicKey.verify(signature: bytes, data: bytes, algorithm: asym_utils.Prehashed | hashes.HashAlgorithm) -> None → method DSAPublicKey.verify(signature: Buffer, data: Buffer, algorithm: asym_utils.Prehashed | hashes.HashAlgorithm) -> None
  • changed: method EllipticCurvePrivateKey.sign(data: bytes, signature_algorithm: EllipticCurveSignatureAlgorithm) -> bytes → method EllipticCurvePrivateKey.sign(data: utils.Buffer, signature_algorithm: EllipticCurveSignatureAlgorithm) -> bytes
  • changed: method EllipticCurvePublicKey.verify(signature: bytes, data: bytes, signature_algorithm: EllipticCurveSignatureAlgorithm) -> None → method EllipticCurvePublicKey.verify(signature: utils.Buffer, data: utils.Buffer, signature_algorithm: EllipticCurveSignatureAlgorithm) -> None
  • added: field BrainpoolP256R1.group_order
  • added: field BrainpoolP384R1.group_order
  • added: field BrainpoolP512R1.group_order
  • added: field SECP192R1.group_order
  • added: field SECP224R1.group_order
  • added: field SECP256K1.group_order
  • added: field SECP256R1.group_order
  • added: field SECP384R1.group_order
  • added: field SECP521R1.group_order
  • added: field SECT163K1.group_order
  • added: field SECT163R2.group_order
  • added: field SECT233K1.group_order
  • added: field SECT233R1.group_order
  • added: field SECT283K1.group_order
  • added: field SECT283R1.group_order
  • added: field SECT409K1.group_order
  • added: field SECT409R1.group_order
  • added: field SECT571K1.group_order
  • added: field SECT571R1.group_order
  • added: property EllipticCurve.group_order -> int
  • changed: method Ed25519PrivateKey.sign(data: bytes) -> bytes → method Ed25519PrivateKey.sign(data: Buffer) -> bytes
  • changed: method Ed25519PublicKey.verify(signature: bytes, data: bytes) -> None → method Ed25519PublicKey.verify(signature: Buffer, data: Buffer) -> None
  • changed: static method Ed25519PrivateKey.from_private_bytes(data: bytes) -> Ed25519PrivateKey → static method Ed25519PrivateKey.from_private_bytes(data: Buffer) -> Ed25519PrivateKey
  • changed: method Ed448PrivateKey.sign(data: bytes) -> bytes → method Ed448PrivateKey.sign(data: Buffer) -> bytes
  • changed: method Ed448PublicKey.verify(signature: bytes, data: bytes) -> None → method Ed448PublicKey.verify(signature: Buffer, data: Buffer) -> None
  • changed: static method Ed448PrivateKey.from_private_bytes(data: bytes) -> Ed448PrivateKey → static method Ed448PrivateKey.from_private_bytes(data: Buffer) -> Ed448PrivateKey
  • changed: static method X25519PrivateKey.from_private_bytes(data: bytes) -> X25519PrivateKey → static method X25519PrivateKey.from_private_bytes(data: Buffer) -> X25519PrivateKey
  • changed: static method X448PrivateKey.from_private_bytes(data: bytes) -> X448PrivateKey → static method X448PrivateKey.from_private_bytes(data: Buffer) -> X448PrivateKey
  • removed: property ChaCha20.nonce -> bytes
  • changed: constructor AES(key: bytes) → constructor AES(key: utils.Buffer)
  • changed: constructor AES128(key: bytes) → constructor AES128(key: utils.Buffer)
  • changed: constructor AES256(key: bytes) → constructor AES256(key: utils.Buffer)
  • changed: constructor Camellia(key: bytes) → constructor Camellia(key: utils.Buffer)
  • changed: constructor ChaCha20(key: bytes, nonce: bytes) → constructor ChaCha20(key: utils.Buffer, nonce: utils.Buffer)
  • added: property ChaCha20.nonce -> utils.Buffer
  • changed: method AEADCipherContext.authenticate_additional_data(data: bytes) -> None → method AEADCipherContext.authenticate_additional_data(data: Buffer) -> None
  • changed: method CipherContext.update(data: bytes) -> bytes → method CipherContext.update(data: Buffer) -> bytes
  • changed: method CipherContext.update_into(data: bytes, buf: bytes) -> int → method CipherContext.update_into(data: Buffer, buf: Buffer) -> int
  • removed: property CBC.initialization_vector -> bytes
  • removed: property CFB.initialization_vector -> bytes
  • removed: property CFB8.initialization_vector -> bytes
  • removed: property CTR.nonce -> bytes
  • removed: property GCM.initialization_vector -> bytes
  • removed: property ModeWithInitializationVector.initialization_vector -> bytes
  • removed: property ModeWithNonce.nonce -> bytes
  • removed: property ModeWithTweak.tweak -> bytes
  • removed: property OFB.initialization_vector -> bytes
  • removed: property XTS.tweak -> bytes
  • changed: constructor CBC(initialization_vector: bytes) → constructor CBC(initialization_vector: utils.Buffer)
  • changed: constructor CFB(initialization_vector: bytes) → constructor CFB(initialization_vector: utils.Buffer)
  • changed: constructor CFB8(initialization_vector: bytes) → constructor CFB8(initialization_vector: utils.Buffer)
  • changed: constructor CTR(nonce: bytes) → constructor CTR(nonce: utils.Buffer)
  • changed: constructor GCM(initialization_vector: bytes, tag: bytes | None=…, min_tag_length: int=…) → constructor GCM(initialization_vector: utils.Buffer, tag: bytes | None=…, min_tag_length: int=…)
  • changed: constructor OFB(initialization_vector: bytes) → constructor OFB(initialization_vector: utils.Buffer)
  • changed: constructor XTS(tweak: bytes) → constructor XTS(tweak: utils.Buffer)
  • added: property CBC.initialization_vector -> utils.Buffer
  • added: property CFB.initialization_vector -> utils.Buffer
  • added: property CFB8.initialization_vector -> utils.Buffer
  • added: property CTR.nonce -> utils.Buffer
  • added: property GCM.initialization_vector -> utils.Buffer
  • added: property ModeWithInitializationVector.initialization_vector -> utils.Buffer
  • added: property ModeWithNonce.nonce -> utils.Buffer
  • added: property ModeWithTweak.tweak -> utils.Buffer
  • added: property OFB.initialization_vector -> utils.Buffer
  • added: property XTS.tweak -> utils.Buffer
  • changed: method HashContext.update(data: bytes) -> None → method HashContext.update(data: Buffer) -> None
  • added: variable XOFHash
  • changed: method ConcatKDFHMAC.derive(key_material: bytes) -> bytes → method ConcatKDFHMAC.derive(key_material: utils.Buffer) -> bytes
  • changed: method ConcatKDFHash.derive(key_material: bytes) -> bytes → method ConcatKDFHash.derive(key_material: utils.Buffer) -> bytes
  • changed: method HKDF.derive(key_material: bytes) -> bytes → method HKDF.derive(key_material: utils.Buffer) -> bytes
  • changed: method HKDFExpand.derive(key_material: bytes) -> bytes → method HKDFExpand.derive(key_material: utils.Buffer) -> bytes
  • changed: method KBKDFCMAC.derive(key_material: bytes) -> bytes → method KBKDFCMAC.derive(key_material: utils.Buffer) -> bytes
  • changed: method KBKDFHMAC.derive(key_material: bytes) -> bytes → method KBKDFHMAC.derive(key_material: utils.Buffer) -> bytes
  • changed: method PBKDF2HMAC.derive(key_material: bytes) -> bytes → method PBKDF2HMAC.derive(key_material: utils.Buffer) -> bytes
  • changed: method X963KDF.derive(key_material: bytes) -> bytes → method X963KDF.derive(key_material: utils.Buffer) -> bytes
  • changed: method PaddingContext.update(data: bytes) -> bytes → method PaddingContext.update(data: utils.Buffer) -> bytes
  • added: export ssh_key_fingerprint
  • changed: function serialize_key_and_certificates(name: bytes | None, key: PKCS12PrivateKeyTypes | None, cert: x509.Certificate | None, cas: typing.Iterable[_PKCS12CATypes] | None, encryption_algorithm: serialization.KeySerializationEncryption) -> bytes → function serialize_key_and_certificates(name: bytes | None, key: PKCS12PrivateKeyTypes | None, cert: x509.Certificate | None, cas: Iterable[_PKCS12CATypes] | None, encryption_algorithm: serialization.KeySerializationEncryption) -> bytes
  • added: function serialize_java_truststore(certs: Iterable[PKCS12Certificate], encryption_algorithm: serialization.KeySerializationEncryption) -> bytes
  • changed: constructor PKCS7EnvelopeBuilder(*, _data: bytes | None=…, _recipients: list[x509.Certificate] | None=…) → constructor PKCS7EnvelopeBuilder(*, _data: bytes | None=…, _recipients: list[x509.Certificate] | None=…, _content_encryption_algorithm: ContentEncryptionAlgorithm | None=…)
  • changed: constructor PKCS7SignatureBuilder(data: bytes | None=…, signers: list[tuple[x509.Certificate, PKCS7PrivateKeyTypes, PKCS7HashTypes, padding.PSS | padding.PKCS1v15 | None]]=…, additional_certs: list[x509.Certificate]=…) → constructor PKCS7SignatureBuilder(data: utils.Buffer | None=…, signers: list[tuple[x509.Certificate, PKCS7PrivateKeyTypes, PKCS7HashTypes, padding.PSS | padding.PKCS1v15 | None]]=…, additional_certs: list[x509.Certificate]=…)
  • changed: method PKCS7EnvelopeBuilder.encrypt(encoding: serialization.Encoding, options: typing.Iterable[PKCS7Options]) -> bytes → method PKCS7EnvelopeBuilder.encrypt(encoding: serialization.Encoding, options: Iterable[PKCS7Options]) -> bytes
  • changed: method PKCS7SignatureBuilder.set_data(data: bytes) -> PKCS7SignatureBuilder → method PKCS7SignatureBuilder.set_data(data: utils.Buffer) -> PKCS7SignatureBuilder
  • changed: method PKCS7SignatureBuilder.sign(encoding: serialization.Encoding, options: typing.Iterable[PKCS7Options], backend: typing.Any=…) -> bytes → method PKCS7SignatureBuilder.sign(encoding: serialization.Encoding, options: Iterable[PKCS7Options], backend: typing.Any=…) -> bytes
  • added: method PKCS7EnvelopeBuilder.set_content_encryption_algorithm(content_encryption_algorithm: ContentEncryptionAlgorithm) -> PKCS7EnvelopeBuilder
  • added: variable ContentEncryptionAlgorithm
  • changed: function load_ssh_private_key(data: bytes, password: bytes | None, backend: typing.Any=…) -> SSHPrivateKeyTypes → function load_ssh_private_key(data: utils.Buffer, password: bytes | None, backend: typing.Any=…, *, unsafe_skip_rsa_key_validation: bool=…) -> SSHPrivateKeyTypes
  • changed: function load_ssh_public_key(data: bytes, backend: typing.Any=…) -> SSHPublicKeyTypes → function load_ssh_public_key(data: utils.Buffer, backend: typing.Any=…) -> SSHPublicKeyTypes
  • added: function ssh_key_fingerprint(key: SSHPublicKeyTypes, hash_algorithm: hashes.MD5 | hashes.SHA256) -> bytes
  • changed: constructor HOTP(key: bytes, length: int, algorithm: HOTPHashTypes, backend: typing.Any=…, enforce_key_length: bool=…) -> None → constructor HOTP(key: Buffer, length: int, algorithm: HOTPHashTypes, backend: typing.Any=…, enforce_key_length: bool=…) -> None
  • changed: constructor TOTP(key: bytes, length: int, algorithm: HOTPHashTypes, time_step: int, backend: typing.Any=…, enforce_key_length: bool=…) → constructor TOTP(key: Buffer, length: int, algorithm: HOTPHashTypes, time_step: int, backend: typing.Any=…, enforce_key_length: bool=…)
  • changed: function cached_property(func: typing.Callable) -> property → function cached_property(func: Callable) -> property
  • added: variable Buffer
  • added: variable DeprecatedIn45
  • added: export PrivateKeyUsagePeriod
  • changed: constructor Attributes(attributes: typing.Iterable[Attribute]) -> None → constructor Attributes(attributes: Iterable[Attribute]) -> None
  • changed: method CertificateBuilder.sign(private_key: CertificateIssuerPrivateKeyTypes, algorithm: _AllowedHashTypes | None, backend: typing.Any=…, *, rsa_padding: padding.PSS | padding.PKCS1v15 | None=…) -> Certificate → method CertificateBuilder.sign(private_key: CertificateIssuerPrivateKeyTypes, algorithm: _AllowedHashTypes | None, backend: typing.Any=…, *, rsa_padding: padding.PSS | padding.PKCS1v15 | None=…, ecdsa_deterministic: bool | None=…) -> Certificate
  • changed: method CertificateRevocationListBuilder.sign(private_key: CertificateIssuerPrivateKeyTypes, algorithm: _AllowedHashTypes | None, backend: typing.Any=…, *, rsa_padding: padding.PSS | padding.PKCS1v15 | None=…) -> CertificateRevocationList → method CertificateRevocationListBuilder.sign(private_key: CertificateIssuerPrivateKeyTypes, algorithm: _AllowedHashTypes | None, backend: typing.Any=…, *, rsa_padding: padding.PSS | padding.PKCS1v15 | None=…, ecdsa_deterministic: bool | None=…) -> CertificateRevocationList
  • changed: method CertificateSigningRequestBuilder.sign(private_key: CertificateIssuerPrivateKeyTypes, algorithm: _AllowedHashTypes | None, backend: typing.Any=…, *, rsa_padding: padding.PSS | padding.PKCS1v15 | None=…) -> CertificateSigningRequest → method CertificateSigningRequestBuilder.sign(private_key: CertificateIssuerPrivateKeyTypes, algorithm: _AllowedHashTypes | None, backend: typing.Any=…, *, rsa_padding: padding.PSS | padding.PKCS1v15 | None=…, ecdsa_deterministic: bool | None=…) -> CertificateSigningRequest
  • changed: constructor Admission(admission_authority: GeneralName | None, naming_authority: NamingAuthority | None, profession_infos: typing.Iterable[ProfessionInfo]) -> None → constructor Admission(admission_authority: GeneralName | None, naming_authority: NamingAuthority | None, profession_infos: Iterable[ProfessionInfo]) -> None
  • changed: constructor Admissions(authority: GeneralName | None, admissions: typing.Iterable[Admission]) -> None → constructor Admissions(authority: GeneralName | None, admissions: Iterable[Admission]) -> None
  • changed: constructor AuthorityInformationAccess(descriptions: typing.Iterable[AccessDescription]) -> None → constructor AuthorityInformationAccess(descriptions: Iterable[AccessDescription]) -> None
  • changed: constructor AuthorityKeyIdentifier(key_identifier: bytes | None, authority_cert_issuer: typing.Iterable[GeneralName] | None, authority_cert_serial_number: int | None) -> None → constructor AuthorityKeyIdentifier(key_identifier: bytes | None, authority_cert_issuer: Iterable[GeneralName] | None, authority_cert_serial_number: int | None) -> None
  • changed: constructor CRLDistributionPoints(distribution_points: typing.Iterable[DistributionPoint]) -> None → constructor CRLDistributionPoints(distribution_points: Iterable[DistributionPoint]) -> None
  • changed: constructor CertificateIssuer(general_names: typing.Iterable[GeneralName]) -> None → constructor CertificateIssuer(general_names: Iterable[GeneralName]) -> None
  • changed: constructor CertificatePolicies(policies: typing.Iterable[PolicyInformation]) -> None → constructor CertificatePolicies(policies: Iterable[PolicyInformation]) -> None
  • changed: constructor DistributionPoint(full_name: typing.Iterable[GeneralName] | None, relative_name: RelativeDistinguishedName | None, reasons: frozenset[ReasonFlags] | None, crl_issuer: typing.Iterable[GeneralName] | None) -> None → constructor DistributionPoint(full_name: Iterable[GeneralName] | None, relative_name: RelativeDistinguishedName | None, reasons: frozenset[ReasonFlags] | None, crl_issuer: Iterable[GeneralName] | None) -> None
  • changed: constructor ExtendedKeyUsage(usages: typing.Iterable[ObjectIdentifier]) -> None → constructor ExtendedKeyUsage(usages: Iterable[ObjectIdentifier]) -> None
  • changed: constructor Extensions(extensions: typing.Iterable[Extension[ExtensionType]]) -> None → constructor Extensions(extensions: Iterable[Extension[ExtensionType]]) -> None
  • changed: constructor FreshestCRL(distribution_points: typing.Iterable[DistributionPoint]) -> None → constructor FreshestCRL(distribution_points: Iterable[DistributionPoint]) -> None
  • changed: constructor GeneralNames(general_names: typing.Iterable[GeneralName]) -> None → constructor GeneralNames(general_names: Iterable[GeneralName]) -> None
  • changed: constructor IssuerAlternativeName(general_names: typing.Iterable[GeneralName]) -> None → constructor IssuerAlternativeName(general_names: Iterable[GeneralName]) -> None
  • changed: constructor IssuingDistributionPoint(full_name: typing.Iterable[GeneralName] | None, relative_name: RelativeDistinguishedName | None, only_contains_user_certs: bool, only_contains_ca_certs: bool, only_some_reasons: frozenset[ReasonFlags] | None, indirect_crl: bool, only_contains_attribute_certs: bool) -> None → constructor IssuingDistributionPoint(full_name: Iterable[GeneralName] | None, relative_name: RelativeDistinguishedName | None, only_contains_user_certs: bool, only_contains_ca_certs: bool, only_some_reasons: frozenset[ReasonFlags] | None, indirect_crl: bool, only_contains_attribute_certs: bool) -> None
  • changed: constructor NameConstraints(permitted_subtrees: typing.Iterable[GeneralName] | None, excluded_subtrees: typing.Iterable[GeneralName] | None) -> None → constructor NameConstraints(permitted_subtrees: Iterable[GeneralName] | None, excluded_subtrees: Iterable[GeneralName] | None) -> None
  • changed: constructor NoticeReference(organization: str | None, notice_numbers: typing.Iterable[int]) -> None → constructor NoticeReference(organization: str | None, notice_numbers: Iterable[int]) -> None
  • changed: constructor OCSPAcceptableResponses(responses: typing.Iterable[ObjectIdentifier]) -> None → constructor OCSPAcceptableResponses(responses: Iterable[ObjectIdentifier]) -> None
  • changed: constructor PolicyInformation(policy_identifier: ObjectIdentifier, policy_qualifiers: typing.Iterable[str | UserNotice] | None) -> None → constructor PolicyInformation(policy_identifier: ObjectIdentifier, policy_qualifiers: Iterable[str | UserNotice] | None) -> None
  • changed: constructor PrecertificateSignedCertificateTimestamps(signed_certificate_timestamps: typing.Iterable[SignedCertificateTimestamp]) -> None → constructor PrecertificateSignedCertificateTimestamps(signed_certificate_timestamps: Iterable[SignedCertificateTimestamp]) -> None
  • changed: constructor ProfessionInfo(naming_authority: NamingAuthority | None, profession_items: typing.Iterable[str], profession_oids: typing.Iterable[ObjectIdentifier] | None, registration_number: str | None, add_profession_info: bytes | None) -> None → constructor ProfessionInfo(naming_authority: NamingAuthority | None, profession_items: Iterable[str], profession_oids: Iterable[ObjectIdentifier] | None, registration_number: str | None, add_profession_info: bytes | None) -> None
  • changed: constructor SignedCertificateTimestamps(signed_certificate_timestamps: typing.Iterable[SignedCertificateTimestamp]) -> None → constructor SignedCertificateTimestamps(signed_certificate_timestamps: Iterable[SignedCertificateTimestamp]) -> None
  • changed: constructor SubjectAlternativeName(general_names: typing.Iterable[GeneralName]) -> None → constructor SubjectAlternativeName(general_names: Iterable[GeneralName]) -> None
  • changed: constructor SubjectInformationAccess(descriptions: typing.Iterable[AccessDescription]) -> None → constructor SubjectInformationAccess(descriptions: Iterable[AccessDescription]) -> None
  • changed: constructor TLSFeature(features: typing.Iterable[TLSFeatureType]) -> None → constructor TLSFeature(features: Iterable[TLSFeatureType]) -> None
  • added: class PrivateKeyUsagePeriod(ExtensionType)
  • added: constructor PrivateKeyUsagePeriod(not_before: datetime.datetime | None, not_after: datetime.datetime | None) -> None
  • added: field PrivateKeyUsagePeriod.oid
  • added: method PrivateKeyUsagePeriod.public_bytes() -> bytes
  • added: property PrivateKeyUsagePeriod.not_after -> datetime.datetime | None
  • added: property PrivateKeyUsagePeriod.not_before -> datetime.datetime | None
  • removed: property NameAttribute.value -> str | bytes
  • changed: class NameAttribute → class NameAttribute(typing.Generic[NameAttributeValueType])
  • changed: constructor Name(attributes: typing.Iterable[NameAttribute]) -> None | (attributes: typing.Iterable[RelativeDistinguishedName]) -> None → constructor Name(attributes: Iterable[NameAttribute]) -> None | (attributes: Iterable[RelativeDistinguishedName]) -> None
  • changed: constructor NameAttribute(oid: ObjectIdentifier, value: str | bytes, _type: _ASN1Type | None=…, *, _validate: bool=…) -> None → constructor NameAttribute(oid: ObjectIdentifier, value: NameAttributeValueType, _type: _ASN1Type | None=…, *, _validate: bool=…) -> None
  • changed: constructor RelativeDistinguishedName(attributes: typing.Iterable[NameAttribute]) → constructor RelativeDistinguishedName(attributes: Iterable[NameAttribute])
  • changed: method Name.get_attributes_for_oid(oid: ObjectIdentifier) -> list[NameAttribute] → method Name.get_attributes_for_oid(oid: ObjectIdentifier) -> list[NameAttribute[str | bytes]]
  • changed: method RelativeDistinguishedName.get_attributes_for_oid(oid: ObjectIdentifier) -> list[NameAttribute] → method RelativeDistinguishedName.get_attributes_for_oid(oid: ObjectIdentifier) -> list[NameAttribute[str | bytes]]
  • added: property NameAttribute.value -> NameAttributeValueType
  • added: variable NameAttributeValueType
  • changed: method OCSPResponseBuilder.certificates(certs: typing.Iterable[x509.Certificate]) -> OCSPResponseBuilder → method OCSPResponseBuilder.certificates(certs: Iterable[x509.Certificate]) -> OCSPResponseBuilder
  • added: method OCSPResponseBuilder.add_response_by_hash(issuer_name_hash: bytes, issuer_key_hash: bytes, serial_number: int, algorithm: hashes.HashAlgorithm, cert_status: OCSPCertStatus, this_update: datetime.datetime, next_update: datetime.datetime | None, revocation_time: datetime.datetime | None, revocation_reason: x509.ReasonFlags | None) -> OCSPResponseBuilder
  • added: export OtherNameFormOID
  • added: variable Criticality
  • added: variable ExtensionPolicy
  • added: variable Policy