aboutsummaryrefslogtreecommitdiffstats
path: root/src/cryptography/hazmat/backends/openssl/decode_asn1.py
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2017-09-24 08:44:12 +0800
committerAlex Gaynor <alex.gaynor@gmail.com>2017-09-23 20:44:12 -0400
commitb76bcf88bd272dcde26858c936a743a229aefd5a (patch)
tree3a6504ab0be963aceb49e95c1acb0f09ec3de84d /src/cryptography/hazmat/backends/openssl/decode_asn1.py
parent5e3cc98473ad54db390736ac81bb74210e85056d (diff)
downloadcryptography-b76bcf88bd272dcde26858c936a743a229aefd5a.tar.gz
cryptography-b76bcf88bd272dcde26858c936a743a229aefd5a.tar.bz2
cryptography-b76bcf88bd272dcde26858c936a743a229aefd5a.zip
FreshestCRL extension support (#3937)
* add freshest CRL support * add tests * add changelog * add tests for FreshestCRL generation
Diffstat (limited to 'src/cryptography/hazmat/backends/openssl/decode_asn1.py')
-rw-r--r--src/cryptography/hazmat/backends/openssl/decode_asn1.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/cryptography/hazmat/backends/openssl/decode_asn1.py b/src/cryptography/hazmat/backends/openssl/decode_asn1.py
index 1326a94e..ec55a9e8 100644
--- a/src/cryptography/hazmat/backends/openssl/decode_asn1.py
+++ b/src/cryptography/hazmat/backends/openssl/decode_asn1.py
@@ -463,7 +463,7 @@ _DISTPOINT_TYPE_FULLNAME = 0
_DISTPOINT_TYPE_RELATIVENAME = 1
-def _decode_crl_distribution_points(backend, cdps):
+def _decode_dist_points(backend, cdps):
cdps = backend._ffi.cast("Cryptography_STACK_OF_DIST_POINT *", cdps)
cdps = backend._ffi.gc(cdps, backend._lib.CRL_DIST_POINTS_free)
@@ -554,9 +554,19 @@ def _decode_crl_distribution_points(backend, cdps):
)
)
+ return dist_points
+
+
+def _decode_crl_distribution_points(backend, cdps):
+ dist_points = _decode_dist_points(backend, cdps)
return x509.CRLDistributionPoints(dist_points)
+def _decode_freshest_crl(backend, cdps):
+ dist_points = _decode_dist_points(backend, cdps)
+ return x509.FreshestCRL(dist_points)
+
+
def _decode_inhibit_any_policy(backend, asn1_int):
asn1_int = backend._ffi.cast("ASN1_INTEGER *", asn1_int)
asn1_int = backend._ffi.gc(asn1_int, backend._lib.ASN1_INTEGER_free)
@@ -728,6 +738,7 @@ _EXTENSION_HANDLERS_NO_SCT = {
),
ExtensionOID.CERTIFICATE_POLICIES: _decode_certificate_policies,
ExtensionOID.CRL_DISTRIBUTION_POINTS: _decode_crl_distribution_points,
+ ExtensionOID.FRESHEST_CRL: _decode_freshest_crl,
ExtensionOID.OCSP_NO_CHECK: _decode_ocsp_no_check,
ExtensionOID.INHIBIT_ANY_POLICY: _decode_inhibit_any_policy,
ExtensionOID.ISSUER_ALTERNATIVE_NAME: _decode_issuer_alt_name,