Merge pull request #1645 from reaperhulk/x509-attrs
add attribute and objectidentifier classes for x509 name
diff --git a/docs/hazmat/primitives/asymmetric/serialization.rst b/docs/hazmat/primitives/asymmetric/serialization.rst
index f63455e..7ff4ce3 100644
--- a/docs/hazmat/primitives/asymmetric/serialization.rst
+++ b/docs/hazmat/primitives/asymmetric/serialization.rst
@@ -24,6 +24,14 @@
7SGRS1DTUGX4Y70m9dQpguy6Zg+gpHC+o+ERZR06uEQr+w==
-----END RSA PRIVATE KEY-----
""".strip()
+ public_pem_data = b"""
+ -----BEGIN PUBLIC KEY-----
+ MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDn09PV9KPE7Q+N5K5UtNLT1DLl
+ 8z/pKM2pP5tXqWx2OsEw00lCkDHdHESwzS050s/8rtkERKKyusCzCm9+vC1pQzUl
+ mtibfF4PQAQc1pJL6KHqlidgHw49atYmnC25CaeXt65pAYXoIacOZ8k5X7FW3Eag
+ ex8nG0iMw4ObOtg6CwIDAQAB
+ -----END PUBLIC KEY-----
+ """.strip()
message = b""
def sign_with_rsa_key(key, message):
@@ -63,6 +71,14 @@
all begin with ``-----BEGIN {format}-----`` and end with ``-----END
{format}-----``.
+.. note::
+
+ A PEM block which starts with ``-----BEGIN CERTIFICATE-----`` is not a
+ public or private key, it's an :doc:`X.509 Certificate </x509>`. You can
+ load it using :func:`~cryptography.x509.load_pem_x509_certificate` and
+ extract the public key with
+ :meth:`Certificate.public_key <cryptography.x509.Certificate.public_key>`.
+
.. function:: load_pem_private_key(data, password, backend)
.. versionadded:: 0.6
@@ -99,6 +115,13 @@
Deserialize a public key from PEM encoded data to one of the supported
asymmetric public key types.
+ .. doctest::
+
+ >>> from cryptography.hazmat.primitives.serialization import load_pem_public_key
+ >>> key = load_pem_public_key(public_pem_data, backend=default_backend())
+ >>> isinstance(key, rsa.RSAPublicKey)
+ True
+
:param bytes data: The PEM encoded key data.
:param backend: A