1 from abc import ABCMeta, abstractmethod
4 from cryptography.hazmat.primitives.asymmetric.dh import (
12 from cryptography.hazmat.primitives.asymmetric.dsa import (
20 from cryptography.hazmat.primitives.asymmetric.ec import (
22 EllipticCurvePrivateKey,
23 EllipticCurvePrivateNumbers,
24 EllipticCurvePublicKey,
25 EllipticCurvePublicNumbers,
26 EllipticCurveSignatureAlgorithm,
28 from cryptography.hazmat.primitives.asymmetric.padding import AsymmetricPadding
29 from cryptography.hazmat.primitives.asymmetric.rsa import RSAPrivateKey, RSAPrivateNumbers, RSAPublicKey, RSAPublicNumbers
30 from cryptography.hazmat.primitives.ciphers import BlockCipherAlgorithm, CipherAlgorithm, CipherContext
31 from cryptography.hazmat.primitives.ciphers.modes import Mode
32 from cryptography.hazmat.primitives.hashes import HashAlgorithm, HashContext
33 from cryptography.x509 import (
36 CertificateRevocationList,
37 CertificateRevocationListBuilder,
38 CertificateSigningRequest,
39 CertificateSigningRequestBuilder,
42 RevokedCertificateBuilder,
45 class CipherBackend(metaclass=ABCMeta):
47 def cipher_supported(self, cipher: CipherAlgorithm, mode: Mode) -> bool: ...
49 def create_symmetric_encryption_ctx(self, cipher: CipherAlgorithm, mode: Mode) -> CipherContext: ...
51 def create_symmetric_decryption_ctx(self, cipher: CipherAlgorithm, mode: Mode) -> CipherContext: ...
53 class CMACBackend(metaclass=ABCMeta):
55 def cmac_algorithm_supported(self, algorithm: BlockCipherAlgorithm) -> bool: ...
57 def create_cmac_ctx(self, algorithm: BlockCipherAlgorithm) -> Any: ...
59 class DERSerializationBackend(metaclass=ABCMeta):
61 def load_der_parameters(self, data: bytes) -> Any: ...
63 def load_der_private_key(self, data: bytes, password: bytes | None) -> Any: ...
65 def load_der_public_key(self, data: bytes) -> Any: ...
67 class DHBackend(metaclass=ABCMeta):
69 def dh_parameters_supported(self, p: int, g: int, q: int | None) -> bool: ...
71 def dh_x942_serialization_supported(self) -> bool: ...
73 def generate_dh_parameters(self, generator: int, key_size: int) -> DHParameters: ...
75 def generate_dh_private_key(self, parameters: DHParameters) -> DHPrivateKey: ...
77 def generate_dh_private_key_and_parameters(self, generator: int, key_size: int) -> DHPrivateKey: ...
79 def load_dh_parameter_numbers(self, numbers: DHParameterNumbers) -> DHParameters: ...
81 def load_dh_private_numbers(self, numbers: DHPrivateNumbers) -> DHPrivateKey: ...
83 def load_dh_public_numbers(self, numbers: DHPublicNumbers) -> DHPublicKey: ...
85 class DSABackend(metaclass=ABCMeta):
87 def dsa_hash_supported(self, algorithm: HashAlgorithm) -> bool: ...
89 def dsa_parameters_supported(self, p: int, q: int, g: int) -> bool: ...
91 def generate_dsa_parameters(self, key_size: int) -> DSAParameters: ...
93 def generate_dsa_private_key(self, parameters: DSAParameters) -> DSAPrivateKey: ...
95 def generate_dsa_private_key_and_parameters(self, key_size: int) -> DSAPrivateKey: ...
97 def load_dsa_parameter_numbers(self, numbers: DSAParameterNumbers) -> DSAParameters: ...
99 def load_dsa_private_numbers(self, numbers: DSAPrivateNumbers) -> DSAPrivateKey: ...
101 def load_dsa_public_numbers(self, numbers: DSAPublicNumbers) -> DSAPublicKey: ...
103 class EllipticCurveBackend(metaclass=ABCMeta):
105 def derive_elliptic_curve_private_key(self, private_value: int, curve: EllipticCurve) -> EllipticCurvePrivateKey: ...
107 def elliptic_curve_signature_algorithm_supported(
108 self, signature_algorithm: EllipticCurveSignatureAlgorithm, curve: EllipticCurve
111 def elliptic_curve_supported(self, curve: EllipticCurve) -> bool: ...
113 def generate_elliptic_curve_private_key(self, curve: EllipticCurve) -> EllipticCurvePrivateKey: ...
115 def load_elliptic_curve_private_numbers(self, numbers: EllipticCurvePrivateNumbers) -> EllipticCurvePrivateKey: ...
117 def load_elliptic_curve_public_numbers(self, numbers: EllipticCurvePublicNumbers) -> EllipticCurvePublicKey: ...
119 class HMACBackend(metaclass=ABCMeta):
121 def create_hmac_ctx(self, key: bytes, algorithm: HashAlgorithm) -> HashContext: ...
123 def cmac_algorithm_supported(self, algorithm: HashAlgorithm) -> bool: ...
125 class HashBackend(metaclass=ABCMeta):
127 def create_hash_ctx(self, algorithm: HashAlgorithm) -> HashContext: ...
129 def hash_supported(self, algorithm: HashAlgorithm) -> bool: ...
131 class PBKDF2HMACBackend(metaclass=ABCMeta):
133 def derive_pbkdf2_hmac(
134 self, algorithm: HashAlgorithm, length: int, salt: bytes, iterations: int, key_material: bytes
137 def pbkdf2_hmac_supported(self, algorithm: HashAlgorithm) -> bool: ...
139 class PEMSerializationBackend(metaclass=ABCMeta):
141 def load_pem_parameters(self, data: bytes) -> Any: ...
143 def load_pem_private_key(self, data: bytes, password: bytes | None) -> Any: ...
145 def load_pem_public_key(self, data: bytes) -> Any: ...
147 class RSABackend(metaclass=ABCMeta):
149 def generate_rsa_parameters_supported(self, public_exponent: int, key_size: int) -> bool: ...
151 def generate_rsa_private_key(self, public_exponent: int, key_size: int) -> RSAPrivateKey: ...
153 def load_rsa_public_numbers(self, numbers: RSAPublicNumbers) -> RSAPublicKey: ...
155 def load_rsa_private_numbers(self, numbers: RSAPrivateNumbers) -> RSAPrivateKey: ...
157 def rsa_padding_supported(self, padding: AsymmetricPadding) -> bool: ...
159 class ScryptBackend(metaclass=ABCMeta):
161 def derive_scrypt(self, key_material: bytes, salt: bytes, length: int, n: int, r: int, p: int) -> bytes: ...
163 class X509Backend(metaclass=ABCMeta):
165 def create_x509_certificate(
167 builder: CertificateBuilder,
168 private_key: DSAPrivateKey | EllipticCurvePrivateKey | RSAPrivateKey,
169 algorithm: HashAlgorithm,
170 ) -> Certificate: ...
174 builder: CertificateRevocationListBuilder,
175 private_key: DSAPrivateKey | EllipticCurvePrivateKey | RSAPrivateKey,
176 algorithm: HashAlgorithm,
177 ) -> CertificateRevocationList: ...
181 builder: CertificateSigningRequestBuilder,
182 private_key: DSAPrivateKey | EllipticCurvePrivateKey | RSAPrivateKey,
183 algorithm: HashAlgorithm,
184 ) -> CertificateSigningRequest: ...
186 def create_x509_revoked_certificate(self, builder: RevokedCertificateBuilder) -> RevokedCertificate: ...
188 def load_der_x509_certificate(self, data: bytes) -> Certificate: ...
190 def load_der_x509_csr(self, data: bytes) -> CertificateSigningRequest: ...
192 def load_pem_x509_certificate(self, data: bytes) -> Certificate: ...
194 def load_pem_x509_csr(self, data: bytes) -> CertificateSigningRequest: ...
196 def x509_name_bytes(self, name: Name) -> bytes: ...