summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2023-03-30 17:46:16 -0400
committerGitHub <noreply@github.com>2023-03-31 06:46:16 +0900
commit394ae30408f4286bddac211afe67cbdcb545dcac (patch)
treee066c982fe4289d032dab07f2edbc4f0abcab907 /src
parent5890361c5fa70e3c48d863a383a9d5a2586039ca (diff)
downloadcryptography-394ae30408f4286bddac211afe67cbdcb545dcac.tar.gz
Use from __future__ import annotations everywhere (#8643)
Diffstat (limited to 'src')
-rw-r--r--src/_cffi_src/build_openssl.py1
-rw-r--r--src/_cffi_src/openssl/asn1.py1
-rw-r--r--src/_cffi_src/openssl/bignum.py1
-rw-r--r--src/_cffi_src/openssl/bio.py1
-rw-r--r--src/_cffi_src/openssl/callbacks.py1
-rw-r--r--src/_cffi_src/openssl/cmac.py1
-rw-r--r--src/_cffi_src/openssl/crypto.py1
-rw-r--r--src/_cffi_src/openssl/cryptography.py1
-rw-r--r--src/_cffi_src/openssl/dh.py1
-rw-r--r--src/_cffi_src/openssl/dsa.py1
-rw-r--r--src/_cffi_src/openssl/ec.py1
-rw-r--r--src/_cffi_src/openssl/ecdsa.py1
-rw-r--r--src/_cffi_src/openssl/engine.py1
-rw-r--r--src/_cffi_src/openssl/err.py1
-rw-r--r--src/_cffi_src/openssl/evp.py1
-rw-r--r--src/_cffi_src/openssl/fips.py1
-rw-r--r--src/_cffi_src/openssl/hmac.py1
-rw-r--r--src/_cffi_src/openssl/nid.py1
-rw-r--r--src/_cffi_src/openssl/objects.py1
-rw-r--r--src/_cffi_src/openssl/opensslv.py1
-rw-r--r--src/_cffi_src/openssl/pem.py1
-rw-r--r--src/_cffi_src/openssl/pkcs12.py1
-rw-r--r--src/_cffi_src/openssl/pkcs7.py1
-rw-r--r--src/_cffi_src/openssl/provider.py1
-rw-r--r--src/_cffi_src/openssl/rand.py1
-rw-r--r--src/_cffi_src/openssl/rsa.py1
-rw-r--r--src/_cffi_src/openssl/ssl.py1
-rw-r--r--src/_cffi_src/openssl/x509.py1
-rw-r--r--src/_cffi_src/openssl/x509_vfy.py1
-rw-r--r--src/_cffi_src/openssl/x509name.py1
-rw-r--r--src/_cffi_src/openssl/x509v3.py1
-rw-r--r--src/_cffi_src/utils.py1
-rw-r--r--src/cryptography/__about__.py1
-rw-r--r--src/cryptography/__init__.py2
-rw-r--r--src/cryptography/exceptions.py3
-rw-r--r--src/cryptography/fernet.py1
-rw-r--r--src/cryptography/hazmat/__init__.py3
-rw-r--r--src/cryptography/hazmat/_oid.py2
-rw-r--r--src/cryptography/hazmat/backends/__init__.py3
-rw-r--r--src/cryptography/hazmat/backends/openssl/__init__.py1
-rw-r--r--src/cryptography/hazmat/backends/openssl/aead.py26
-rw-r--r--src/cryptography/hazmat/backends/openssl/backend.py1
-rw-r--r--src/cryptography/hazmat/backends/openssl/ciphers.py6
-rw-r--r--src/cryptography/hazmat/backends/openssl/cmac.py8
-rw-r--r--src/cryptography/hazmat/backends/openssl/decode_asn1.py1
-rw-r--r--src/cryptography/hazmat/backends/openssl/dh.py12
-rw-r--r--src/cryptography/hazmat/backends/openssl/dsa.py13
-rw-r--r--src/cryptography/hazmat/backends/openssl/ec.py20
-rw-r--r--src/cryptography/hazmat/backends/openssl/ed25519.py6
-rw-r--r--src/cryptography/hazmat/backends/openssl/ed448.py6
-rw-r--r--src/cryptography/hazmat/backends/openssl/hashes.py6
-rw-r--r--src/cryptography/hazmat/backends/openssl/hmac.py6
-rw-r--r--src/cryptography/hazmat/backends/openssl/poly1305.py4
-rw-r--r--src/cryptography/hazmat/backends/openssl/rsa.py36
-rw-r--r--src/cryptography/hazmat/backends/openssl/utils.py4
-rw-r--r--src/cryptography/hazmat/backends/openssl/x448.py6
-rw-r--r--src/cryptography/hazmat/bindings/openssl/_conditional.py2
-rw-r--r--src/cryptography/hazmat/bindings/openssl/binding.py2
-rw-r--r--src/cryptography/hazmat/primitives/_asymmetric.py2
-rw-r--r--src/cryptography/hazmat/primitives/_cipheralgorithm.py2
-rw-r--r--src/cryptography/hazmat/primitives/_serialization.py10
-rw-r--r--src/cryptography/hazmat/primitives/asymmetric/dh.py11
-rw-r--r--src/cryptography/hazmat/primitives/asymmetric/dsa.py11
-rw-r--r--src/cryptography/hazmat/primitives/asymmetric/ec.py11
-rw-r--r--src/cryptography/hazmat/primitives/asymmetric/ed25519.py7
-rw-r--r--src/cryptography/hazmat/primitives/asymmetric/ed448.py7
-rw-r--r--src/cryptography/hazmat/primitives/asymmetric/padding.py7
-rw-r--r--src/cryptography/hazmat/primitives/asymmetric/rsa.py11
-rw-r--r--src/cryptography/hazmat/primitives/asymmetric/types.py2
-rw-r--r--src/cryptography/hazmat/primitives/asymmetric/utils.py1
-rw-r--r--src/cryptography/hazmat/primitives/asymmetric/x25519.py7
-rw-r--r--src/cryptography/hazmat/primitives/asymmetric/x448.py7
-rw-r--r--src/cryptography/hazmat/primitives/ciphers/__init__.py1
-rw-r--r--src/cryptography/hazmat/primitives/ciphers/aead.py1
-rw-r--r--src/cryptography/hazmat/primitives/ciphers/algorithms.py1
-rw-r--r--src/cryptography/hazmat/primitives/ciphers/base.py19
-rw-r--r--src/cryptography/hazmat/primitives/ciphers/modes.py1
-rw-r--r--src/cryptography/hazmat/primitives/cmac.py7
-rw-r--r--src/cryptography/hazmat/primitives/constant_time.py1
-rw-r--r--src/cryptography/hazmat/primitives/hashes.py8
-rw-r--r--src/cryptography/hazmat/primitives/hmac.py3
-rw-r--r--src/cryptography/hazmat/primitives/kdf/__init__.py1
-rw-r--r--src/cryptography/hazmat/primitives/kdf/concatkdf.py1
-rw-r--r--src/cryptography/hazmat/primitives/kdf/hkdf.py1
-rw-r--r--src/cryptography/hazmat/primitives/kdf/kbkdf.py2
-rw-r--r--src/cryptography/hazmat/primitives/kdf/pbkdf2.py1
-rw-r--r--src/cryptography/hazmat/primitives/kdf/scrypt.py1
-rw-r--r--src/cryptography/hazmat/primitives/kdf/x963kdf.py1
-rw-r--r--src/cryptography/hazmat/primitives/keywrap.py1
-rw-r--r--src/cryptography/hazmat/primitives/padding.py1
-rw-r--r--src/cryptography/hazmat/primitives/poly1305.py2
-rw-r--r--src/cryptography/hazmat/primitives/serialization/__init__.py1
-rw-r--r--src/cryptography/hazmat/primitives/serialization/base.py5
-rw-r--r--src/cryptography/hazmat/primitives/serialization/pkcs12.py2
-rw-r--r--src/cryptography/hazmat/primitives/serialization/pkcs7.py8
-rw-r--r--src/cryptography/hazmat/primitives/serialization/ssh.py23
-rw-r--r--src/cryptography/hazmat/primitives/twofactor/__init__.py2
-rw-r--r--src/cryptography/hazmat/primitives/twofactor/hotp.py3
-rw-r--r--src/cryptography/hazmat/primitives/twofactor/totp.py2
-rw-r--r--src/cryptography/utils.py1
-rw-r--r--src/cryptography/x509/__init__.py1
-rw-r--r--src/cryptography/x509/base.py41
-rw-r--r--src/cryptography/x509/certificate_transparency.py1
-rw-r--r--src/cryptography/x509/extensions.py41
-rw-r--r--src/cryptography/x509/general_name.py9
-rw-r--r--src/cryptography/x509/name.py4
-rw-r--r--src/cryptography/x509/ocsp.py15
-rw-r--r--src/cryptography/x509/oid.py2
108 files changed, 330 insertions, 194 deletions
diff --git a/src/_cffi_src/build_openssl.py b/src/_cffi_src/build_openssl.py
index e971fd955..42754fb64 100644
--- a/src/_cffi_src/build_openssl.py
+++ b/src/_cffi_src/build_openssl.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import os
import pathlib
diff --git a/src/_cffi_src/openssl/asn1.py b/src/_cffi_src/openssl/asn1.py
index 492743289..d2be452a6 100644
--- a/src/_cffi_src/openssl/asn1.py
+++ b/src/_cffi_src/openssl/asn1.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/asn1.h>
diff --git a/src/_cffi_src/openssl/bignum.py b/src/_cffi_src/openssl/bignum.py
index 1e9f81128..9ea729001 100644
--- a/src/_cffi_src/openssl/bignum.py
+++ b/src/_cffi_src/openssl/bignum.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/bn.h>
diff --git a/src/_cffi_src/openssl/bio.py b/src/_cffi_src/openssl/bio.py
index 899856d35..1742e3481 100644
--- a/src/_cffi_src/openssl/bio.py
+++ b/src/_cffi_src/openssl/bio.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/bio.h>
diff --git a/src/_cffi_src/openssl/callbacks.py b/src/_cffi_src/openssl/callbacks.py
index 57a393686..ddb764283 100644
--- a/src/_cffi_src/openssl/callbacks.py
+++ b/src/_cffi_src/openssl/callbacks.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <string.h>
diff --git a/src/_cffi_src/openssl/cmac.py b/src/_cffi_src/openssl/cmac.py
index a25426305..7095066da 100644
--- a/src/_cffi_src/openssl/cmac.py
+++ b/src/_cffi_src/openssl/cmac.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#if !defined(OPENSSL_NO_CMAC)
diff --git a/src/_cffi_src/openssl/crypto.py b/src/_cffi_src/openssl/crypto.py
index 63843e02e..f36a0fa17 100644
--- a/src/_cffi_src/openssl/crypto.py
+++ b/src/_cffi_src/openssl/crypto.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/crypto.h>
diff --git a/src/_cffi_src/openssl/cryptography.py b/src/_cffi_src/openssl/cryptography.py
index 40e6ce984..05d3e0e50 100644
--- a/src/_cffi_src/openssl/cryptography.py
+++ b/src/_cffi_src/openssl/cryptography.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
/* define our OpenSSL API compatibility level to 1.1.0. Any symbols older than
diff --git a/src/_cffi_src/openssl/dh.py b/src/_cffi_src/openssl/dh.py
index 44b3d817a..1a75b6d22 100644
--- a/src/_cffi_src/openssl/dh.py
+++ b/src/_cffi_src/openssl/dh.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/dh.h>
diff --git a/src/_cffi_src/openssl/dsa.py b/src/_cffi_src/openssl/dsa.py
index cf34913b5..04478a0e5 100644
--- a/src/_cffi_src/openssl/dsa.py
+++ b/src/_cffi_src/openssl/dsa.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/dsa.h>
diff --git a/src/_cffi_src/openssl/ec.py b/src/_cffi_src/openssl/ec.py
index b037675f0..e745b3efc 100644
--- a/src/_cffi_src/openssl/ec.py
+++ b/src/_cffi_src/openssl/ec.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/ec.h>
diff --git a/src/_cffi_src/openssl/ecdsa.py b/src/_cffi_src/openssl/ecdsa.py
index 53294afc6..716b5d030 100644
--- a/src/_cffi_src/openssl/ecdsa.py
+++ b/src/_cffi_src/openssl/ecdsa.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/ecdsa.h>
diff --git a/src/_cffi_src/openssl/engine.py b/src/_cffi_src/openssl/engine.py
index 9931639b4..609313ec5 100644
--- a/src/_cffi_src/openssl/engine.py
+++ b/src/_cffi_src/openssl/engine.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/engine.h>
diff --git a/src/_cffi_src/openssl/err.py b/src/_cffi_src/openssl/err.py
index ebe6c3559..2bb2545fc 100644
--- a/src/_cffi_src/openssl/err.py
+++ b/src/_cffi_src/openssl/err.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/err.h>
diff --git a/src/_cffi_src/openssl/evp.py b/src/_cffi_src/openssl/evp.py
index b8a38995c..aa92f1ddb 100644
--- a/src/_cffi_src/openssl/evp.py
+++ b/src/_cffi_src/openssl/evp.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/evp.h>
diff --git a/src/_cffi_src/openssl/fips.py b/src/_cffi_src/openssl/fips.py
index 9fb1e7aed..9e3ce9524 100644
--- a/src/_cffi_src/openssl/fips.py
+++ b/src/_cffi_src/openssl/fips.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/crypto.h>
diff --git a/src/_cffi_src/openssl/hmac.py b/src/_cffi_src/openssl/hmac.py
index 8b1915361..8fbc2b411 100644
--- a/src/_cffi_src/openssl/hmac.py
+++ b/src/_cffi_src/openssl/hmac.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/hmac.h>
diff --git a/src/_cffi_src/openssl/nid.py b/src/_cffi_src/openssl/nid.py
index 28135b428..8933c95d8 100644
--- a/src/_cffi_src/openssl/nid.py
+++ b/src/_cffi_src/openssl/nid.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/obj_mac.h>
diff --git a/src/_cffi_src/openssl/objects.py b/src/_cffi_src/openssl/objects.py
index cfa7fac21..5f9bdb336 100644
--- a/src/_cffi_src/openssl/objects.py
+++ b/src/_cffi_src/openssl/objects.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/objects.h>
diff --git a/src/_cffi_src/openssl/opensslv.py b/src/_cffi_src/openssl/opensslv.py
index 630ebd7a1..7957bd7dd 100644
--- a/src/_cffi_src/openssl/opensslv.py
+++ b/src/_cffi_src/openssl/opensslv.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/opensslv.h>
diff --git a/src/_cffi_src/openssl/pem.py b/src/_cffi_src/openssl/pem.py
index 62253da7a..aac77ac71 100644
--- a/src/_cffi_src/openssl/pem.py
+++ b/src/_cffi_src/openssl/pem.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/pem.h>
diff --git a/src/_cffi_src/openssl/pkcs12.py b/src/_cffi_src/openssl/pkcs12.py
index 135afc94b..234f97b3e 100644
--- a/src/_cffi_src/openssl/pkcs12.py
+++ b/src/_cffi_src/openssl/pkcs12.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/pkcs12.h>
diff --git a/src/_cffi_src/openssl/pkcs7.py b/src/_cffi_src/openssl/pkcs7.py
index e0d52322f..60741bbac 100644
--- a/src/_cffi_src/openssl/pkcs7.py
+++ b/src/_cffi_src/openssl/pkcs7.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/pkcs7.h>
diff --git a/src/_cffi_src/openssl/provider.py b/src/_cffi_src/openssl/provider.py
index d741ad7e4..769fded96 100644
--- a/src/_cffi_src/openssl/provider.py
+++ b/src/_cffi_src/openssl/provider.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#if CRYPTOGRAPHY_OPENSSL_300_OR_GREATER
diff --git a/src/_cffi_src/openssl/rand.py b/src/_cffi_src/openssl/rand.py
index a2cce0ad2..ee00fe68d 100644
--- a/src/_cffi_src/openssl/rand.py
+++ b/src/_cffi_src/openssl/rand.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/rand.h>
diff --git a/src/_cffi_src/openssl/rsa.py b/src/_cffi_src/openssl/rsa.py
index a7a3256b7..eea6e396e 100644
--- a/src/_cffi_src/openssl/rsa.py
+++ b/src/_cffi_src/openssl/rsa.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/rsa.h>
diff --git a/src/_cffi_src/openssl/ssl.py b/src/_cffi_src/openssl/ssl.py
index 3e1b09209..1b59e97ff 100644
--- a/src/_cffi_src/openssl/ssl.py
+++ b/src/_cffi_src/openssl/ssl.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/ssl.h>
diff --git a/src/_cffi_src/openssl/x509.py b/src/_cffi_src/openssl/x509.py
index 06445f12c..66e859204 100644
--- a/src/_cffi_src/openssl/x509.py
+++ b/src/_cffi_src/openssl/x509.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/ssl.h>
diff --git a/src/_cffi_src/openssl/x509_vfy.py b/src/_cffi_src/openssl/x509_vfy.py
index 71d0cec38..0337afa34 100644
--- a/src/_cffi_src/openssl/x509_vfy.py
+++ b/src/_cffi_src/openssl/x509_vfy.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/x509_vfy.h>
diff --git a/src/_cffi_src/openssl/x509name.py b/src/_cffi_src/openssl/x509name.py
index 9eca79e38..876af17f2 100644
--- a/src/_cffi_src/openssl/x509name.py
+++ b/src/_cffi_src/openssl/x509name.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/x509.h>
diff --git a/src/_cffi_src/openssl/x509v3.py b/src/_cffi_src/openssl/x509v3.py
index 838bda290..dae98da1b 100644
--- a/src/_cffi_src/openssl/x509v3.py
+++ b/src/_cffi_src/openssl/x509v3.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
INCLUDES = """
#include <openssl/x509v3.h>
diff --git a/src/_cffi_src/utils.py b/src/_cffi_src/utils.py
index 5d2c4224a..cc2a2fb5f 100644
--- a/src/_cffi_src/utils.py
+++ b/src/_cffi_src/utils.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import os
import platform
diff --git a/src/cryptography/__about__.py b/src/cryptography/__about__.py
index ef6399c17..9ab3785b1 100644
--- a/src/cryptography/__about__.py
+++ b/src/cryptography/__about__.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
__all__ = [
"__version__",
diff --git a/src/cryptography/__init__.py b/src/cryptography/__init__.py
index ffa979a4e..86b9a2572 100644
--- a/src/cryptography/__init__.py
+++ b/src/cryptography/__init__.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
from cryptography.__about__ import __author__, __copyright__, __version__
__all__ = [
diff --git a/src/cryptography/exceptions.py b/src/cryptography/exceptions.py
index 5e69c1192..59c7ebaff 100644
--- a/src/cryptography/exceptions.py
+++ b/src/cryptography/exceptions.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import typing
@@ -56,7 +57,7 @@ class InvalidSignature(Exception):
class InternalError(Exception):
def __init__(
- self, msg: str, err_code: typing.List["rust_openssl.OpenSSLError"]
+ self, msg: str, err_code: typing.List[rust_openssl.OpenSSLError]
) -> None:
super().__init__(msg)
self.err_code = err_code
diff --git a/src/cryptography/fernet.py b/src/cryptography/fernet.py
index a2601f80f..ad8fb40b9 100644
--- a/src/cryptography/fernet.py
+++ b/src/cryptography/fernet.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import base64
import binascii
diff --git a/src/cryptography/hazmat/__init__.py b/src/cryptography/hazmat/__init__.py
index 007694bc5..b9f118701 100644
--- a/src/cryptography/hazmat/__init__.py
+++ b/src/cryptography/hazmat/__init__.py
@@ -1,6 +1,9 @@
# This file is dual licensed under the terms of the Apache License, Version
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+
+from __future__ import annotations
+
"""
Hazardous Materials
diff --git a/src/cryptography/hazmat/_oid.py b/src/cryptography/hazmat/_oid.py
index bc9c046c6..82a6498f9 100644
--- a/src/cryptography/hazmat/_oid.py
+++ b/src/cryptography/hazmat/_oid.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import typing
from cryptography.hazmat.bindings._rust import (
diff --git a/src/cryptography/hazmat/backends/__init__.py b/src/cryptography/hazmat/backends/__init__.py
index 3926f85f1..b4400aa03 100644
--- a/src/cryptography/hazmat/backends/__init__.py
+++ b/src/cryptography/hazmat/backends/__init__.py
@@ -1,6 +1,9 @@
# This file is dual licensed under the terms of the Apache License, Version
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+
+from __future__ import annotations
+
from typing import Any
diff --git a/src/cryptography/hazmat/backends/openssl/__init__.py b/src/cryptography/hazmat/backends/openssl/__init__.py
index 42c4539df..51b04476c 100644
--- a/src/cryptography/hazmat/backends/openssl/__init__.py
+++ b/src/cryptography/hazmat/backends/openssl/__init__.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
from cryptography.hazmat.backends.openssl.backend import backend
diff --git a/src/cryptography/hazmat/backends/openssl/aead.py b/src/cryptography/hazmat/backends/openssl/aead.py
index d43deb432..7361f2279 100644
--- a/src/cryptography/hazmat/backends/openssl/aead.py
+++ b/src/cryptography/hazmat/backends/openssl/aead.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import typing
from cryptography.exceptions import InvalidTag
@@ -24,7 +26,7 @@ _ENCRYPT = 1
_DECRYPT = 0
-def _aead_cipher_name(cipher: "_AEADTypes") -> bytes:
+def _aead_cipher_name(cipher: _AEADTypes) -> bytes:
from cryptography.hazmat.primitives.ciphers.aead import (
AESCCM,
AESGCM,
@@ -46,7 +48,7 @@ def _aead_cipher_name(cipher: "_AEADTypes") -> bytes:
return f"aes-{len(cipher._key) * 8}-gcm".encode("ascii")
-def _evp_cipher(cipher_name: bytes, backend: "Backend"):
+def _evp_cipher(cipher_name: bytes, backend: Backend):
if cipher_name.endswith(b"-siv"):
evp_cipher = backend._lib.EVP_CIPHER_fetch(
backend._ffi.NULL,
@@ -63,8 +65,8 @@ def _evp_cipher(cipher_name: bytes, backend: "Backend"):
def _aead_create_ctx(
- backend: "Backend",
- cipher: "_AEADTypes",
+ backend: Backend,
+ cipher: _AEADTypes,
key: bytes,
):
ctx = backend._lib.EVP_CIPHER_CTX_new()
@@ -86,7 +88,7 @@ def _aead_create_ctx(
def _aead_setup(
- backend: "Backend",
+ backend: Backend,
cipher_name: bytes,
key: bytes,
nonce: bytes,
@@ -158,7 +160,7 @@ def _set_nonce_operation(backend, ctx, nonce: bytes, operation: int) -> None:
backend.openssl_assert(res != 0)
-def _set_length(backend: "Backend", ctx, data_len: int) -> None:
+def _set_length(backend: Backend, ctx, data_len: int) -> None:
intptr = backend._ffi.new("int *")
res = backend._lib.EVP_CipherUpdate(
ctx, backend._ffi.NULL, intptr, backend._ffi.NULL, data_len
@@ -166,7 +168,7 @@ def _set_length(backend: "Backend", ctx, data_len: int) -> None:
backend.openssl_assert(res != 0)
-def _process_aad(backend: "Backend", ctx, associated_data: bytes) -> None:
+def _process_aad(backend: Backend, ctx, associated_data: bytes) -> None:
outlen = backend._ffi.new("int *")
a_data_ptr = backend._ffi.from_buffer(associated_data)
res = backend._lib.EVP_CipherUpdate(
@@ -175,7 +177,7 @@ def _process_aad(backend: "Backend", ctx, associated_data: bytes) -> None:
backend.openssl_assert(res != 0)
-def _process_data(backend: "Backend", ctx, data: bytes) -> bytes:
+def _process_data(backend: Backend, ctx, data: bytes) -> bytes:
outlen = backend._ffi.new("int *")
buf = backend._ffi.new("unsigned char[]", len(data))
data_ptr = backend._ffi.from_buffer(data)
@@ -188,8 +190,8 @@ def _process_data(backend: "Backend", ctx, data: bytes) -> bytes:
def _encrypt(
- backend: "Backend",
- cipher: "_AEADTypes",
+ backend: Backend,
+ cipher: _AEADTypes,
nonce: bytes,
data: bytes,
associated_data: typing.List[bytes],
@@ -246,8 +248,8 @@ def _encrypt(
def _decrypt(
- backend: "Backend",
- cipher: "_AEADTypes",
+ backend: Backend,
+ cipher: _AEADTypes,
nonce: bytes,
data: bytes,
associated_data: typing.List[bytes],
diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py
index 587656369..ac464e75a 100644
--- a/src/cryptography/hazmat/backends/openssl/backend.py
+++ b/src/cryptography/hazmat/backends/openssl/backend.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import collections
import contextlib
diff --git a/src/cryptography/hazmat/backends/openssl/ciphers.py b/src/cryptography/hazmat/backends/openssl/ciphers.py
index 8d4b8dc3b..bc42adbd4 100644
--- a/src/cryptography/hazmat/backends/openssl/ciphers.py
+++ b/src/cryptography/hazmat/backends/openssl/ciphers.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import typing
from cryptography.exceptions import InvalidTag, UnsupportedAlgorithm, _Reasons
@@ -17,9 +19,7 @@ class _CipherContext:
_DECRYPT = 0
_MAX_CHUNK_SIZE = 2**30 - 1
- def __init__(
- self, backend: "Backend", cipher, mode, operation: int
- ) -> None:
+ def __init__(self, backend: Backend, cipher, mode, operation: int) -> None:
self._backend = backend
self._cipher = cipher
self._mode = mode
diff --git a/src/cryptography/hazmat/backends/openssl/cmac.py b/src/cryptography/hazmat/backends/openssl/cmac.py
index 6f7363294..bdd7fec61 100644
--- a/src/cryptography/hazmat/backends/openssl/cmac.py
+++ b/src/cryptography/hazmat/backends/openssl/cmac.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import typing
from cryptography.exceptions import (
@@ -20,8 +22,8 @@ if typing.TYPE_CHECKING:
class _CMACContext:
def __init__(
self,
- backend: "Backend",
- algorithm: "ciphers.BlockCipherAlgorithm",
+ backend: Backend,
+ algorithm: ciphers.BlockCipherAlgorithm,
ctx=None,
) -> None:
if not backend.cmac_algorithm_supported(algorithm):
@@ -72,7 +74,7 @@ class _CMACContext:
return self._backend._ffi.buffer(buf)[:]
- def copy(self) -> "_CMACContext":
+ def copy(self) -> _CMACContext:
copied_ctx = self._backend._lib.CMAC_CTX_new()
copied_ctx = self._backend._ffi.gc(
copied_ctx, self._backend._lib.CMAC_CTX_free
diff --git a/src/cryptography/hazmat/backends/openssl/decode_asn1.py b/src/cryptography/hazmat/backends/openssl/decode_asn1.py
index df91d6d8a..bf123b628 100644
--- a/src/cryptography/hazmat/backends/openssl/decode_asn1.py
+++ b/src/cryptography/hazmat/backends/openssl/decode_asn1.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
from cryptography import x509
diff --git a/src/cryptography/hazmat/backends/openssl/dh.py b/src/cryptography/hazmat/backends/openssl/dh.py
index 87d6fb8af..6c1889bc3 100644
--- a/src/cryptography/hazmat/backends/openssl/dh.py
+++ b/src/cryptography/hazmat/backends/openssl/dh.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import typing
from cryptography.exceptions import UnsupportedAlgorithm, _Reasons
@@ -12,7 +14,7 @@ if typing.TYPE_CHECKING:
from cryptography.hazmat.backends.openssl.backend import Backend
-def _dh_params_dup(dh_cdata, backend: "Backend"):
+def _dh_params_dup(dh_cdata, backend: Backend):
lib = backend._lib
ffi = backend._ffi
@@ -30,13 +32,13 @@ def _dh_params_dup(dh_cdata, backend: "Backend"):
return param_cdata
-def _dh_cdata_to_parameters(dh_cdata, backend: "Backend") -> "_DHParameters":
+def _dh_cdata_to_parameters(dh_cdata, backend: Backend) -> _DHParameters:
param_cdata = _dh_params_dup(dh_cdata, backend)
return _DHParameters(backend, param_cdata)
class _DHParameters(dh.DHParameters):
- def __init__(self, backend: "Backend", dh_cdata):
+ def __init__(self, backend: Backend, dh_cdata):
self._backend = backend
self._dh_cdata = dh_cdata
@@ -112,7 +114,7 @@ def _get_dh_num_bits(backend, dh_cdata) -> int:
class _DHPrivateKey(dh.DHPrivateKey):
- def __init__(self, backend: "Backend", dh_cdata, evp_pkey):
+ def __init__(self, backend: Backend, dh_cdata, evp_pkey):
self._backend = backend
self._dh_cdata = dh_cdata
self._evp_pkey = evp_pkey
@@ -249,7 +251,7 @@ class _DHPrivateKey(dh.DHPrivateKey):
class _DHPublicKey(dh.DHPublicKey):
- def __init__(self, backend: "Backend", dh_cdata, evp_pkey):
+ def __init__(self, backend: Backend, dh_cdata, evp_pkey):
self._backend = backend
self._dh_cdata = dh_cdata
self._evp_pkey = evp_pkey
diff --git a/src/cryptography/hazmat/backends/openssl/dsa.py b/src/cryptography/hazmat/backends/openssl/dsa.py
index 15bd84a7b..be0500152 100644
--- a/src/cryptography/hazmat/backends/openssl/dsa.py
+++ b/src/cryptography/hazmat/backends/openssl/dsa.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import typing
@@ -18,7 +19,7 @@ if typing.TYPE_CHECKING:
def _dsa_sig_sign(
- backend: "Backend", private_key: "_DSAPrivateKey", data: bytes
+ backend: Backend, private_key: _DSAPrivateKey, data: bytes
) -> bytes:
sig_buf_len = backend._lib.DSA_size(private_key._dsa_cdata)
sig_buf = backend._ffi.new("unsigned char[]", sig_buf_len)
@@ -36,8 +37,8 @@ def _dsa_sig_sign(
def _dsa_sig_verify(
- backend: "Backend",
- public_key: "_DSAPublicKey",
+ backend: Backend,
+ public_key: _DSAPublicKey,
signature: bytes,
data: bytes,
) -> None:
@@ -53,7 +54,7 @@ def _dsa_sig_verify(
class _DSAParameters(dsa.DSAParameters):
- def __init__(self, backend: "Backend", dsa_cdata):
+ def __init__(self, backend: Backend, dsa_cdata):
self._backend = backend
self._dsa_cdata = dsa_cdata
@@ -78,7 +79,7 @@ class _DSAParameters(dsa.DSAParameters):
class _DSAPrivateKey(dsa.DSAPrivateKey):
_key_size: int
- def __init__(self, backend: "Backend", dsa_cdata, evp_pkey):
+ def __init__(self, backend: Backend, dsa_cdata, evp_pkey):
self._backend = backend
self._dsa_cdata = dsa_cdata
self._evp_pkey = evp_pkey
@@ -173,7 +174,7 @@ class _DSAPrivateKey(dsa.DSAPrivateKey):
class _DSAPublicKey(dsa.DSAPublicKey):
_key_size: int
- def __init__(self, backend: "Backend", dsa_cdata, evp_pkey):
+ def __init__(self, backend: Backend, dsa_cdata, evp_pkey):
self._backend = backend
self._dsa_cdata = dsa_cdata
self._evp_pkey = evp_pkey
diff --git a/src/cryptography/hazmat/backends/openssl/ec.py b/src/cryptography/hazmat/backends/openssl/ec.py
index 969306bcb..90a7b6fa3 100644
--- a/src/cryptography/hazmat/backends/openssl/ec.py
+++ b/src/cryptography/hazmat/backends/openssl/ec.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import typing
from cryptography.exceptions import (
@@ -30,7 +32,7 @@ def _check_signature_algorithm(
)
-def _ec_key_curve_sn(backend: "Backend", ec_key) -> str:
+def _ec_key_curve_sn(backend: Backend, ec_key) -> str:
group = backend._lib.EC_KEY_get0_group(ec_key)
backend.openssl_assert(group != backend._ffi.NULL)
@@ -60,7 +62,7 @@ def _ec_key_curve_sn(backend: "Backend", ec_key) -> str:
return sn
-def _mark_asn1_named_ec_curve(backend: "Backend", ec_cdata):
+def _mark_asn1_named_ec_curve(backend: Backend, ec_cdata):
"""
Set the named curve flag on the EC_KEY. This causes OpenSSL to
serialize EC keys along with their curve OID which makes
@@ -72,7 +74,7 @@ def _mark_asn1_named_ec_curve(backend: "Backend", ec_cdata):
)
-def _check_key_infinity(backend: "Backend", ec_cdata) -> None:
+def _check_key_infinity(backend: Backend, ec_cdata) -> None:
point = backend._lib.EC_KEY_get0_public_key(ec_cdata)
backend.openssl_assert(point != backend._ffi.NULL)
group = backend._lib.EC_KEY_get0_group(ec_cdata)
@@ -83,7 +85,7 @@ def _check_key_infinity(backend: "Backend", ec_cdata) -> None:
)
-def _sn_to_elliptic_curve(backend: "Backend", sn: str) -> ec.EllipticCurve:
+def _sn_to_elliptic_curve(backend: Backend, sn: str) -> ec.EllipticCurve:
try:
return ec._CURVE_TYPES[sn]()
except KeyError:
@@ -94,7 +96,7 @@ def _sn_to_elliptic_curve(backend: "Backend", sn: str) -> ec.EllipticCurve:
def _ecdsa_sig_sign(
- backend: "Backend", private_key: "_EllipticCurvePrivateKey", data: bytes
+ backend: Backend, private_key: _EllipticCurvePrivateKey, data: bytes
) -> bytes:
max_size = backend._lib.ECDSA_size(private_key._ec_key)
backend.openssl_assert(max_size > 0)
@@ -109,8 +111,8 @@ def _ecdsa_sig_sign(
def _ecdsa_sig_verify(
- backend: "Backend",
- public_key: "_EllipticCurvePublicKey",
+ backend: Backend,
+ public_key: _EllipticCurvePublicKey,
signature: bytes,
data: bytes,
) -> None:
@@ -123,7 +125,7 @@ def _ecdsa_sig_verify(
class _EllipticCurvePrivateKey(ec.EllipticCurvePrivateKey):
- def __init__(self, backend: "Backend", ec_key_cdata, evp_pkey):
+ def __init__(self, backend: Backend, ec_key_cdata, evp_pkey):
self._backend = backend
self._ec_key = ec_key_cdata
self._evp_pkey = evp_pkey
@@ -215,7 +217,7 @@ class _EllipticCurvePrivateKey(ec.EllipticCurvePrivateKey):
class _EllipticCurvePublicKey(ec.EllipticCurvePublicKey):
- def __init__(self, backend: "Backend", ec_key_cdata, evp_pkey):
+ def __init__(self, backend: Backend, ec_key_cdata, evp_pkey):
self._backend = backend
self._ec_key = ec_key_cdata
self._evp_pkey = evp_pkey
diff --git a/src/cryptography/hazmat/backends/openssl/ed25519.py b/src/cryptography/hazmat/backends/openssl/ed25519.py
index 6f393e5b6..4e33a78f3 100644
--- a/src/cryptography/hazmat/backends/openssl/ed25519.py
+++ b/src/cryptography/hazmat/backends/openssl/ed25519.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import typing
from cryptography import exceptions
@@ -18,7 +20,7 @@ if typing.TYPE_CHECKING:
class _Ed25519PublicKey(Ed25519PublicKey):
- def __init__(self, backend: "Backend", evp_pkey):
+ def __init__(self, backend: Backend, evp_pkey):
self._backend = backend
self._evp_pkey = evp_pkey
@@ -78,7 +80,7 @@ class _Ed25519PublicKey(Ed25519PublicKey):
class _Ed25519PrivateKey(Ed25519PrivateKey):
- def __init__(self, backend: "Backend", evp_pkey):
+ def __init__(self, backend: Backend, evp_pkey):
self._backend = backend
self._evp_pkey = evp_pkey
diff --git a/src/cryptography/hazmat/backends/openssl/ed448.py b/src/cryptography/hazmat/backends/openssl/ed448.py
index 0d27ea638..b23003676 100644
--- a/src/cryptography/hazmat/backends/openssl/ed448.py
+++ b/src/cryptography/hazmat/backends/openssl/ed448.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import typing
from cryptography import exceptions
@@ -19,7 +21,7 @@ _ED448_SIG_SIZE = 114
class _Ed448PublicKey(Ed448PublicKey):
- def __init__(self, backend: "Backend", evp_pkey):
+ def __init__(self, backend: Backend, evp_pkey):
self._backend = backend
self._evp_pkey = evp_pkey
@@ -79,7 +81,7 @@ class _Ed448PublicKey(Ed448PublicKey):
class _Ed448PrivateKey(Ed448PrivateKey):
- def __init__(self, backend: "Backend", evp_pkey):
+ def __init__(self, backend: Backend, evp_pkey):
self._backend = backend
self._evp_pkey = evp_pkey
diff --git a/src/cryptography/hazmat/backends/openssl/hashes.py b/src/cryptography/hazmat/backends/openssl/hashes.py
index 52d4646a7..370407aac 100644
--- a/src/cryptography/hazmat/backends/openssl/hashes.py
+++ b/src/cryptography/hazmat/backends/openssl/hashes.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import typing
from cryptography.exceptions import UnsupportedAlgorithm, _Reasons
@@ -13,7 +15,7 @@ if typing.TYPE_CHECKING:
class _HashContext(hashes.HashContext):
def __init__(
- self, backend: "Backend", algorithm: hashes.HashAlgorithm, ctx=None
+ self, backend: Backend, algorithm: hashes.HashAlgorithm, ctx=None
) -> None:
self._algorithm = algorithm
@@ -43,7 +45,7 @@ class _HashContext(hashes.HashContext):
def algorithm(self) -> hashes.HashAlgorithm:
return self._algorithm
- def copy(self) -> "_HashContext":
+ def copy(self) -> _HashContext:
copied_ctx = self._backend._lib.EVP_MD_CTX_new()
copied_ctx = self._backend._ffi.gc(
copied_ctx, self._backend._lib.EVP_MD_CTX_free
diff --git a/src/cryptography/hazmat/backends/openssl/hmac.py b/src/cryptography/hazmat/backends/openssl/hmac.py
index ba3dfb53f..669f38070 100644
--- a/src/cryptography/hazmat/backends/openssl/hmac.py
+++ b/src/cryptography/hazmat/backends/openssl/hmac.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import typing
from cryptography.exceptions import (
@@ -18,7 +20,7 @@ if typing.TYPE_CHECKING:
class _HMACContext(hashes.HashContext):
def __init__(
self,
- backend: "Backend",
+ backend: Backend,
key: bytes,
algorithm: hashes.HashAlgorithm,
ctx=None,
@@ -51,7 +53,7 @@ class _HMACContext(hashes.HashContext):
def algorithm(self) -> hashes.HashAlgorithm:
return self._algorithm
- def copy(self) -> "_HMACContext":
+ def copy(self) -> _HMACContext:
copied_ctx = self._backend._lib.HMAC_CTX_new()
self._backend.openssl_assert(copied_ctx != self._backend._ffi.NULL)
copied_ctx = self._backend._ffi.gc(
diff --git a/src/cryptography/hazmat/backends/openssl/poly1305.py b/src/cryptography/hazmat/backends/openssl/poly1305.py
index d0d44f6fd..bb0c3738b 100644
--- a/src/cryptography/hazmat/backends/openssl/poly1305.py
+++ b/src/cryptography/hazmat/backends/openssl/poly1305.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import typing
from cryptography.exceptions import InvalidSignature
@@ -16,7 +18,7 @@ if typing.TYPE_CHECKING:
class _Poly1305Context:
- def __init__(self, backend: "Backend", key: bytes) -> None:
+ def __init__(self, backend: Backend, key: bytes) -> None:
self._backend = backend
key_ptr = self._backend._ffi.from_buffer(key)
diff --git a/src/cryptography/hazmat/backends/openssl/rsa.py b/src/cryptography/hazmat/backends/openssl/rsa.py
index c960105e7..f8ca3341a 100644
--- a/src/cryptography/hazmat/backends/openssl/rsa.py
+++ b/src/cryptography/hazmat/backends/openssl/rsa.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import threading
import typing
@@ -38,7 +40,7 @@ if typing.TYPE_CHECKING:
def _get_rsa_pss_salt_length(
- backend: "Backend",
+ backend: Backend,
pss: PSS,
key: typing.Union[RSAPrivateKey, RSAPublicKey],
hash_algorithm: hashes.HashAlgorithm,
@@ -60,8 +62,8 @@ def _get_rsa_pss_salt_length(
def _enc_dec_rsa(
- backend: "Backend",
- key: typing.Union["_RSAPrivateKey", "_RSAPublicKey"],
+ backend: Backend,
+ key: typing.Union[_RSAPrivateKey, _RSAPublicKey],
data: bytes,
padding: AsymmetricPadding,
) -> bytes:
@@ -96,8 +98,8 @@ def _enc_dec_rsa(
def _enc_dec_rsa_pkey_ctx(
- backend: "Backend",
- key: typing.Union["_RSAPrivateKey", "_RSAPublicKey"],
+ backend: Backend,
+ key: typing.Union[_RSAPrivateKey, _RSAPublicKey],
data: bytes,
padding_enum: int,
padding: AsymmetricPadding,
@@ -163,8 +165,8 @@ def _enc_dec_rsa_pkey_ctx(
def _rsa_sig_determine_padding(
- backend: "Backend",
- key: typing.Union["_RSAPrivateKey", "_RSAPublicKey"],
+ backend: Backend,
+ key: typing.Union[_RSAPrivateKey, _RSAPublicKey],
padding: AsymmetricPadding,
algorithm: typing.Optional[hashes.HashAlgorithm],
) -> int:
@@ -211,10 +213,10 @@ def _rsa_sig_determine_padding(
# padding type, where it means that the signature data is encoded/decoded
# as provided, without being wrapped in a DigestInfo structure.
def _rsa_sig_setup(
- backend: "Backend",
+ backend: Backend,
padding: AsymmetricPadding,
algorithm: typing.Optional[hashes.HashAlgorithm],
- key: typing.Union["_RSAPublicKey", "_RSAPrivateKey"],
+ key: typing.Union[_RSAPublicKey, _RSAPrivateKey],
init_func: typing.Callable[[typing.Any], int],
):
padding_enum = _rsa_sig_determine_padding(backend, key, padding, algorithm)
@@ -264,10 +266,10 @@ def _rsa_sig_setup(
def _rsa_sig_sign(
- backend: "Backend",
+ backend: Backend,
padding: AsymmetricPadding,
algorithm: hashes.HashAlgorithm,
- private_key: "_RSAPrivateKey",
+ private_key: _RSAPrivateKey,
data: bytes,
) -> bytes:
pkey_ctx = _rsa_sig_setup(
@@ -296,10 +298,10 @@ def _rsa_sig_sign(
def _rsa_sig_verify(
- backend: "Backend",
+ backend: Backend,
padding: AsymmetricPadding,
algorithm: hashes.HashAlgorithm,
- public_key: "_RSAPublicKey",
+ public_key: _RSAPublicKey,
signature: bytes,
data: bytes,
) -> None:
@@ -323,10 +325,10 @@ def _rsa_sig_verify(
def _rsa_sig_recover(
- backend: "Backend",
+ backend: Backend,
padding: AsymmetricPadding,
algorithm: typing.Optional[hashes.HashAlgorithm],
- public_key: "_RSAPublicKey",
+ public_key: _RSAPublicKey,
signature: bytes,
) -> bytes:
pkey_ctx = _rsa_sig_setup(
@@ -365,7 +367,7 @@ class _RSAPrivateKey(RSAPrivateKey):
def __init__(
self,
- backend: "Backend",
+ backend: Backend,
rsa_cdata,
evp_pkey,
*,
@@ -516,7 +518,7 @@ class _RSAPublicKey(RSAPublicKey):
_rsa_cdata: object
_key_size: int
- def __init__(self, backend: "Backend", rsa_cdata, evp_pkey):
+ def __init__(self, backend: Backend, rsa_cdata, evp_pkey):
self._backend = backend
self._rsa_cdata = rsa_cdata
self._evp_pkey = evp_pkey
diff --git a/src/cryptography/hazmat/backends/openssl/utils.py b/src/cryptography/hazmat/backends/openssl/utils.py
index 64b4a8334..5b404defd 100644
--- a/src/cryptography/hazmat/backends/openssl/utils.py
+++ b/src/cryptography/hazmat/backends/openssl/utils.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import typing
from cryptography.hazmat.primitives import hashes
@@ -11,7 +13,7 @@ if typing.TYPE_CHECKING:
from cryptography.hazmat.backends.openssl.backend import Backend
-def _evp_pkey_derive(backend: "Backend", evp_pkey, peer_public_key) -> bytes:
+def _evp_pkey_derive(backend: Backend, evp_pkey, peer_public_key) -> bytes:
ctx = backend._lib.EVP_PKEY_CTX_new(evp_pkey, backend._ffi.NULL)
backend.openssl_assert(ctx != backend._ffi.NULL)
ctx = backend._ffi.gc(ctx, backend._lib.EVP_PKEY_CTX_free)
diff --git a/src/cryptography/hazmat/backends/openssl/x448.py b/src/cryptography/hazmat/backends/openssl/x448.py
index d738188c7..5c91fba45 100644
--- a/src/cryptography/hazmat/backends/openssl/x448.py
+++ b/src/cryptography/hazmat/backends/openssl/x448.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import typing
from cryptography.hazmat.backends.openssl.utils import _evp_pkey_derive
@@ -18,7 +20,7 @@ _X448_KEY_SIZE = 56
class _X448PublicKey(X448PublicKey):
- def __init__(self, backend: "Backend", evp_pkey):
+ def __init__(self, backend: Backend, evp_pkey):
self._backend = backend
self._evp_pkey = evp_pkey
@@ -57,7 +59,7 @@ class _X448PublicKey(X448PublicKey):
class _X448PrivateKey(X448PrivateKey):
- def __init__(self, backend: "Backend", evp_pkey):
+ def __init__(self, backend: Backend, evp_pkey):
self._backend = backend
self._evp_pkey = evp_pkey
diff --git a/src/cryptography/hazmat/bindings/openssl/_conditional.py b/src/cryptography/hazmat/bindings/openssl/_conditional.py
index 35829a282..95d5297d5 100644
--- a/src/cryptography/hazmat/bindings/openssl/_conditional.py
+++ b/src/cryptography/hazmat/bindings/openssl/_conditional.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import typing
diff --git a/src/cryptography/hazmat/bindings/openssl/binding.py b/src/cryptography/hazmat/bindings/openssl/binding.py
index 99061e21b..b50d63151 100644
--- a/src/cryptography/hazmat/bindings/openssl/binding.py
+++ b/src/cryptography/hazmat/bindings/openssl/binding.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import os
import sys
import threading
diff --git a/src/cryptography/hazmat/primitives/_asymmetric.py b/src/cryptography/hazmat/primitives/_asymmetric.py
index fb815a0e9..ea55ffdf1 100644
--- a/src/cryptography/hazmat/primitives/_asymmetric.py
+++ b/src/cryptography/hazmat/primitives/_asymmetric.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import abc
# This exists to break an import cycle. It is normally accessible from the
diff --git a/src/cryptography/hazmat/primitives/_cipheralgorithm.py b/src/cryptography/hazmat/primitives/_cipheralgorithm.py
index b36dccfb3..3b880b648 100644
--- a/src/cryptography/hazmat/primitives/_cipheralgorithm.py
+++ b/src/cryptography/hazmat/primitives/_cipheralgorithm.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import abc
import typing
diff --git a/src/cryptography/hazmat/primitives/_serialization.py b/src/cryptography/hazmat/primitives/_serialization.py
index aa41f30d2..34f3fbc86 100644
--- a/src/cryptography/hazmat/primitives/_serialization.py
+++ b/src/cryptography/hazmat/primitives/_serialization.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import abc
import typing
@@ -33,7 +35,7 @@ class PrivateFormat(utils.Enum):
OpenSSH = "OpenSSH"
PKCS12 = "PKCS12"
- def encryption_builder(self) -> "KeySerializationEncryptionBuilder":
+ def encryption_builder(self) -> KeySerializationEncryptionBuilder:
if self not in (PrivateFormat.OpenSSH, PrivateFormat.PKCS12):
raise ValueError(
"encryption_builder only supported with PrivateFormat.OpenSSH"
@@ -86,7 +88,7 @@ class KeySerializationEncryptionBuilder:
self._hmac_hash = _hmac_hash
self._key_cert_algorithm = _key_cert_algorithm
- def kdf_rounds(self, rounds: int) -> "KeySerializationEncryptionBuilder":
+ def kdf_rounds(self, rounds: int) -> KeySerializationEncryptionBuilder:
if self._kdf_rounds is not None:
raise ValueError("kdf_rounds already set")
@@ -105,7 +107,7 @@ class KeySerializationEncryptionBuilder:
def hmac_hash(
self, algorithm: HashAlgorithm
- ) -> "KeySerializationEncryptionBuilder":
+ ) -> KeySerializationEncryptionBuilder:
if self._format is not PrivateFormat.PKCS12:
raise TypeError(
"hmac_hash only supported with PrivateFormat.PKCS12"
@@ -122,7 +124,7 @@ class KeySerializationEncryptionBuilder:
def key_cert_algorithm(
self, algorithm: PBES
- ) -> "KeySerializationEncryptionBuilder":
+ ) -> KeySerializationEncryptionBuilder:
if self._format is not PrivateFormat.PKCS12:
raise TypeError(
"key_cert_algorithm only supported with "
diff --git a/src/cryptography/hazmat/primitives/asymmetric/dh.py b/src/cryptography/hazmat/primitives/asymmetric/dh.py
index debf01e13..272cc5e54 100644
--- a/src/cryptography/hazmat/primitives/asymmetric/dh.py
+++ b/src/cryptography/hazmat/primitives/asymmetric/dh.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import abc
import typing
@@ -13,7 +14,7 @@ _MIN_MODULUS_SIZE = 512
def generate_parameters(
generator: int, key_size: int, backend: typing.Any = None
-) -> "DHParameters":
+) -> DHParameters:
from cryptography.hazmat.backends.openssl.backend import backend as ossl
return ossl.generate_dh_parameters(generator, key_size)
@@ -46,7 +47,7 @@ class DHParameterNumbers:
self._p == other._p and self._g == other._g and self._q == other._q
)
- def parameters(self, backend: typing.Any = None) -> "DHParameters":
+ def parameters(self, backend: typing.Any = None) -> DHParameters:
from cryptography.hazmat.backends.openssl.backend import (
backend as ossl,
)
@@ -88,7 +89,7 @@ class DHPublicNumbers:
and self._parameter_numbers == other._parameter_numbers
)
- def public_key(self, backend: typing.Any = None) -> "DHPublicKey":
+ def public_key(self, backend: typing.Any = None) -> DHPublicKey:
from cryptography.hazmat.backends.openssl.backend import (
backend as ossl,
)
@@ -126,7 +127,7 @@ class DHPrivateNumbers:
and self._public_numbers == other._public_numbers
)
- def private_key(self, backend: typing.Any = None) -> "DHPrivateKey":
+ def private_key(self, backend: typing.Any = None) -> DHPrivateKey:
from cryptography.hazmat.backends.openssl.backend import (
backend as ossl,
)
@@ -144,7 +145,7 @@ class DHPrivateNumbers:
class DHParameters(metaclass=abc.ABCMeta):
@abc.abstractmethod
- def generate_private_key(self) -> "DHPrivateKey":
+ def generate_private_key(self) -> DHPrivateKey:
"""
Generates and returns a DHPrivateKey.
"""
diff --git a/src/cryptography/hazmat/primitives/asymmetric/dsa.py b/src/cryptography/hazmat/primitives/asymmetric/dsa.py
index 6103d8093..e846d3e83 100644
--- a/src/cryptography/hazmat/primitives/asymmetric/dsa.py
+++ b/src/cryptography/hazmat/primitives/asymmetric/dsa.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import abc
import typing
@@ -12,13 +13,13 @@ from cryptography.hazmat.primitives.asymmetric import utils as asym_utils
class DSAParameters(metaclass=abc.ABCMeta):
@abc.abstractmethod
- def generate_private_key(self) -> "DSAPrivateKey":
+ def generate_private_key(self) -> DSAPrivateKey:
"""
Generates and returns a DSAPrivateKey.
"""
@abc.abstractmethod
- def parameter_numbers(self) -> "DSAParameterNumbers":
+ def parameter_numbers(self) -> DSAParameterNumbers:
"""
Returns a DSAParameterNumbers.
"""
@@ -36,7 +37,7 @@ class DSAPrivateKey(metaclass=abc.ABCMeta):
"""
@abc.abstractmethod
- def public_key(self) -> "DSAPublicKey":
+ def public_key(self) -> DSAPublicKey:
"""
The DSAPublicKey associated with this private key.
"""
@@ -58,7 +59,7 @@ class DSAPrivateKey(metaclass=abc.ABCMeta):
"""
@abc.abstractmethod
- def private_numbers(self) -> "DSAPrivateNumbers":
+ def private_numbers(self) -> DSAPrivateNumbers:
"""
Returns a DSAPrivateNumbers.
"""
@@ -93,7 +94,7 @@ class DSAPublicKey(metaclass=abc.ABCMeta):
"""
@abc.abstractmethod
- def public_numbers(self) -> "DSAPublicNumbers":
+ def public_numbers(self) -> DSAPublicNumbers:
"""
Returns a DSAPublicNumbers.
"""
diff --git a/src/cryptography/hazmat/primitives/asymmetric/ec.py b/src/cryptography/hazmat/primitives/asymmetric/ec.py
index c5df2c27a..2e3b0108b 100644
--- a/src/cryptography/hazmat/primitives/asymmetric/ec.py
+++ b/src/cryptography/hazmat/primitives/asymmetric/ec.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import abc
import typing
@@ -64,7 +65,7 @@ class EllipticCurveSignatureAlgorithm(metaclass=abc.ABCMeta):
class EllipticCurvePrivateKey(metaclass=abc.ABCMeta):
@abc.abstractmethod
def exchange(
- self, algorithm: "ECDH", peer_public_key: "EllipticCurvePublicKey"
+ self, algorithm: ECDH, peer_public_key: EllipticCurvePublicKey
) -> bytes:
"""
Performs a key exchange operation using the provided algorithm with the
@@ -72,7 +73,7 @@ class EllipticCurvePrivateKey(metaclass=abc.ABCMeta):
"""
@abc.abstractmethod
- def public_key(self) -> "EllipticCurvePublicKey":
+ def public_key(self) -> EllipticCurvePublicKey:
"""
The EllipticCurvePublicKey for this private key.
"""
@@ -102,7 +103,7 @@ class EllipticCurvePrivateKey(metaclass=abc.ABCMeta):
"""
@abc.abstractmethod
- def private_numbers(self) -> "EllipticCurvePrivateNumbers":
+ def private_numbers(self) -> EllipticCurvePrivateNumbers:
"""
Returns an EllipticCurvePrivateNumbers.
"""
@@ -138,7 +139,7 @@ class EllipticCurvePublicKey(metaclass=abc.ABCMeta):
"""
@abc.abstractmethod
- def public_numbers(self) -> "EllipticCurvePublicNumbers":
+ def public_numbers(self) -> EllipticCurvePublicNumbers:
"""
Returns an EllipticCurvePublicNumbers.
"""
@@ -167,7 +168,7 @@ class EllipticCurvePublicKey(metaclass=abc.ABCMeta):
@classmethod
def from_encoded_point(
cls, curve: EllipticCurve, data: bytes
- ) -> "EllipticCurvePublicKey":
+ ) -> EllipticCurvePublicKey:
utils._check_bytes("data", data)
if not isinstance(curve, EllipticCurve):
diff --git a/src/cryptography/hazmat/primitives/asymmetric/ed25519.py b/src/cryptography/hazmat/primitives/asymmetric/ed25519.py
index df34159ec..83aa9d310 100644
--- a/src/cryptography/hazmat/primitives/asymmetric/ed25519.py
+++ b/src/cryptography/hazmat/primitives/asymmetric/ed25519.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import abc
@@ -14,7 +15,7 @@ _ED25519_SIG_SIZE = 64
class Ed25519PublicKey(metaclass=abc.ABCMeta):
@classmethod
- def from_public_bytes(cls, data: bytes) -> "Ed25519PublicKey":
+ def from_public_bytes(cls, data: bytes) -> Ed25519PublicKey:
from cryptography.hazmat.backends.openssl.backend import backend
if not backend.ed25519_supported():
@@ -53,7 +54,7 @@ class Ed25519PublicKey(metaclass=abc.ABCMeta):
class Ed25519PrivateKey(metaclass=abc.ABCMeta):
@classmethod
- def generate(cls) -> "Ed25519PrivateKey":
+ def generate(cls) -> Ed25519PrivateKey:
from cryptography.hazmat.backends.openssl.backend import backend
if not backend.ed25519_supported():
@@ -65,7 +66,7 @@ class Ed25519PrivateKey(metaclass=abc.ABCMeta):
return backend.ed25519_generate_key()
@classmethod
- def from_private_bytes(cls, data: bytes) -> "Ed25519PrivateKey":
+ def from_private_bytes(cls, data: bytes) -> Ed25519PrivateKey:
from cryptography.hazmat.backends.openssl.backend import backend
if not backend.ed25519_supported():
diff --git a/src/cryptography/hazmat/primitives/asymmetric/ed448.py b/src/cryptography/hazmat/primitives/asymmetric/ed448.py
index 8b0ac1fd8..c2a64796c 100644
--- a/src/cryptography/hazmat/primitives/asymmetric/ed448.py
+++ b/src/cryptography/hazmat/primitives/asymmetric/ed448.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import abc
@@ -11,7 +12,7 @@ from cryptography.hazmat.primitives import _serialization
class Ed448PublicKey(metaclass=abc.ABCMeta):
@classmethod
- def from_public_bytes(cls, data: bytes) -> "Ed448PublicKey":
+ def from_public_bytes(cls, data: bytes) -> Ed448PublicKey:
from cryptography.hazmat.backends.openssl.backend import backend
if not backend.ed448_supported():
@@ -50,7 +51,7 @@ class Ed448PublicKey(metaclass=abc.ABCMeta):
class Ed448PrivateKey(metaclass=abc.ABCMeta):
@classmethod
- def generate(cls) -> "Ed448PrivateKey":
+ def generate(cls) -> Ed448PrivateKey:
from cryptography.hazmat.backends.openssl.backend import backend
if not backend.ed448_supported():
@@ -61,7 +62,7 @@ class Ed448PrivateKey(metaclass=abc.ABCMeta):
return backend.ed448_generate_key()
@classmethod
- def from_private_bytes(cls, data: bytes) -> "Ed448PrivateKey":
+ def from_private_bytes(cls, data: bytes) -> Ed448PrivateKey:
from cryptography.hazmat.backends.openssl.backend import backend
if not backend.ed448_supported():
diff --git a/src/cryptography/hazmat/primitives/asymmetric/padding.py b/src/cryptography/hazmat/primitives/asymmetric/padding.py
index dd3c648f1..7198808ef 100644
--- a/src/cryptography/hazmat/primitives/asymmetric/padding.py
+++ b/src/cryptography/hazmat/primitives/asymmetric/padding.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import abc
import typing
@@ -38,7 +39,7 @@ class PSS(AsymmetricPadding):
def __init__(
self,
- mgf: "MGF",
+ mgf: MGF,
salt_length: typing.Union[int, _MaxLength, _Auto, _DigestLength],
) -> None:
self._mgf = mgf
@@ -62,7 +63,7 @@ class OAEP(AsymmetricPadding):
def __init__(
self,
- mgf: "MGF",
+ mgf: MGF,
algorithm: hashes.HashAlgorithm,
label: typing.Optional[bytes],
):
@@ -89,7 +90,7 @@ class MGF1(MGF):
def calculate_max_pss_salt_length(
- key: typing.Union["rsa.RSAPrivateKey", "rsa.RSAPublicKey"],
+ key: typing.Union[rsa.RSAPrivateKey, rsa.RSAPublicKey],
hash_algorithm: hashes.HashAlgorithm,
) -> int:
if not isinstance(key, (rsa.RSAPrivateKey, rsa.RSAPublicKey)):
diff --git a/src/cryptography/hazmat/primitives/asymmetric/rsa.py b/src/cryptography/hazmat/primitives/asymmetric/rsa.py
index 81f5a0ec6..c83f7fc88 100644
--- a/src/cryptography/hazmat/primitives/asymmetric/rsa.py
+++ b/src/cryptography/hazmat/primitives/asymmetric/rsa.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import abc
import typing
@@ -27,7 +28,7 @@ class RSAPrivateKey(metaclass=abc.ABCMeta):
"""
@abc.abstractmethod
- def public_key(self) -> "RSAPublicKey":
+ def public_key(self) -> RSAPublicKey:
"""
The RSAPublicKey associated with this private key.
"""
@@ -44,7 +45,7 @@ class RSAPrivateKey(metaclass=abc.ABCMeta):
"""
@abc.abstractmethod
- def private_numbers(self) -> "RSAPrivateNumbers":
+ def private_numbers(self) -> RSAPrivateNumbers:
"""
Returns an RSAPrivateNumbers.
"""
@@ -79,7 +80,7 @@ class RSAPublicKey(metaclass=abc.ABCMeta):
"""
@abc.abstractmethod
- def public_numbers(self) -> "RSAPublicNumbers":
+ def public_numbers(self) -> RSAPublicNumbers:
"""
Returns an RSAPublicNumbers
"""
@@ -297,7 +298,7 @@ class RSAPrivateNumbers:
dmp1: int,
dmq1: int,
iqmp: int,
- public_numbers: "RSAPublicNumbers",
+ public_numbers: RSAPublicNumbers,
):
if (
not isinstance(p, int)
@@ -351,7 +352,7 @@ class RSAPrivateNumbers:
return self._iqmp
@property
- def public_numbers(self) -> "RSAPublicNumbers":
+ def public_numbers(self) -> RSAPublicNumbers:
return self._public_numbers
def private_key(
diff --git a/src/cryptography/hazmat/primitives/asymmetric/types.py b/src/cryptography/hazmat/primitives/asymmetric/types.py
index e911a9f60..1fe4eaf51 100644
--- a/src/cryptography/hazmat/primitives/asymmetric/types.py
+++ b/src/cryptography/hazmat/primitives/asymmetric/types.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import typing
from cryptography import utils
diff --git a/src/cryptography/hazmat/primitives/asymmetric/utils.py b/src/cryptography/hazmat/primitives/asymmetric/utils.py
index 140ca1960..826b9567b 100644
--- a/src/cryptography/hazmat/primitives/asymmetric/utils.py
+++ b/src/cryptography/hazmat/primitives/asymmetric/utils.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
from cryptography.hazmat.bindings._rust import asn1
from cryptography.hazmat.primitives import hashes
diff --git a/src/cryptography/hazmat/primitives/asymmetric/x25519.py b/src/cryptography/hazmat/primitives/asymmetric/x25519.py
index fb21fe174..545575150 100644
--- a/src/cryptography/hazmat/primitives/asymmetric/x25519.py
+++ b/src/cryptography/hazmat/primitives/asymmetric/x25519.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import abc
@@ -12,7 +13,7 @@ from cryptography.hazmat.primitives import _serialization
class X25519PublicKey(metaclass=abc.ABCMeta):
@classmethod
- def from_public_bytes(cls, data: bytes) -> "X25519PublicKey":
+ def from_public_bytes(cls, data: bytes) -> X25519PublicKey:
from cryptography.hazmat.backends.openssl.backend import backend
if not backend.x25519_supported():
@@ -48,7 +49,7 @@ if hasattr(rust_openssl, "x25519"):
class X25519PrivateKey(metaclass=abc.ABCMeta):
@classmethod
- def generate(cls) -> "X25519PrivateKey":
+ def generate(cls) -> X25519PrivateKey:
from cryptography.hazmat.backends.openssl.backend import backend
if not backend.x25519_supported():
@@ -59,7 +60,7 @@ class X25519PrivateKey(metaclass=abc.ABCMeta):
return backend.x25519_generate_key()
@classmethod
- def from_private_bytes(cls, data: bytes) -> "X25519PrivateKey":
+ def from_private_bytes(cls, data: bytes) -> X25519PrivateKey:
from cryptography.hazmat.backends.openssl.backend import backend
if not backend.x25519_supported():
diff --git a/src/cryptography/hazmat/primitives/asymmetric/x448.py b/src/cryptography/hazmat/primitives/asymmetric/x448.py
index dcab0445a..25ff4c6ec 100644
--- a/src/cryptography/hazmat/primitives/asymmetric/x448.py
+++ b/src/cryptography/hazmat/primitives/asymmetric/x448.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import abc
@@ -11,7 +12,7 @@ from cryptography.hazmat.primitives import _serialization
class X448PublicKey(metaclass=abc.ABCMeta):
@classmethod
- def from_public_bytes(cls, data: bytes) -> "X448PublicKey":
+ def from_public_bytes(cls, data: bytes) -> X448PublicKey:
from cryptography.hazmat.backends.openssl.backend import backend
if not backend.x448_supported():
@@ -44,7 +45,7 @@ class X448PublicKey(metaclass=abc.ABCMeta):
class X448PrivateKey(metaclass=abc.ABCMeta):
@classmethod
- def generate(cls) -> "X448PrivateKey":
+ def generate(cls) -> X448PrivateKey:
from cryptography.hazmat.backends.openssl.backend import backend
if not backend.x448_supported():
@@ -55,7 +56,7 @@ class X448PrivateKey(metaclass=abc.ABCMeta):
return backend.x448_generate_key()
@classmethod
- def from_private_bytes(cls, data: bytes) -> "X448PrivateKey":
+ def from_private_bytes(cls, data: bytes) -> X448PrivateKey:
from cryptography.hazmat.backends.openssl.backend import backend
if not backend.x448_supported():
diff --git a/src/cryptography/hazmat/primitives/ciphers/__init__.py b/src/cryptography/hazmat/primitives/ciphers/__init__.py
index 95f02842a..cc88fbf2c 100644
--- a/src/cryptography/hazmat/primitives/ciphers/__init__.py
+++ b/src/cryptography/hazmat/primitives/ciphers/__init__.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
from cryptography.hazmat.primitives._cipheralgorithm import (
BlockCipherAlgorithm,
diff --git a/src/cryptography/hazmat/primitives/ciphers/aead.py b/src/cryptography/hazmat/primitives/ciphers/aead.py
index f2e206bbf..957b2d221 100644
--- a/src/cryptography/hazmat/primitives/ciphers/aead.py
+++ b/src/cryptography/hazmat/primitives/ciphers/aead.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import os
import typing
diff --git a/src/cryptography/hazmat/primitives/ciphers/algorithms.py b/src/cryptography/hazmat/primitives/ciphers/algorithms.py
index 4357c17ac..4bfc5d840 100644
--- a/src/cryptography/hazmat/primitives/ciphers/algorithms.py
+++ b/src/cryptography/hazmat/primitives/ciphers/algorithms.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
from cryptography import utils
from cryptography.hazmat.primitives.ciphers import (
diff --git a/src/cryptography/hazmat/primitives/ciphers/base.py b/src/cryptography/hazmat/primitives/ciphers/base.py
index d80ef3f15..38a2ebbe0 100644
--- a/src/cryptography/hazmat/primitives/ciphers/base.py
+++ b/src/cryptography/hazmat/primitives/ciphers/base.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import abc
import typing
@@ -95,13 +96,13 @@ class Cipher(typing.Generic[Mode]):
@typing.overload
def encryptor(
- self: "Cipher[modes.ModeWithAuthenticationTag]",
+ self: Cipher[modes.ModeWithAuthenticationTag],
) -> AEADEncryptionContext:
...
@typing.overload
def encryptor(
- self: "_CIPHER_TYPE",
+ self: _CIPHER_TYPE,
) -> CipherContext:
...
@@ -120,13 +121,13 @@ class Cipher(typing.Generic[Mode]):
@typing.overload
def decryptor(
- self: "Cipher[modes.ModeWithAuthenticationTag]",
+ self: Cipher[modes.ModeWithAuthenticationTag],
) -> AEADDecryptionContext:
...
@typing.overload
def decryptor(
- self: "_CIPHER_TYPE",
+ self: _CIPHER_TYPE,
) -> CipherContext:
...
@@ -139,7 +140,7 @@ class Cipher(typing.Generic[Mode]):
return self._wrap_ctx(ctx, encrypt=False)
def _wrap_ctx(
- self, ctx: "_BackendCipherContext", encrypt: bool
+ self, ctx: _BackendCipherContext, encrypt: bool
) -> typing.Union[
AEADEncryptionContext, AEADDecryptionContext, CipherContext
]:
@@ -164,9 +165,9 @@ _CIPHER_TYPE = Cipher[
class _CipherContext(CipherContext):
- _ctx: typing.Optional["_BackendCipherContext"]
+ _ctx: typing.Optional[_BackendCipherContext]
- def __init__(self, ctx: "_BackendCipherContext") -> None:
+ def __init__(self, ctx: _BackendCipherContext) -> None:
self._ctx = ctx
def update(self, data: bytes) -> bytes:
@@ -188,10 +189,10 @@ class _CipherContext(CipherContext):
class _AEADCipherContext(AEADCipherContext):
- _ctx: typing.Optional["_BackendCipherContext"]
+ _ctx: typing.Optional[_BackendCipherContext]
_tag: typing.Optional[bytes]
- def __init__(self, ctx: "_BackendCipherContext") -> None:
+ def __init__(self, ctx: _BackendCipherContext) -> None:
self._ctx = ctx
self._bytes_processed = 0
self._aad_bytes_processed = 0
diff --git a/src/cryptography/hazmat/primitives/ciphers/modes.py b/src/cryptography/hazmat/primitives/ciphers/modes.py
index 1fba397fe..d8ea1888d 100644
--- a/src/cryptography/hazmat/primitives/ciphers/modes.py
+++ b/src/cryptography/hazmat/primitives/ciphers/modes.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import abc
import typing
diff --git a/src/cryptography/hazmat/primitives/cmac.py b/src/cryptography/hazmat/primitives/cmac.py
index 00c4bd11d..8aa1d791a 100644
--- a/src/cryptography/hazmat/primitives/cmac.py
+++ b/src/cryptography/hazmat/primitives/cmac.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import typing
@@ -14,14 +15,14 @@ if typing.TYPE_CHECKING:
class CMAC:
- _ctx: typing.Optional["_CMACContext"]
+ _ctx: typing.Optional[_CMACContext]
_algorithm: ciphers.BlockCipherAlgorithm
def __init__(
self,
algorithm: ciphers.BlockCipherAlgorithm,
backend: typing.Any = None,
- ctx: typing.Optional["_CMACContext"] = None,
+ ctx: typing.Optional[_CMACContext] = None,
) -> None:
if not isinstance(algorithm, ciphers.BlockCipherAlgorithm):
raise TypeError("Expected instance of BlockCipherAlgorithm.")
@@ -58,7 +59,7 @@ class CMAC:
ctx, self._ctx = self._ctx, None
ctx.verify(signature)
- def copy(self) -> "CMAC":
+ def copy(self) -> CMAC:
if self._ctx is None:
raise AlreadyFinalized("Context was already finalized.")
return CMAC(self._algorithm, ctx=self._ctx.copy())
diff --git a/src/cryptography/hazmat/primitives/constant_time.py b/src/cryptography/hazmat/primitives/constant_time.py
index a02fa9c45..3975c7147 100644
--- a/src/cryptography/hazmat/primitives/constant_time.py
+++ b/src/cryptography/hazmat/primitives/constant_time.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import hmac
diff --git a/src/cryptography/hazmat/primitives/hashes.py b/src/cryptography/hazmat/primitives/hashes.py
index 6bbab4c0b..c4b7d1060 100644
--- a/src/cryptography/hazmat/primitives/hashes.py
+++ b/src/cryptography/hazmat/primitives/hashes.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import abc
import typing
@@ -54,7 +56,7 @@ class HashContext(metaclass=abc.ABCMeta):
"""
@abc.abstractmethod
- def copy(self) -> "HashContext":
+ def copy(self) -> HashContext:
"""
Return a HashContext that is a copy of the current context.
"""
@@ -73,7 +75,7 @@ class Hash(HashContext):
self,
algorithm: HashAlgorithm,
backend: typing.Any = None,
- ctx: typing.Optional["HashContext"] = None,
+ ctx: typing.Optional[HashContext] = None,
) -> None:
if not isinstance(algorithm, HashAlgorithm):
raise TypeError("Expected instance of hashes.HashAlgorithm.")
@@ -98,7 +100,7 @@ class Hash(HashContext):
utils._check_byteslike("data", data)
self._ctx.update(data)
- def copy(self) -> "Hash":
+ def copy(self) -> Hash:
if self._ctx is None:
raise AlreadyFinalized("Context was already finalized.")
return Hash(self.algorithm, ctx=self._ctx.copy())
diff --git a/src/cryptography/hazmat/primitives/hmac.py b/src/cryptography/hazmat/primitives/hmac.py
index 8f1c0eae6..6627f5749 100644
--- a/src/cryptography/hazmat/primitives/hmac.py
+++ b/src/cryptography/hazmat/primitives/hmac.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import typing
@@ -45,7 +46,7 @@ class HMAC(hashes.HashContext):
utils._check_byteslike("data", data)
self._ctx.update(data)
- def copy(self) -> "HMAC":
+ def copy(self) -> HMAC:
if self._ctx is None:
raise AlreadyFinalized("Context was already finalized.")
return HMAC(
diff --git a/src/cryptography/hazmat/primitives/kdf/__init__.py b/src/cryptography/hazmat/primitives/kdf/__init__.py
index 38e2f8bc4..79bb459f0 100644
--- a/src/cryptography/hazmat/primitives/kdf/__init__.py
+++ b/src/cryptography/hazmat/primitives/kdf/__init__.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import abc
diff --git a/src/cryptography/hazmat/primitives/kdf/concatkdf.py b/src/cryptography/hazmat/primitives/kdf/concatkdf.py
index 7bbce4ffc..d5ea58a94 100644
--- a/src/cryptography/hazmat/primitives/kdf/concatkdf.py
+++ b/src/cryptography/hazmat/primitives/kdf/concatkdf.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import typing
diff --git a/src/cryptography/hazmat/primitives/kdf/hkdf.py b/src/cryptography/hazmat/primitives/kdf/hkdf.py
index 7d59a7ef7..d47689443 100644
--- a/src/cryptography/hazmat/primitives/kdf/hkdf.py
+++ b/src/cryptography/hazmat/primitives/kdf/hkdf.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import typing
diff --git a/src/cryptography/hazmat/primitives/kdf/kbkdf.py b/src/cryptography/hazmat/primitives/kdf/kbkdf.py
index 7f185a9af..967763828 100644
--- a/src/cryptography/hazmat/primitives/kdf/kbkdf.py
+++ b/src/cryptography/hazmat/primitives/kdf/kbkdf.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import typing
from cryptography import utils
diff --git a/src/cryptography/hazmat/primitives/kdf/pbkdf2.py b/src/cryptography/hazmat/primitives/kdf/pbkdf2.py
index 8d23f8c25..2caa50e80 100644
--- a/src/cryptography/hazmat/primitives/kdf/pbkdf2.py
+++ b/src/cryptography/hazmat/primitives/kdf/pbkdf2.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import typing
diff --git a/src/cryptography/hazmat/primitives/kdf/scrypt.py b/src/cryptography/hazmat/primitives/kdf/scrypt.py
index 286f4388c..6443832aa 100644
--- a/src/cryptography/hazmat/primitives/kdf/scrypt.py
+++ b/src/cryptography/hazmat/primitives/kdf/scrypt.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import sys
import typing
diff --git a/src/cryptography/hazmat/primitives/kdf/x963kdf.py b/src/cryptography/hazmat/primitives/kdf/x963kdf.py
index 4ab64d08b..17acc5174 100644
--- a/src/cryptography/hazmat/primitives/kdf/x963kdf.py
+++ b/src/cryptography/hazmat/primitives/kdf/x963kdf.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import typing
diff --git a/src/cryptography/hazmat/primitives/keywrap.py b/src/cryptography/hazmat/primitives/keywrap.py
index 64771ca3c..59b0326c2 100644
--- a/src/cryptography/hazmat/primitives/keywrap.py
+++ b/src/cryptography/hazmat/primitives/keywrap.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import typing
diff --git a/src/cryptography/hazmat/primitives/padding.py b/src/cryptography/hazmat/primitives/padding.py
index d6c1d9152..fde3094b0 100644
--- a/src/cryptography/hazmat/primitives/padding.py
+++ b/src/cryptography/hazmat/primitives/padding.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import abc
import typing
diff --git a/src/cryptography/hazmat/primitives/poly1305.py b/src/cryptography/hazmat/primitives/poly1305.py
index 7fcf4a50f..77df07f02 100644
--- a/src/cryptography/hazmat/primitives/poly1305.py
+++ b/src/cryptography/hazmat/primitives/poly1305.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import typing
from cryptography import utils
diff --git a/src/cryptography/hazmat/primitives/serialization/__init__.py b/src/cryptography/hazmat/primitives/serialization/__init__.py
index 213c49958..b6c9a5cdc 100644
--- a/src/cryptography/hazmat/primitives/serialization/__init__.py
+++ b/src/cryptography/hazmat/primitives/serialization/__init__.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
from cryptography.hazmat.primitives._serialization import (
BestAvailableEncryption,
diff --git a/src/cryptography/hazmat/primitives/serialization/base.py b/src/cryptography/hazmat/primitives/serialization/base.py
index 7956ce0fe..18a96ccfd 100644
--- a/src/cryptography/hazmat/primitives/serialization/base.py
+++ b/src/cryptography/hazmat/primitives/serialization/base.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import typing
@@ -36,7 +37,7 @@ def load_pem_public_key(
def load_pem_parameters(
data: bytes, backend: typing.Any = None
-) -> "dh.DHParameters":
+) -> dh.DHParameters:
from cryptography.hazmat.backends.openssl.backend import backend as ossl
return ossl.load_pem_parameters(data)
@@ -66,7 +67,7 @@ def load_der_public_key(
def load_der_parameters(
data: bytes, backend: typing.Any = None
-) -> "dh.DHParameters":
+) -> dh.DHParameters:
from cryptography.hazmat.backends.openssl.backend import backend as ossl
return ossl.load_der_parameters(data)
diff --git a/src/cryptography/hazmat/primitives/serialization/pkcs12.py b/src/cryptography/hazmat/primitives/serialization/pkcs12.py
index 1d36146a9..27133a3fa 100644
--- a/src/cryptography/hazmat/primitives/serialization/pkcs12.py
+++ b/src/cryptography/hazmat/primitives/serialization/pkcs12.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import typing
from cryptography import x509
diff --git a/src/cryptography/hazmat/primitives/serialization/pkcs7.py b/src/cryptography/hazmat/primitives/serialization/pkcs7.py
index 0a72e0df8..9998bcaa1 100644
--- a/src/cryptography/hazmat/primitives/serialization/pkcs7.py
+++ b/src/cryptography/hazmat/primitives/serialization/pkcs7.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import email.base64mime
import email.generator
import email.message
@@ -73,7 +75,7 @@ class PKCS7SignatureBuilder:
self._signers = signers
self._additional_certs = additional_certs
- def set_data(self, data: bytes) -> "PKCS7SignatureBuilder":
+ def set_data(self, data: bytes) -> PKCS7SignatureBuilder:
_check_byteslike("data", data)
if self._data is not None:
raise ValueError("data may only be set once")
@@ -85,7 +87,7 @@ class PKCS7SignatureBuilder:
certificate: x509.Certificate,
private_key: PKCS7PrivateKeyTypes,
hash_algorithm: PKCS7HashTypes,
- ) -> "PKCS7SignatureBuilder":
+ ) -> PKCS7SignatureBuilder:
if not isinstance(
hash_algorithm,
(
@@ -114,7 +116,7 @@ class PKCS7SignatureBuilder:
def add_certificate(
self, certificate: x509.Certificate
- ) -> "PKCS7SignatureBuilder":
+ ) -> PKCS7SignatureBuilder:
if not isinstance(certificate, x509.Certificate):
raise TypeError("certificate must be a x509.Certificate")
diff --git a/src/cryptography/hazmat/primitives/serialization/ssh.py b/src/cryptography/hazmat/primitives/serialization/ssh.py
index fa278d9ed..902618451 100644
--- a/src/cryptography/hazmat/primitives/serialization/ssh.py
+++ b/src/cryptography/hazmat/primitives/serialization/ssh.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import binascii
import enum
@@ -100,7 +101,7 @@ _ECDSA_KEY_TYPE = {
def _get_ssh_key_type(
- key: typing.Union["SSHPrivateKeyTypes", "SSHPublicKeyTypes"]
+ key: typing.Union[SSHPrivateKeyTypes, SSHPublicKeyTypes]
) -> bytes:
if isinstance(key, ec.EllipticCurvePrivateKey):
key_type = _ecdsa_key_type(key.public_key())
@@ -229,7 +230,7 @@ class _FragList:
"""Big-endian uint64"""
self.flist.append(val.to_bytes(length=8, byteorder="big"))
- def put_sshstr(self, val: typing.Union[bytes, "_FragList"]) -> None:
+ def put_sshstr(self, val: typing.Union[bytes, _FragList]) -> None:
"""Bytes prefixed with u32 length"""
if isinstance(val, (bytes, memoryview, bytearray)):
self.put_u32(len(val))
@@ -1084,7 +1085,7 @@ class SSHCertificateBuilder:
def public_key(
self, public_key: SSHCertPublicKeyTypes
- ) -> "SSHCertificateBuilder":
+ ) -> SSHCertificateBuilder:
if not isinstance(
public_key,
(
@@ -1110,7 +1111,7 @@ class SSHCertificateBuilder:
_extensions=self._extensions,
)
- def serial(self, serial: int) -> "SSHCertificateBuilder":
+ def serial(self, serial: int) -> SSHCertificateBuilder:
if not isinstance(serial, int):
raise TypeError("serial must be an integer")
if not 0 <= serial < 2**64:
@@ -1131,7 +1132,7 @@ class SSHCertificateBuilder:
_extensions=self._extensions,
)
- def type(self, type: SSHCertificateType) -> "SSHCertificateBuilder":
+ def type(self, type: SSHCertificateType) -> SSHCertificateBuilder:
if not isinstance(type, SSHCertificateType):
raise TypeError("type must be an SSHCertificateType")
if self._type is not None:
@@ -1150,7 +1151,7 @@ class SSHCertificateBuilder:
_extensions=self._extensions,
)
- def key_id(self, key_id: bytes) -> "SSHCertificateBuilder":
+ def key_id(self, key_id: bytes) -> SSHCertificateBuilder:
if not isinstance(key_id, bytes):
raise TypeError("key_id must be bytes")
if self._key_id is not None:
@@ -1171,7 +1172,7 @@ class SSHCertificateBuilder:
def valid_principals(
self, valid_principals: typing.List[bytes]
- ) -> "SSHCertificateBuilder":
+ ) -> SSHCertificateBuilder:
if self._valid_for_all_principals:
raise ValueError(
"Principals can't be set because the cert is valid "
@@ -1229,7 +1230,7 @@ class SSHCertificateBuilder:
def valid_before(
self, valid_before: typing.Union[int, float]
- ) -> "SSHCertificateBuilder":
+ ) -> SSHCertificateBuilder:
if not isinstance(valid_before, (int, float)):
raise TypeError("valid_before must be an int or float")
valid_before = int(valid_before)
@@ -1253,7 +1254,7 @@ class SSHCertificateBuilder:
def valid_after(
self, valid_after: typing.Union[int, float]
- ) -> "SSHCertificateBuilder":
+ ) -> SSHCertificateBuilder:
if not isinstance(valid_after, (int, float)):
raise TypeError("valid_after must be an int or float")
valid_after = int(valid_after)
@@ -1277,7 +1278,7 @@ class SSHCertificateBuilder:
def add_critical_option(
self, name: bytes, value: bytes
- ) -> "SSHCertificateBuilder":
+ ) -> SSHCertificateBuilder:
if not isinstance(name, bytes) or not isinstance(value, bytes):
raise TypeError("name and value must be bytes")
# This is O(n**2)
@@ -1299,7 +1300,7 @@ class SSHCertificateBuilder:
def add_extension(
self, name: bytes, value: bytes
- ) -> "SSHCertificateBuilder":
+ ) -> SSHCertificateBuilder:
if not isinstance(name, bytes) or not isinstance(value, bytes):
raise TypeError("name and value must be bytes")
# This is O(n**2)
diff --git a/src/cryptography/hazmat/primitives/twofactor/__init__.py b/src/cryptography/hazmat/primitives/twofactor/__init__.py
index 8a8b30f2a..c1af42300 100644
--- a/src/cryptography/hazmat/primitives/twofactor/__init__.py
+++ b/src/cryptography/hazmat/primitives/twofactor/__init__.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
class InvalidToken(Exception):
pass
diff --git a/src/cryptography/hazmat/primitives/twofactor/hotp.py b/src/cryptography/hazmat/primitives/twofactor/hotp.py
index 260822214..2067108a6 100644
--- a/src/cryptography/hazmat/primitives/twofactor/hotp.py
+++ b/src/cryptography/hazmat/primitives/twofactor/hotp.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import base64
import typing
@@ -15,7 +16,7 @@ HOTPHashTypes = typing.Union[SHA1, SHA256, SHA512]
def _generate_uri(
- hotp: "HOTP",
+ hotp: HOTP,
type_name: str,
account_name: str,
issuer: typing.Optional[str],
diff --git a/src/cryptography/hazmat/primitives/twofactor/totp.py b/src/cryptography/hazmat/primitives/twofactor/totp.py
index c66fa1de1..daddcea2f 100644
--- a/src/cryptography/hazmat/primitives/twofactor/totp.py
+++ b/src/cryptography/hazmat/primitives/twofactor/totp.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import typing
from cryptography.hazmat.primitives import constant_time
diff --git a/src/cryptography/utils.py b/src/cryptography/utils.py
index c8a5ee831..651e8509a 100644
--- a/src/cryptography/utils.py
+++ b/src/cryptography/utils.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import enum
import sys
diff --git a/src/cryptography/x509/__init__.py b/src/cryptography/x509/__init__.py
index df7fd3fbb..6d4a10eab 100644
--- a/src/cryptography/x509/__init__.py
+++ b/src/cryptography/x509/__init__.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
from cryptography.x509 import certificate_transparency
from cryptography.x509.base import (
diff --git a/src/cryptography/x509/base.py b/src/cryptography/x509/base.py
index 35c846d34..63eaa6bd4 100644
--- a/src/cryptography/x509/base.py
+++ b/src/cryptography/x509/base.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import abc
import datetime
@@ -279,7 +280,7 @@ class Certificate(metaclass=abc.ABCMeta):
"""
@abc.abstractmethod
- def verify_directly_issued_by(self, issuer: "Certificate") -> None:
+ def verify_directly_issued_by(self, issuer: Certificate) -> None:
"""
This method verifies that certificate issuer name matches the
issuer subject name and that the certificate is signed by the
@@ -627,7 +628,7 @@ class CertificateSigningRequestBuilder:
self._extensions = extensions
self._attributes = attributes
- def subject_name(self, name: Name) -> "CertificateSigningRequestBuilder":
+ def subject_name(self, name: Name) -> CertificateSigningRequestBuilder:
"""
Sets the certificate requestor's distinguished name.
"""
@@ -641,7 +642,7 @@ class CertificateSigningRequestBuilder:
def add_extension(
self, extval: ExtensionType, critical: bool
- ) -> "CertificateSigningRequestBuilder":
+ ) -> CertificateSigningRequestBuilder:
"""
Adds an X.509 extension to the certificate request.
"""
@@ -663,7 +664,7 @@ class CertificateSigningRequestBuilder:
value: bytes,
*,
_tag: typing.Optional[_ASN1Type] = None,
- ) -> "CertificateSigningRequestBuilder":
+ ) -> CertificateSigningRequestBuilder:
"""
Adds an X.509 attribute with an OID and associated value.
"""
@@ -725,7 +726,7 @@ class CertificateBuilder:
self._not_valid_after = not_valid_after
self._extensions = extensions
- def issuer_name(self, name: Name) -> "CertificateBuilder":
+ def issuer_name(self, name: Name) -> CertificateBuilder:
"""
Sets the CA's distinguished name.
"""
@@ -743,7 +744,7 @@ class CertificateBuilder:
self._extensions,
)
- def subject_name(self, name: Name) -> "CertificateBuilder":
+ def subject_name(self, name: Name) -> CertificateBuilder:
"""
Sets the requestor's distinguished name.
"""
@@ -764,7 +765,7 @@ class CertificateBuilder:
def public_key(
self,
key: CertificatePublicKeyTypes,
- ) -> "CertificateBuilder":
+ ) -> CertificateBuilder:
"""
Sets the requestor's public key (as found in the signing request).
"""
@@ -798,7 +799,7 @@ class CertificateBuilder:
self._extensions,
)
- def serial_number(self, number: int) -> "CertificateBuilder":
+ def serial_number(self, number: int) -> CertificateBuilder:
"""
Sets the certificate serial number.
"""
@@ -825,9 +826,7 @@ class CertificateBuilder:
self._extensions,
)
- def not_valid_before(
- self, time: datetime.datetime
- ) -> "CertificateBuilder":
+ def not_valid_before(self, time: datetime.datetime) -> CertificateBuilder:
"""
Sets the certificate activation time.
"""
@@ -856,7 +855,7 @@ class CertificateBuilder:
self._extensions,
)
- def not_valid_after(self, time: datetime.datetime) -> "CertificateBuilder":
+ def not_valid_after(self, time: datetime.datetime) -> CertificateBuilder:
"""
Sets the certificate expiration time.
"""
@@ -890,7 +889,7 @@ class CertificateBuilder:
def add_extension(
self, extval: ExtensionType, critical: bool
- ) -> "CertificateBuilder":
+ ) -> CertificateBuilder:
"""
Adds an X.509 extension to the certificate.
"""
@@ -960,7 +959,7 @@ class CertificateRevocationListBuilder:
def issuer_name(
self, issuer_name: Name
- ) -> "CertificateRevocationListBuilder":
+ ) -> CertificateRevocationListBuilder:
if not isinstance(issuer_name, Name):
raise TypeError("Expecting x509.Name object.")
if self._issuer_name is not None:
@@ -975,7 +974,7 @@ class CertificateRevocationListBuilder:
def last_update(
self, last_update: datetime.datetime
- ) -> "CertificateRevocationListBuilder":
+ ) -> CertificateRevocationListBuilder:
if not isinstance(last_update, datetime.datetime):
raise TypeError("Expecting datetime object.")
if self._last_update is not None:
@@ -999,7 +998,7 @@ class CertificateRevocationListBuilder:
def next_update(
self, next_update: datetime.datetime
- ) -> "CertificateRevocationListBuilder":
+ ) -> CertificateRevocationListBuilder:
if not isinstance(next_update, datetime.datetime):
raise TypeError("Expecting datetime object.")
if self._next_update is not None:
@@ -1023,7 +1022,7 @@ class CertificateRevocationListBuilder:
def add_extension(
self, extval: ExtensionType, critical: bool
- ) -> "CertificateRevocationListBuilder":
+ ) -> CertificateRevocationListBuilder:
"""
Adds an X.509 extension to the certificate revocation list.
"""
@@ -1042,7 +1041,7 @@ class CertificateRevocationListBuilder:
def add_revoked_certificate(
self, revoked_certificate: RevokedCertificate
- ) -> "CertificateRevocationListBuilder":
+ ) -> CertificateRevocationListBuilder:
"""
Adds a revoked certificate to the CRL.
"""
@@ -1086,7 +1085,7 @@ class RevokedCertificateBuilder:
self._revocation_date = revocation_date
self._extensions = extensions
- def serial_number(self, number: int) -> "RevokedCertificateBuilder":
+ def serial_number(self, number: int) -> RevokedCertificateBuilder:
if not isinstance(number, int):
raise TypeError("Serial number must be of integral type.")
if self._serial_number is not None:
@@ -1106,7 +1105,7 @@ class RevokedCertificateBuilder:
def revocation_date(
self, time: datetime.datetime
- ) -> "RevokedCertificateBuilder":
+ ) -> RevokedCertificateBuilder:
if not isinstance(time, datetime.datetime):
raise TypeError("Expecting datetime object.")
if self._revocation_date is not None:
@@ -1122,7 +1121,7 @@ class RevokedCertificateBuilder:
def add_extension(
self, extval: ExtensionType, critical: bool
- ) -> "RevokedCertificateBuilder":
+ ) -> RevokedCertificateBuilder:
if not isinstance(extval, ExtensionType):
raise TypeError("extension must be an ExtensionType")
diff --git a/src/cryptography/x509/certificate_transparency.py b/src/cryptography/x509/certificate_transparency.py
index a67709865..73647ee71 100644
--- a/src/cryptography/x509/certificate_transparency.py
+++ b/src/cryptography/x509/certificate_transparency.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import abc
import datetime
diff --git a/src/cryptography/x509/extensions.py b/src/cryptography/x509/extensions.py
index 6fe3888bf..981161a63 100644
--- a/src/cryptography/x509/extensions.py
+++ b/src/cryptography/x509/extensions.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import abc
import datetime
@@ -111,13 +112,13 @@ class ExtensionType(metaclass=abc.ABCMeta):
class Extensions:
def __init__(
- self, extensions: typing.Iterable["Extension[ExtensionType]"]
+ self, extensions: typing.Iterable[Extension[ExtensionType]]
) -> None:
self._extensions = list(extensions)
def get_extension_for_oid(
self, oid: ObjectIdentifier
- ) -> "Extension[ExtensionType]":
+ ) -> Extension[ExtensionType]:
for ext in self:
if ext.oid == oid:
return ext
@@ -126,7 +127,7 @@ class Extensions:
def get_extension_for_class(
self, extclass: typing.Type[ExtensionTypeVar]
- ) -> "Extension[ExtensionTypeVar]":
+ ) -> Extension[ExtensionTypeVar]:
if extclass is UnrecognizedExtension:
raise TypeError(
"UnrecognizedExtension can't be used with "
@@ -221,7 +222,7 @@ class AuthorityKeyIdentifier(ExtensionType):
@classmethod
def from_issuer_public_key(
cls, public_key: CertificateIssuerPublicKeyTypes
- ) -> "AuthorityKeyIdentifier":
+ ) -> AuthorityKeyIdentifier:
digest = _key_identifier_from_public_key(public_key)
return cls(
key_identifier=digest,
@@ -231,8 +232,8 @@ class AuthorityKeyIdentifier(ExtensionType):
@classmethod
def from_issuer_subject_key_identifier(
- cls, ski: "SubjectKeyIdentifier"
- ) -> "AuthorityKeyIdentifier":
+ cls, ski: SubjectKeyIdentifier
+ ) -> AuthorityKeyIdentifier:
return cls(
key_identifier=ski.digest,
authority_cert_issuer=None,
@@ -294,7 +295,7 @@ class SubjectKeyIdentifier(ExtensionType):
@classmethod
def from_public_key(
cls, public_key: CertificatePublicKeyTypes
- ) -> "SubjectKeyIdentifier":
+ ) -> SubjectKeyIdentifier:
return cls(_key_identifier_from_public_key(public_key))
@property
@@ -325,7 +326,7 @@ class AuthorityInformationAccess(ExtensionType):
oid = ExtensionOID.AUTHORITY_INFORMATION_ACCESS
def __init__(
- self, descriptions: typing.Iterable["AccessDescription"]
+ self, descriptions: typing.Iterable[AccessDescription]
) -> None:
descriptions = list(descriptions)
if not all(isinstance(x, AccessDescription) for x in descriptions):
@@ -358,7 +359,7 @@ class SubjectInformationAccess(ExtensionType):
oid = ExtensionOID.SUBJECT_INFORMATION_ACCESS
def __init__(
- self, descriptions: typing.Iterable["AccessDescription"]
+ self, descriptions: typing.Iterable[AccessDescription]
) -> None:
descriptions = list(descriptions)
if not all(isinstance(x, AccessDescription) for x in descriptions):
@@ -506,7 +507,7 @@ class CRLDistributionPoints(ExtensionType):
oid = ExtensionOID.CRL_DISTRIBUTION_POINTS
def __init__(
- self, distribution_points: typing.Iterable["DistributionPoint"]
+ self, distribution_points: typing.Iterable[DistributionPoint]
) -> None:
distribution_points = list(distribution_points)
if not all(
@@ -543,7 +544,7 @@ class FreshestCRL(ExtensionType):
oid = ExtensionOID.FRESHEST_CRL
def __init__(
- self, distribution_points: typing.Iterable["DistributionPoint"]
+ self, distribution_points: typing.Iterable[DistributionPoint]
) -> None:
distribution_points = list(distribution_points)
if not all(
@@ -581,7 +582,7 @@ class DistributionPoint:
self,
full_name: typing.Optional[typing.Iterable[GeneralName]],
relative_name: typing.Optional[RelativeDistinguishedName],
- reasons: typing.Optional[typing.FrozenSet["ReasonFlags"]],
+ reasons: typing.Optional[typing.FrozenSet[ReasonFlags]],
crl_issuer: typing.Optional[typing.Iterable[GeneralName]],
) -> None:
if full_name and relative_name:
@@ -679,7 +680,7 @@ class DistributionPoint:
return self._relative_name
@property
- def reasons(self) -> typing.Optional[typing.FrozenSet["ReasonFlags"]]:
+ def reasons(self) -> typing.Optional[typing.FrozenSet[ReasonFlags]]:
return self._reasons
@property
@@ -803,7 +804,7 @@ class PolicyConstraints(ExtensionType):
class CertificatePolicies(ExtensionType):
oid = ExtensionOID.CERTIFICATE_POLICIES
- def __init__(self, policies: typing.Iterable["PolicyInformation"]) -> None:
+ def __init__(self, policies: typing.Iterable[PolicyInformation]) -> None:
policies = list(policies)
if not all(isinstance(x, PolicyInformation) for x in policies):
raise TypeError(
@@ -836,7 +837,7 @@ class PolicyInformation:
self,
policy_identifier: ObjectIdentifier,
policy_qualifiers: typing.Optional[
- typing.Iterable[typing.Union[str, "UserNotice"]]
+ typing.Iterable[typing.Union[str, UserNotice]]
],
) -> None:
if not isinstance(policy_identifier, ObjectIdentifier):
@@ -874,7 +875,7 @@ class PolicyInformation:
def __hash__(self) -> int:
if self.policy_qualifiers is not None:
pq: typing.Optional[
- typing.Tuple[typing.Union[str, "UserNotice"], ...]
+ typing.Tuple[typing.Union[str, UserNotice], ...]
] = tuple(self.policy_qualifiers)
else:
pq = None
@@ -888,14 +889,14 @@ class PolicyInformation:
@property
def policy_qualifiers(
self,
- ) -> typing.Optional[typing.List[typing.Union[str, "UserNotice"]]]:
+ ) -> typing.Optional[typing.List[typing.Union[str, UserNotice]]]:
return self._policy_qualifiers
class UserNotice:
def __init__(
self,
- notice_reference: typing.Optional["NoticeReference"],
+ notice_reference: typing.Optional[NoticeReference],
explicit_text: typing.Optional[str],
) -> None:
if notice_reference and not isinstance(
@@ -927,7 +928,7 @@ class UserNotice:
return hash((self.notice_reference, self.explicit_text))
@property
- def notice_reference(self) -> typing.Optional["NoticeReference"]:
+ def notice_reference(self) -> typing.Optional[NoticeReference]:
return self._notice_reference
@property
@@ -1046,7 +1047,7 @@ class PrecertPoison(ExtensionType):
class TLSFeature(ExtensionType):
oid = ExtensionOID.TLS_FEATURE
- def __init__(self, features: typing.Iterable["TLSFeatureType"]) -> None:
+ def __init__(self, features: typing.Iterable[TLSFeatureType]) -> None:
features = list(features)
if (
not all(isinstance(x, TLSFeatureType) for x in features)
diff --git a/src/cryptography/x509/general_name.py b/src/cryptography/x509/general_name.py
index ce8367b07..79271afbf 100644
--- a/src/cryptography/x509/general_name.py
+++ b/src/cryptography/x509/general_name.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import abc
import ipaddress
@@ -59,7 +60,7 @@ class RFC822Name(GeneralName):
return self._value
@classmethod
- def _init_without_validation(cls, value: str) -> "RFC822Name":
+ def _init_without_validation(cls, value: str) -> RFC822Name:
instance = cls.__new__(cls)
instance._value = value
return instance
@@ -98,7 +99,7 @@ class DNSName(GeneralName):
return self._value
@classmethod
- def _init_without_validation(cls, value: str) -> "DNSName":
+ def _init_without_validation(cls, value: str) -> DNSName:
instance = cls.__new__(cls)
instance._value = value
return instance
@@ -137,9 +138,7 @@ class UniformResourceIdentifier(GeneralName):
return self._value
@classmethod
- def _init_without_validation(
- cls, value: str
- ) -> "UniformResourceIdentifier":
+ def _init_without_validation(cls, value: str) -> UniformResourceIdentifier:
instance = cls.__new__(cls)
instance._value = value
return instance
diff --git a/src/cryptography/x509/name.py b/src/cryptography/x509/name.py
index fd0782026..ff98e8724 100644
--- a/src/cryptography/x509/name.py
+++ b/src/cryptography/x509/name.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
import binascii
import re
import sys
@@ -300,7 +302,7 @@ class Name:
cls,
data: str,
attr_name_overrides: typing.Optional[_NameOidMap] = None,
- ) -> "Name":
+ ) -> Name:
return _RFC4514NameParser(data, attr_name_overrides or {}).parse()
def rfc4514_string(
diff --git a/src/cryptography/x509/ocsp.py b/src/cryptography/x509/ocsp.py
index 857e75afc..7054795fc 100644
--- a/src/cryptography/x509/ocsp.py
+++ b/src/cryptography/x509/ocsp.py
@@ -2,6 +2,7 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
import abc
import datetime
@@ -423,7 +424,7 @@ class OCSPRequestBuilder:
cert: x509.Certificate,
issuer: x509.Certificate,
algorithm: hashes.HashAlgorithm,
- ) -> "OCSPRequestBuilder":
+ ) -> OCSPRequestBuilder:
if self._request is not None or self._request_hash is not None:
raise ValueError("Only one certificate can be added to a request")
@@ -443,7 +444,7 @@ class OCSPRequestBuilder:
issuer_key_hash: bytes,
serial_number: int,
algorithm: hashes.HashAlgorithm,
- ) -> "OCSPRequestBuilder":
+ ) -> OCSPRequestBuilder:
if self._request is not None or self._request_hash is not None:
raise ValueError("Only one certificate can be added to a request")
@@ -469,7 +470,7 @@ class OCSPRequestBuilder:
def add_extension(
self, extval: x509.ExtensionType, critical: bool
- ) -> "OCSPRequestBuilder":
+ ) -> OCSPRequestBuilder:
if not isinstance(extval, x509.ExtensionType):
raise TypeError("extension must be an ExtensionType")
@@ -512,7 +513,7 @@ class OCSPResponseBuilder:
next_update: typing.Optional[datetime.datetime],
revocation_time: typing.Optional[datetime.datetime],
revocation_reason: typing.Optional[x509.ReasonFlags],
- ) -> "OCSPResponseBuilder":
+ ) -> OCSPResponseBuilder:
if self._response is not None:
raise ValueError("Only one response per OCSPResponse.")
@@ -535,7 +536,7 @@ class OCSPResponseBuilder:
def responder_id(
self, encoding: OCSPResponderEncoding, responder_cert: x509.Certificate
- ) -> "OCSPResponseBuilder":
+ ) -> OCSPResponseBuilder:
if self._responder_id is not None:
raise ValueError("responder_id can only be set once")
if not isinstance(responder_cert, x509.Certificate):
@@ -554,7 +555,7 @@ class OCSPResponseBuilder:
def certificates(
self, certs: typing.Iterable[x509.Certificate]
- ) -> "OCSPResponseBuilder":
+ ) -> OCSPResponseBuilder:
if self._certs is not None:
raise ValueError("certificates may only be set once")
certs = list(certs)
@@ -571,7 +572,7 @@ class OCSPResponseBuilder:
def add_extension(
self, extval: x509.ExtensionType, critical: bool
- ) -> "OCSPResponseBuilder":
+ ) -> OCSPResponseBuilder:
if not isinstance(extval, x509.ExtensionType):
raise TypeError("extension must be an ExtensionType")
diff --git a/src/cryptography/x509/oid.py b/src/cryptography/x509/oid.py
index 0d91a5469..cda50cced 100644
--- a/src/cryptography/x509/oid.py
+++ b/src/cryptography/x509/oid.py
@@ -2,6 +2,8 @@
# 2.0, and the BSD License. See the LICENSE file in the root of this repository
# for complete details.
+from __future__ import annotations
+
from cryptography.hazmat._oid import (
AttributeOID,
AuthorityInformationAccessOID,