blob: 5cd7fd92a7b2dacb56ee662fa2f32fca6dbc391f [file] [log] [blame]
.. _openssl-crypto:
:py:mod:`crypto` --- Generic cryptographic module
=================================================
.. py:module:: OpenSSL.crypto
:synopsis: Generic cryptographic module
.. note::
`pyca/cryptography`_ is likely a better choice than using this module.
It contains a complete set of cryptographic primitives as well as a significantly better and more powerful X509 API.
If necessary you can convert to and from cryptography objects using the ``to_cryptography`` and ``from_cryptography`` methods on ``X509``, ``X509Req``, ``CRL``, and ``PKey``.
Elliptic curves
---------------
.. autofunction:: get_elliptic_curves
.. autofunction:: get_elliptic_curve
Serialization and deserialization
---------------------------------
The following serialization functions take one of these constants to determine the format.
.. py:data:: FILETYPE_PEM
:data:`FILETYPE_PEM` serializes data to a Base64-encoded encoded representation of the underlying ASN.1 data structure. This representation includes delimiters that define what data structure is contained within the Base64-encoded block: for example, for a certificate, the delimiters are ``-----BEGIN CERTIFICATE-----`` and ``-----END CERTIFICATE-----``.
.. py:data:: FILETYPE_ASN1
:data:`FILETYPE_ASN1` serializes data to the underlying ASN.1 data structure. The format used by :data:`FILETYPE_ASN1` is also sometimes referred to as DER.
Certificates
~~~~~~~~~~~~
.. autofunction:: dump_certificate
.. autofunction:: load_certificate
Certificate signing requests
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. autofunction:: dump_certificate_request
.. autofunction:: load_certificate_request
Private keys
~~~~~~~~~~~~
.. autofunction:: dump_privatekey
.. autofunction:: load_privatekey
Public keys
~~~~~~~~~~~
.. autofunction:: dump_publickey
.. autofunction:: load_publickey
Certificate revocation lists
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. autofunction:: dump_crl
.. autofunction:: load_crl
.. autofunction:: load_pkcs7_data
.. autofunction:: load_pkcs12
Signing and verifying signatures
--------------------------------
.. autofunction:: sign
.. autofunction:: verify
.. _openssl-x509:
X509 objects
------------
.. autoclass:: X509
:members:
.. _openssl-x509name:
X509Name objects
----------------
.. autoclass:: X509Name
:members:
:special-members:
:exclude-members: __repr__, __getattr__, __weakref__
.. _openssl-x509req:
X509Req objects
---------------
.. autoclass:: X509Req
:members:
:special-members:
:exclude-members: __weakref__
.. _openssl-x509store:
X509Store objects
-----------------
.. autoclass:: X509Store
:members:
.. _openssl-x509storecontexterror:
X509StoreContextError objects
-----------------------------
.. autoclass:: X509StoreContextError
:members:
.. _openssl-x509storecontext:
X509StoreContext objects
------------------------
.. autoclass:: X509StoreContext
:members:
.. _openssl-pkey:
X509StoreFlags constants
------------------------
.. autoclass:: X509StoreFlags
.. data:: CRL_CHECK
.. data:: CRL_CHECK_ALL
.. data:: IGNORE_CRITICAL
.. data:: X509_STRICT
.. data:: ALLOW_PROXY_CERTS
.. data:: POLICY_CHECK
.. data:: EXPLICIT_POLICY
.. data:: INHIBIT_MAP
.. data:: NOTIFY_POLICY
.. data:: CHECK_SS_SIGNATURE
.. data:: CB_ISSUER_CHECK
.. _openssl-x509storeflags:
PKey objects
------------
.. autoclass:: PKey
:members:
.. _openssl-pkcs7:
.. py:data:: TYPE_RSA
TYPE_DSA
Key type constants.
PKCS7 objects
-------------
PKCS7 objects have the following methods:
.. autoclass:: PKCS7
:members:
.. _openssl-pkcs12:
PKCS12 objects
--------------
.. autoclass:: PKCS12
:members:
.. _openssl-509ext:
X509Extension objects
---------------------
.. autoclass:: X509Extension
:members:
:special-members:
:exclude-members: __weakref__
.. _openssl-netscape-spki:
NetscapeSPKI objects
--------------------
.. autoclass:: NetscapeSPKI
:members:
:special-members:
:exclude-members: __weakref__
.. _crl:
CRL objects
-----------
.. autoclass:: CRL
:members:
:special-members:
:exclude-members: __weakref__
.. _revoked:
Revoked objects
---------------
.. autoclass:: Revoked
:members:
Exceptions
----------
.. py:exception:: Error
Generic exception used in the :py:mod:`.crypto` module.
Digest names
------------
Several of the functions and methods in this module take a digest name.
These must be strings describing a digest algorithm supported by OpenSSL (by ``EVP_get_digestbyname``, specifically).
For example, :const:`b"sha256"` or :const:`b"sha384"`.
More information and a list of these digest names can be found in the ``EVP_DigestInit(3)`` man page of your OpenSSL installation.
This page can be found online for the latest version of OpenSSL:
https://www.openssl.org/docs/manmaster/man3/EVP_DigestInit.html
.. _`pyca/cryptography`: https://cryptography.io