diff options
author | Paul Kehrer <paul.l.kehrer@gmail.com> | 2015-02-23 12:14:54 -0600 |
---|---|---|
committer | Paul Kehrer <paul.l.kehrer@gmail.com> | 2015-03-29 00:23:34 -0500 |
commit | dc480adc596c82e175f323df1ad042f3646d74cc (patch) | |
tree | 8b21cf9dc90762413908061a7dc7df59d8a5c24b /docs/x509.rst | |
parent | 554104d69e00d7afbea3c69f8e956e84bda5f1af (diff) | |
download | cryptography-dc480adc596c82e175f323df1ad042f3646d74cc.tar.gz cryptography-dc480adc596c82e175f323df1ad042f3646d74cc.tar.bz2 cryptography-dc480adc596c82e175f323df1ad042f3646d74cc.zip |
basic support for parsing x509 requests
Diffstat (limited to 'docs/x509.rst')
-rw-r--r-- | docs/x509.rst | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/docs/x509.rst b/docs/x509.rst index f17c3dae..2ff12902 100644 --- a/docs/x509.rst +++ b/docs/x509.rst @@ -77,6 +77,58 @@ Loading Certificates >>> cert.serial 2 +Loading Certificate Requests +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. function:: load_pem_x509_request(data, backend) + + .. versionadded:: 0.9 + + Deserialize a certificate request from PEM encoded data. PEM requests are + base64 decoded and have delimiters that look like + ``-----BEGIN CERTIFICATE REQUEST-----``. This is also known as PKCS#10 + format. + + :param bytes data: The PEM encoded request data. + + :param backend: A backend supporting the + :class:`~cryptography.hazmat.backends.interfaces.X509Backend` + interface. + + :returns: An instance of :class:`~cryptography.x509.Request`. + +.. testsetup:: + + pem_req_data = b""" + -----BEGIN CERTIFICATE REQUEST----- + MIIC0zCCAbsCAQAwWTELMAkGA1UEBhMCVVMxETAPBgNVBAgMCElsbGlub2lzMRAw + DgYDVQQHDAdDaGljYWdvMREwDwYDVQQKDAhyNTA5IExMQzESMBAGA1UEAwwJaGVs + bG8uY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqhZx+Mo9VRd9 + vsnWWa6NBCws21rZ0+1B/JGgB4hDsZS7iDE4Bj5z4idheFRtl8bBbdjPknq7BfoF + 8v15Zq/Zv7i2xMSDL+LUrTBZezRd4bRTGqCm6YJ5EYkhqdcqeZleHCFImguHoq1J + Fh0+kObQrTHXw3ZP57a3o1IvyIUA3nNoCBL0QQhwBXaDXOojMKNR+bqB5ve8GS1y + Elr0AM/+cJsfaIahNQUgFKx3Eu3GeEOMKYOAG1lycgdQdmTUybLrT3U7vkClTseM + xHg1r5En7ALjONIhqRuq3rddYahrP8HXozb3zUy3cJ7P6IeaosuvNzvMXOX9P6HD + Ha9urDAJ1wIDAQABoDUwMwYJKoZIhvcNAQkOMSYwJDAiBgNVHREEGzAZggl3b3Js + ZC5jb22CDHdoYXRldmVyLmNvbTANBgkqhkiG9w0BAQUFAAOCAQEAS4Ro6h+z52SK + YSLCYARpnEu/rmh4jdqndt8naqcNb6uLx9mlKZ2W9on9XDjnSdQD9q+ZP5aZfESw + R0+rJhW9ZrNa/g1pt6M24ihclHYDAxYMWxT1z/TXXGM3TmZZ6gfYlNE1kkBuODHa + UYsR/1Ht1E1EsmmUimt2n+zQR2K8T9Coa+boaUW/GsTEuz1aaJAkj5ZvTDiIhRG4 + AOCqFZOLAQmCCNgJnnspD9hDz/Ons085LF5wnYjN4/Nsk5tS6AGs3xjZ3jPoOGGn + 82WQ9m4dBGoVDZXsobVTaN592JEYwN5iu72zRn7Einb4V4H5y3yD2dD4yWPlt4pk + 5wFkeYsZEA== + -----END CERTIFICATE REQUEST----- + """.strip() + +.. doctest:: + + >>> from cryptography import x509 + >>> from cryptography.hazmat.backends import default_backend + >>> from cryptography.hazmat.primitives import hashes + >>> request = x509.load_pem_x509_request(pem_req_data, default_backend()) + >>> isinstance(request.signature_hash_algorithm, hashes.SHA1) + True + X.509 Certificate Object ~~~~~~~~~~~~~~~~~~~~~~~~ @@ -211,6 +263,49 @@ X.509 Certificate Object ... print(ext) <Extension(oid=<ObjectIdentifier(oid=2.5.29.19, name=basicConstraints)>, critical=True, value=<BasicConstraints(ca=True, path_length=None)>)> +X.509 Certificate Request Object +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. class:: Request + + .. versionadded:: 0.9 + + .. method:: public_key() + + :type: + :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey` or + :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey` or + :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey` + + The public key associated with the request. + + .. doctest:: + + >>> from cryptography.hazmat.primitives.asymmetric import rsa + >>> public_key = request.public_key() + >>> isinstance(public_key, rsa.RSAPublicKey) + True + + .. attribute:: subject + + :type: :class:`Name` + + The :class:`Name` of the subject. + + .. attribute:: signature_hash_algorithm + + :type: :class:`~cryptography.hazmat.primitives.hashes.HashAlgorithm` + + Returns the + :class:`~cryptography.hazmat.primitives.hashes.HashAlgorithm` which + was used in signing this request. + + .. doctest:: + + >>> from cryptography.hazmat.primitives import hashes + >>> isinstance(request.signature_hash_algorithm, hashes.SHA1) + True + .. class:: Name .. versionadded:: 0.8 |