Select Git revision
CHANGELOG.rst
-
Alex Gaynor authored
Closes #5290
Alex Gaynor authoredCloses #5290
CHANGELOG.rst 58.03 KiB
Changelog
3.0 - master
Note
This version is not yet released and is under active development.
- BACKWARDS INCOMPATIBLE: Removed support for passing an :class:`~cryptography.x509.Extension` instance to :meth:`~cryptography.x509.AuthorityKeyIdentifier.from_issuer_subject_key_identifier`, as per our deprecation policy.
- BACKWARDS INCOMPATIBLE: Support for LibreSSL 2.7.x, 2.8.x, and 2.9.0 has been removed (2.9.1+ is still supported).
- BACKWARDS INCOMPATIBLE: Dropped support for macOS 10.9, macOS users must upgrade to 10.10 or newer.
-
BACKWARDS INCOMPATIBLE: RSA
:meth:`~cryptography.hazmat.primitives.asymmetric.rsa.generate_private_key`
no longer accepts
public_exponent
values except 65537 and 3 (the latter for legacy purposes). -
BACKWARDS INCOMPATIBLE: X.509 certificate parsing now enforces that the
version
field contains a valid value, rather than deferring this check until :attr:`~cryptography.x509.Certificate.version` is accessed. - Deprecated support for Python 2. At the time there is no time table for actually dropping support, however we strongly encourage all users to upgrade their Python, as Python 2 no longer receives support from the Python core team.
- Added support for
OpenSSH
serialization format forec
,ed25519
,rsa
anddsa
private keys: :func:`~cryptography.hazmat.primitives.serialization.load_ssh_private_key` for loading and :attr:`~cryptography.hazmat.primitives.serialization.PrivateFormat.OpenSSH` for writing. - Added support for
OpenSSH
certificates to :func:`~cryptography.hazmat.primitives.serialization.load_ssh_public_key`. - Added :meth:`~cryptography.fernet.Fernet.encrypt_at_time` and :meth:`~cryptography.fernet.Fernet.decrypt_at_time` to :class:`~cryptography.fernet.Fernet`.
- Added support for the :class:`~cryptography.x509.SubjectInformationAccess` X.509 extension.
- Added support for parsing :class:`~cryptography.x509.SignedCertificateTimestamps` in OCSP responses.
2.9.2 - 2020-04-22
- Updated the macOS wheel to fix an issue where it would not run on macOS versions older than 10.15.
2.9.1 - 2020-04-21
- Updated Windows, macOS, and
manylinux
wheels to be compiled with OpenSSL 1.1.1g.
2.9 - 2020-04-02
- BACKWARDS INCOMPATIBLE: Support for Python 3.4 has been removed due to low usage and maintenance burden.
- BACKWARDS INCOMPATIBLE: Support for OpenSSL 1.0.1 has been removed. Users on older version of OpenSSL will need to upgrade.
- BACKWARDS INCOMPATIBLE: Support for LibreSSL 2.6.x has been removed.
- Removed support for calling
:meth:`~cryptography.hazmat.primitives.asymmetric.x25519.X25519PublicKey.public_bytes`
with no arguments, as per our deprecation policy. You must now pass
encoding
andformat
. - BACKWARDS INCOMPATIBLE: Reversed the order in which :meth:`~cryptography.x509.Name.rfc4514_string` returns the RDNs as required by RFC 4514.
- Updated Windows, macOS, and
manylinux
wheels to be compiled with OpenSSL 1.1.1f. - Added support for parsing :attr:`~cryptography.x509.ocsp.OCSPResponse.single_extensions` in an OCSP response.
- :class:`~cryptography.x509.NameAttribute` values can now be empty strings.
2.8 - 2019-10-16
- Updated Windows, macOS, and
manylinux
wheels to be compiled with OpenSSL 1.1.1d. - Added support for Python 3.8.
- Added class methods :meth:`Poly1305.generate_tag <cryptography.hazmat.primitives.poly1305.Poly1305.generate_tag>` and :meth:`Poly1305.verify_tag <cryptography.hazmat.primitives.poly1305.Poly1305.verify_tag>` for Poly1305 sign and verify operations.
- Deprecated support for OpenSSL 1.0.1. Support will be removed in
cryptography
2.9. - We now ship
manylinux2010
wheels in addition to ourmanylinux1
wheels. - Added support for
ed25519
anded448
keys in the :class:`~cryptography.x509.CertificateBuilder`, :class:`~cryptography.x509.CertificateSigningRequestBuilder`, :class:`~cryptography.x509.CertificateRevocationListBuilder` and :class:`~cryptography.x509.ocsp.OCSPResponseBuilder`. -
cryptography
no longer depends onasn1crypto
. - :class:`~cryptography.x509.FreshestCRL` is now allowed as a :class:`~cryptography.x509.CertificateRevocationList` extension.
2.7 - 2019-05-30
-
BACKWARDS INCOMPATIBLE: We no longer distribute 32-bit
manylinux1
wheels. Continuing to produce them was a maintenance burden. -
BACKWARDS INCOMPATIBLE: Removed the
cryptography.hazmat.primitives.mac.MACContext
interface. TheCMAC
andHMAC
APIs have not changed, but they are no longer registered asMACContext
instances. - Updated Windows, macOS, and
manylinux1
wheels to be compiled with OpenSSL 1.1.1c. - Removed support for running our tests with
setup.py test
. Users interested in running our tests can continue to follow the directions in our :doc:`development documentation</development/getting-started>`. - Add support for :class:`~cryptography.hazmat.primitives.poly1305.Poly1305` when using OpenSSL 1.1.1 or newer.
- Support serialization with
Encoding.OpenSSH
andPublicFormat.OpenSSH
in :meth:`Ed25519PublicKey.public_bytes <cryptography.hazmat.primitives.asymmetric.ed25519.Ed25519PublicKey.public_bytes>` . - Correctly allow passing a
SubjectKeyIdentifier
to :meth:`~cryptography.x509.AuthorityKeyIdentifier.from_issuer_subject_key_identifier` and deprecate passing anExtension
object. The documentation always requiredSubjectKeyIdentifier
but the implementation previously required anExtension
.
2.6.1 - 2019-02-27
- Resolved an error in our build infrastructure that broke our Python3 wheels for macOS and Linux.
2.6 - 2019-02-27
-
BACKWARDS INCOMPATIBLE: Removed
cryptography.hazmat.primitives.asymmetric.utils.encode_rfc6979_signature
andcryptography.hazmat.primitives.asymmetric.utils.decode_rfc6979_signature
, which had been deprecated for nearly 4 years. Use :func:`~cryptography.hazmat.primitives.asymmetric.utils.encode_dss_signature` and :func:`~cryptography.hazmat.primitives.asymmetric.utils.decode_dss_signature` instead. -
BACKWARDS INCOMPATIBLE: Removed
cryptography.x509.Certificate.serial
, which had been deprecated for nearly 3 years. Use :attr:`~cryptography.x509.Certificate.serial_number` instead. - Updated Windows, macOS, and
manylinux1
wheels to be compiled with OpenSSL 1.1.1b. - Added support for :doc:`/hazmat/primitives/asymmetric/ed448` when using OpenSSL 1.1.1b or newer.
- Added support for :doc:`/hazmat/primitives/asymmetric/ed25519` when using OpenSSL 1.1.1b or newer.
- :func:`~cryptography.hazmat.primitives.serialization.load_ssh_public_key` can
now load
ed25519
public keys. - Add support for easily mapping an object identifier to its elliptic curve class via :func:`~cryptography.hazmat.primitives.asymmetric.ec.get_curve_for_oid`.
- Add support for OpenSSL when compiled with the
no-engine
(OPENSSL_NO_ENGINE
) flag.
2.5 - 2019-01-22
-
BACKWARDS INCOMPATIBLE: :term:`U-label` strings were deprecated in
version 2.1, but this version removes the default
idna
dependency as well. If you still need this deprecated path please install cryptography with theidna
extra:pip install cryptography[idna]
. - BACKWARDS INCOMPATIBLE: The minimum supported PyPy version is now 5.4.
- Numerous classes and functions have been updated to allow :term:`bytes-like` types for keying material and passwords, including symmetric algorithms, AEAD ciphers, KDFs, loading asymmetric keys, and one time password classes.
- Updated Windows, macOS, and
manylinux1
wheels to be compiled with OpenSSL 1.1.1a. - Added support for :class:`~cryptography.hazmat.primitives.hashes.SHA512_224` and :class:`~cryptography.hazmat.primitives.hashes.SHA512_256` when using OpenSSL 1.1.1.
- Added support for :class:`~cryptography.hazmat.primitives.hashes.SHA3_224`, :class:`~cryptography.hazmat.primitives.hashes.SHA3_256`, :class:`~cryptography.hazmat.primitives.hashes.SHA3_384`, and :class:`~cryptography.hazmat.primitives.hashes.SHA3_512` when using OpenSSL 1.1.1.
- Added support for :doc:`/hazmat/primitives/asymmetric/x448` when using OpenSSL 1.1.1.
- Added support for :class:`~cryptography.hazmat.primitives.hashes.SHAKE128` and :class:`~cryptography.hazmat.primitives.hashes.SHAKE256` when using OpenSSL 1.1.1.
- Added initial support for parsing PKCS12 files with :func:`~cryptography.hazmat.primitives.serialization.pkcs12.load_key_and_certificates`.
- Added support for :class:`~cryptography.x509.IssuingDistributionPoint`.
- Added
rfc4514_string()
method to :meth:`x509.Name <cryptography.x509.Name.rfc4514_string>`, :meth:`x509.RelativeDistinguishedName <cryptography.x509.RelativeDistinguishedName.rfc4514_string>`, and :meth:`x509.NameAttribute <cryptography.x509.NameAttribute.rfc4514_string>` to format the name or component an RFC 4514 Distinguished Name string. - Added :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.from_encoded_point`, which immediately checks if the point is on the curve and supports compressed points. Deprecated the previous method :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.from_encoded_point`.
- Added :attr:`~cryptography.x509.ocsp.OCSPResponse.signature_hash_algorithm`
to
OCSPResponse
. - Updated :doc:`/hazmat/primitives/asymmetric/x25519` support to allow additional serialization methods. Calling :meth:`~cryptography.hazmat.primitives.asymmetric.x25519.X25519PublicKey.public_bytes` with no arguments has been deprecated.
- Added support for encoding compressed and uncompressed points via :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.public_bytes`. Deprecated the previous method :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicNumbers.encode_point`.
2.4.2 - 2018-11-21
- Updated Windows, macOS, and
manylinux1
wheels to be compiled with OpenSSL 1.1.0j.
2.4.1 - 2018-11-11
- Fixed a build breakage in our
manylinux1
wheels.
2.4 - 2018-11-11
- BACKWARDS INCOMPATIBLE: Dropped support for LibreSSL 2.4.x.
- Deprecated OpenSSL 1.0.1 support. OpenSSL 1.0.1 is no longer supported by
the OpenSSL project. At this time there is no time table for dropping
support, however we strongly encourage all users to upgrade or install
cryptography
from a wheel. - Added initial :doc:`OCSP </x509/ocsp>` support.
- Added support for :class:`~cryptography.x509.PrecertPoison`.
2.3.1 - 2018-08-14
- Updated Windows, macOS, and
manylinux1
wheels to be compiled with OpenSSL 1.1.0i.
2.3 - 2018-07-18
-
SECURITY ISSUE:
:meth:`~cryptography.hazmat.primitives.ciphers.AEADDecryptionContext.finalize_with_tag`
allowed tag truncation by default which can allow tag forgery in some cases.
The method now enforces the
min_tag_length
provided to the :class:`~cryptography.hazmat.primitives.ciphers.modes.GCM` constructor. CVE-2018-10903 - Added support for Python 3.7.
- Added :meth:`~cryptography.fernet.Fernet.extract_timestamp` to get the authenticated timestamp of a :doc:`Fernet </fernet>` token.
- Support for Python 2.7.x without
hmac.compare_digest
has been deprecated. We will require Python 2.7.7 or higher (or 2.7.6 on Ubuntu) in the nextcryptography
release. - Fixed multiple issues preventing
cryptography
from compiling against LibreSSL 2.7.x. - Added :class:`~cryptography.x509.CertificateRevocationList.get_revoked_certificate_by_serial_number` for quick serial number searches in CRLs.
- The :class:`~cryptography.x509.RelativeDistinguishedName` class now preserves the order of attributes. Duplicate attributes now raise an error instead of silently discarding duplicates.
- :func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap` and
:func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap_with_padding`
now raise :class:`~cryptography.hazmat.primitives.keywrap.InvalidUnwrap` if
the wrapped key is an invalid length, instead of
ValueError
.
2.2.2 - 2018-03-27
- Updated Windows, macOS, and
manylinux1
wheels to be compiled with OpenSSL 1.1.0h.
2.2.1 - 2018-03-20
- Reverted a change to
GeneralNames
which prohibited having zero elements, due to breakages. - Fixed a bug in
:func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap_with_padding`
that caused it to raise
InvalidUnwrap
when key length modulo 8 was zero.
2.2 - 2018-03-19
- BACKWARDS INCOMPATIBLE: Support for Python 2.6 has been dropped.
- Resolved a bug in
HKDF
that incorrectly constrained output size. - Added :class:`~cryptography.hazmat.primitives.asymmetric.ec.BrainpoolP256R1`, :class:`~cryptography.hazmat.primitives.asymmetric.ec.BrainpoolP384R1`, and :class:`~cryptography.hazmat.primitives.asymmetric.ec.BrainpoolP512R1` to support inter-operating with systems like German smart meters.
- Added token rotation support to :doc:`Fernet </fernet>` with :meth:`~cryptography.fernet.MultiFernet.rotate`.
- Fixed a memory leak in :func:`~cryptography.hazmat.primitives.asymmetric.ec.derive_private_key`.
- Added support for AES key wrapping with padding via :func:`~cryptography.hazmat.primitives.keywrap.aes_key_wrap_with_padding` and :func:`~cryptography.hazmat.primitives.keywrap.aes_key_unwrap_with_padding` .
- Allow loading DSA keys with 224 bit
q
.
2.1.4 - 2017-11-29
- Added
X509_up_ref
for an upcomingpyOpenSSL
release.
2.1.3 - 2017-11-02
- Updated Windows, macOS, and
manylinux1
wheels to be compiled with OpenSSL 1.1.0g.
2.1.2 - 2017-10-24
- Corrected a bug with the
manylinux1
wheels where OpenSSL's stack was marked executable.
2.1.1 - 2017-10-12
- Fixed support for install with the system
pip
on Ubuntu 16.04.
2.1 - 2017-10-11
-
FINAL DEPRECATION Python 2.6 support is deprecated, and will be removed
in the next release of
cryptography
. -
BACKWARDS INCOMPATIBLE:
Whirlpool
,RIPEMD160
, andUnsupportedExtension
have been removed in accordance with our :doc:`/api-stability` policy. - BACKWARDS INCOMPATIBLE: :attr:`DNSName.value <cryptography.x509.DNSName.value>`, :attr:`RFC822Name.value <cryptography.x509.RFC822Name.value>`, and :attr:`UniformResourceIdentifier.value <cryptography.x509.UniformResourceIdentifier.value>` will now return an :term:`A-label` string when parsing a certificate containing an internationalized domain name (IDN) or if the caller passed a :term:`U-label` to the constructor. See below for additional deprecations related to this change.
- Installing
cryptography
now requirespip
6 or newer. - Deprecated passing :term:`U-label` strings to the
:class:`~cryptography.x509.DNSName`,
:class:`~cryptography.x509.UniformResourceIdentifier`, and
:class:`~cryptography.x509.RFC822Name` constructors. Instead, users should
pass values as :term:`A-label` strings with
idna
encoding if necessary. This change will not affect anyone who is not processing internationalized domains. - Added support for :class:`~cryptography.hazmat.primitives.ciphers.algorithms.ChaCha20`. In most cases users should choose :class:`~cryptography.hazmat.primitives.ciphers.aead.ChaCha20Poly1305` rather than using this unauthenticated form.
- Added :meth:`~cryptography.x509.CertificateRevocationList.is_signature_valid` to :class:`~cryptography.x509.CertificateRevocationList`.
- Support :class:`~cryptography.hazmat.primitives.hashes.BLAKE2b` and :class:`~cryptography.hazmat.primitives.hashes.BLAKE2s` with :class:`~cryptography.hazmat.primitives.hmac.HMAC`.
- Added support for :class:`~cryptography.hazmat.primitives.ciphers.modes.XTS` mode for AES.
- Added support for using labels with :class:`~cryptography.hazmat.primitives.asymmetric.padding.OAEP` when using OpenSSL 1.0.2 or greater.
- Improved compatibility with NSS when issuing certificates from an issuer
that has a subject with non-
UTF8String
string types. - Add support for the :class:`~cryptography.x509.DeltaCRLIndicator` extension.
- Add support for the :class:`~cryptography.x509.TLSFeature`
extension. This is commonly used for enabling
OCSP Must-Staple
in certificates. - Add support for the :class:`~cryptography.x509.FreshestCRL` extension.
2.0.3 - 2017-08-03
- Fixed an issue with weak linking symbols when compiling on macOS versions older than 10.12.
2.0.2 - 2017-07-27
- Marked all symbols as hidden in the
manylinux1
wheel to avoid a bug with symbol resolution in certain scenarios.
2.0.1 - 2017-07-26
- Fixed a compilation bug affecting OpenBSD.
- Altered the
manylinux1
wheels to statically link OpenSSL instead of dynamically linking and bundling the shared object. This should resolve crashes seen when usinguwsgi
or other binaries that link against OpenSSL independently. - Fixed the stack level for the
signer
andverifier
warnings.
2.0 - 2017-07-17
- BACKWARDS INCOMPATIBLE: Support for Python 3.3 has been dropped.
- We now ship
manylinux1
wheels linked against OpenSSL 1.1.0f. These wheels will be automatically used with most Linux distributions if you are running the latest pip. - Deprecated the use of
signer
on :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey`, :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey`, and :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey` in favor ofsign
. - Deprecated the use of
verifier
on :class:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey`, :class:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey`, and :class:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey` in favor ofverify
. - Added support for parsing :class:`~cryptography.x509.certificate_transparency.SignedCertificateTimestamp` objects from X.509 certificate extensions.
- Added support for :class:`~cryptography.hazmat.primitives.ciphers.aead.ChaCha20Poly1305`.
- Added support for :class:`~cryptography.hazmat.primitives.ciphers.aead.AESCCM`.
- Added :class:`~cryptography.hazmat.primitives.ciphers.aead.AESGCM`, a "one shot" API for AES GCM encryption.
- Added support for :doc:`/hazmat/primitives/asymmetric/x25519`.
- Added support for serializing and deserializing Diffie-Hellman parameters with :func:`~cryptography.hazmat.primitives.serialization.load_pem_parameters`, :func:`~cryptography.hazmat.primitives.serialization.load_der_parameters`, and :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHParameters.parameter_bytes` .
- The
extensions
attribute on :class:`~cryptography.x509.Certificate`, :class:`~cryptography.x509.CertificateSigningRequest`, :class:`~cryptography.x509.CertificateRevocationList`, and :class:`~cryptography.x509.RevokedCertificate` now caches the computedExtensions
object. There should be no performance change, just a performance improvement for programs accessing theextensions
attribute multiple times.
1.9 - 2017-05-29
-
BACKWARDS INCOMPATIBLE: Elliptic Curve signature verification no longer
returns
True
on success. This brings it in line with the interface's documentation, and our intent. The correct way to use :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.verify` has always been to check whether or not :class:`~cryptography.exceptions.InvalidSignature` was raised. - BACKWARDS INCOMPATIBLE: Dropped support for macOS 10.7 and 10.8.
- BACKWARDS INCOMPATIBLE: The minimum supported PyPy version is now 5.3.
- Python 3.3 support has been deprecated, and will be removed in the next
cryptography
release. - Add support for providing
tag
during :class:`~cryptography.hazmat.primitives.ciphers.modes.GCM` finalization via :meth:`~cryptography.hazmat.primitives.ciphers.AEADDecryptionContext.finalize_with_tag`. - Fixed an issue preventing
cryptography
from compiling against LibreSSL 2.5.x. - Added :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.key_size` and :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey.key_size` as convenience methods for determining the bit size of a secret scalar for the curve.
- Accessing an unrecognized extension marked critical on an X.509 object will
no longer raise an
UnsupportedExtension
exception, instead an :class:`~cryptography.x509.UnrecognizedExtension` object will be returned. This behavior was based on a poor reading of the RFC, unknown critical extensions only need to be rejected on certificate verification. - The CommonCrypto backend has been removed.
- MultiBackend has been removed.
-
Whirlpool
andRIPEMD160
have been deprecated.
1.8.2 - 2017-05-26
- Fixed a compilation bug affecting OpenSSL 1.1.0f.
- Updated Windows and macOS wheels to be compiled against OpenSSL 1.1.0f.
1.8.1 - 2017-03-10
- Fixed macOS wheels to properly link against 1.1.0 rather than 1.0.2.
1.8 - 2017-03-09
- Added support for Python 3.6.
- Windows and macOS wheels now link against OpenSSL 1.1.0.
- macOS wheels are no longer universal. This change significantly shrinks the size of the wheels. Users on macOS 32-bit Python (if there are any) should migrate to 64-bit or build their own packages.
- Changed ASN.1 dependency from
pyasn1
toasn1crypto
resulting in a general performance increase when encoding/decoding ASN.1 structures. Also, thepyasn1_modules
test dependency is no longer required. - Added support for :meth:`~cryptography.hazmat.primitives.ciphers.CipherContext.update_into` on :class:`~cryptography.hazmat.primitives.ciphers.CipherContext`.
- Added :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHPrivateKeyWithSerialization.private_bytes` to :class:`~cryptography.hazmat.primitives.asymmetric.dh.DHPrivateKeyWithSerialization`.
- Added :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHPublicKey.public_bytes` to :class:`~cryptography.hazmat.primitives.asymmetric.dh.DHPublicKey`.
- :func:`~cryptography.hazmat.primitives.serialization.load_pem_private_key`
and
:func:`~cryptography.hazmat.primitives.serialization.load_der_private_key`
now require that
password
must be bytes if provided. Previously this was documented but not enforced. - Added support for subgroup order in :doc:`/hazmat/primitives/asymmetric/dh`.
1.7.2 - 2017-01-27
- Updated Windows and macOS wheels to be compiled against OpenSSL 1.0.2k.
1.7.1 - 2016-12-13
- Fixed a regression in
int_from_bytes
where it failed to acceptbytearray
.
1.7 - 2016-12-12
- Support for OpenSSL 1.0.0 has been removed. Users on older version of OpenSSL will need to upgrade.
- Added support for Diffie-Hellman key exchange using :meth:`~cryptography.hazmat.primitives.asymmetric.dh.DHPrivateKey.exchange`.
- The OS random engine for OpenSSL has been rewritten to improve compatibility with embedded Python and other edge cases. More information about this change can be found in the pull request.
1.6 - 2016-11-22
- Deprecated support for OpenSSL 1.0.0. Support will be removed in
cryptography
1.7. - Replaced the Python-based OpenSSL locking callbacks with a C version to fix a potential deadlock that could occur if a garbage collection cycle occurred while inside the lock.
- Added support for :class:`~cryptography.hazmat.primitives.hashes.BLAKE2b` and :class:`~cryptography.hazmat.primitives.hashes.BLAKE2s` when using OpenSSL 1.1.0.
- Added :attr:`~cryptography.x509.Certificate.signature_algorithm_oid` support to :class:`~cryptography.x509.Certificate`.
- Added :attr:`~cryptography.x509.CertificateSigningRequest.signature_algorithm_oid` support to :class:`~cryptography.x509.CertificateSigningRequest`.
- Added :attr:`~cryptography.x509.CertificateRevocationList.signature_algorithm_oid` support to :class:`~cryptography.x509.CertificateRevocationList`.
- Added support for :class:`~cryptography.hazmat.primitives.kdf.scrypt.Scrypt` when using OpenSSL 1.1.0.
- Added a workaround to improve compatibility with Python application bundling
tools like
PyInstaller
andcx_freeze
. - Added support for generating a :meth:`~cryptography.x509.random_serial_number`.
- Added support for encoding
IPv4Network
andIPv6Network
in X.509 certificates for use with :class:`~cryptography.x509.NameConstraints`. - Added :meth:`~cryptography.x509.Name.public_bytes` to :class:`~cryptography.x509.Name`.
- Added :class:`~cryptography.x509.RelativeDistinguishedName`
- :class:`~cryptography.x509.DistributionPoint` now accepts :class:`~cryptography.x509.RelativeDistinguishedName` for :attr:`~cryptography.x509.DistributionPoint.relative_name`. Deprecated use of :class:`~cryptography.x509.Name` as :attr:`~cryptography.x509.DistributionPoint.relative_name`.
- :class:`~cryptography.x509.Name` now accepts an iterable of :class:`~cryptography.x509.RelativeDistinguishedName`. RDNs can be accessed via the :attr:`~cryptography.x509.Name.rdns` attribute. When constructed with an iterable of :class:`~cryptography.x509.NameAttribute`, each attribute becomes a single-valued RDN.
- Added :func:`~cryptography.hazmat.primitives.asymmetric.ec.derive_private_key`.
- Added support for signing and verifying RSA, DSA, and ECDSA signatures with :class:`~cryptography.hazmat.primitives.asymmetric.utils.Prehashed` digests.
1.5.3 - 2016-11-05
-
SECURITY ISSUE: Fixed a bug where
HKDF
would return an empty byte-string if used with alength
less thanalgorithm.digest_size
. Credit to Markus Döring for reporting the issue. CVE-2016-9243
1.5.2 - 2016-09-26
- Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2j.
1.5.1 - 2016-09-22
- Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2i.
- Resolved a
UserWarning
when used with cffi 1.8.3. - Fixed a memory leak in name creation with X.509.
- Added a workaround for old versions of setuptools.
- Fixed an issue preventing
cryptography
from compiling against OpenSSL 1.0.2i.
1.5 - 2016-08-26
- Added :func:`~cryptography.hazmat.primitives.asymmetric.padding.calculate_max_pss_salt_length`.
- Added "one shot" :meth:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPrivateKey.sign` and :meth:`~cryptography.hazmat.primitives.asymmetric.dsa.DSAPublicKey.verify` methods to DSA keys.
- Added "one shot" :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePrivateKey.sign` and :meth:`~cryptography.hazmat.primitives.asymmetric.ec.EllipticCurvePublicKey.verify` methods to ECDSA keys.
- Switched back to the older callback model on Python 3.5 in order to mitigate the locking callback problem with OpenSSL <1.1.0.
- :class:`~cryptography.x509.CertificateBuilder`,
:class:`~cryptography.x509.CertificateRevocationListBuilder`, and
:class:`~cryptography.x509.RevokedCertificateBuilder` now accept timezone
aware
datetime
objects as method arguments -
cryptography
now supports OpenSSL 1.1.0 as a compilation target.
1.4 - 2016-06-04
- Support for OpenSSL 0.9.8 has been removed. Users on older versions of OpenSSL will need to upgrade.
- Added :class:`~cryptography.hazmat.primitives.kdf.kbkdf.KBKDFHMAC`.
- Added support for
OpenSSH
public key serialization. - Added support for SHA-2 in RSA :class:`~cryptography.hazmat.primitives.asymmetric.padding.OAEP` when using OpenSSL 1.0.2 or greater.
- Added "one shot" :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPrivateKey.sign` and :meth:`~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey.verify` methods to RSA keys.
- Deprecated the
serial
attribute on :class:`~cryptography.x509.Certificate`, in favor of :attr:`~cryptography.x509.Certificate.serial_number`.
1.3.4 - 2016-06-03
- Added another OpenSSL function to the bindings to support an upcoming
pyOpenSSL
release.
1.3.3 - 2016-06-02
- Added two new OpenSSL functions to the bindings to support an upcoming
pyOpenSSL
release.
1.3.2 - 2016-05-04
- Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2h.
- Fixed an issue preventing
cryptography
from compiling against LibreSSL 2.3.x.
1.3.1 - 2016-03-21
- Fixed a bug that caused an
AttributeError
when usingmock
to patch somecryptography
modules.
1.3 - 2016-03-18
- Added support for padding ANSI X.923 with :class:`~cryptography.hazmat.primitives.padding.ANSIX923`.
- Deprecated support for OpenSSL 0.9.8. Support will be removed in
cryptography
1.4. - Added support for the :class:`~cryptography.x509.PolicyConstraints` X.509 extension including both parsing and generation using :class:`~cryptography.x509.CertificateBuilder` and :class:`~cryptography.x509.CertificateSigningRequestBuilder`.
- Added :attr:`~cryptography.x509.CertificateSigningRequest.is_signature_valid` to :class:`~cryptography.x509.CertificateSigningRequest`.
- Fixed an intermittent
AssertionError
when performing an RSA decryption on an invalid ciphertext,ValueError
is now correctly raised in all cases. - Added :meth:`~cryptography.x509.AuthorityKeyIdentifier.from_issuer_subject_key_identifier`.
1.2.3 - 2016-03-01
- Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2g.
1.2.2 - 2016-01-29
- Updated Windows and OS X wheels to be compiled against OpenSSL 1.0.2f.