o )%a(@sddlZGdddejdZGdddejdZGdddejdZGd d d ejdZGd d d ejdZGd ddejdZGdddejdZGdddejdZ GdddejdZ GdddejdZ GdddejdZ GdddejdZ GdddejdZdS)Nc@6eZdZejddZejddZejddZdS) CipherBackendcCdS)zI Return True if the given cipher and mode are supported. NselfciphermoderrI/usr/lib/python3/dist-packages/cryptography/hazmat/backends/interfaces.pycipher_supported zCipherBackend.cipher_supportedcCr)zF Get a CipherContext that can be used for encryption. Nrrrrr create_symmetric_encryption_ctxr z-CipherBackend.create_symmetric_encryption_ctxcCr)zF Get a CipherContext that can be used for decryption. Nrrrrr create_symmetric_decryption_ctxr z-CipherBackend.create_symmetric_decryption_ctxN)__name__ __module__ __qualname__abcabstractmethodr r rrrrr r s  r) metaclassc@(eZdZejddZejddZdS) HashBackendcCr)zQ Return True if the hash algorithm is supported by this backend. Nrr algorithmrrr hash_supportedr zHashBackend.hash_supportedcCr)zH Create a HashContext for calculating a message digest. Nrrrrr create_hash_ctx$r zHashBackend.create_hash_ctxN)rrrrrrrrrrr r  rc@r) HMACBackendcCr)zb Return True if the hash algorithm is supported for HMAC by this backend. Nrrrrr hmac_supported,r zHMACBackend.hmac_supportedcCrzQ Create a context for calculating a message authentication code. Nr)rkeyrrrr create_hmac_ctx3r zHMACBackend.create_hmac_ctxN)rrrrrrr rrrr r+  rc@r) CMACBackendcCr)zX Returns True if the block cipher is supported for CMAC by this backend Nrrrrr cmac_algorithm_supported;r z$CMACBackend.cmac_algorithm_supportedcCrrrrrrr create_cmac_ctxAr zCMACBackend.create_cmac_ctxN)rrrrrr#r$rrrr r":rr"c@r)PBKDF2HMACBackendcCr)zd Return True if the hash algorithm is supported for PBKDF2 by this backend. Nrrrrr pbkdf2_hmac_supportedIr z'PBKDF2HMACBackend.pbkdf2_hmac_supportedcCr)zN Return length bytes derived from provided PBKDF2 parameters. Nr)rrlengthsalt iterations key_materialrrr derive_pbkdf2_hmacPr z$PBKDF2HMACBackend.derive_pbkdf2_hmacN)rrrrrr&r+rrrr r%Hr!r%c@sReZdZejddZejddZejddZejddZejd d Z d S) RSABackendcCr)zq Generate an RSAPrivateKey instance with public_exponent and a modulus of key_size bits. Nrrpublic_exponentkey_sizerrr generate_rsa_private_keyZr z#RSABackend.generate_rsa_private_keycCr)zQ Returns True if the backend supports the given padding options. Nr)rpaddingrrr rsa_padding_supportedar z RSABackend.rsa_padding_supportedcCr)zg Returns True if the backend supports the given parameters for key generation. Nrr-rrr !generate_rsa_parameters_supportedgr z,RSABackend.generate_rsa_parameters_supportedcCr)z4 Returns an RSAPrivateKey provider. Nrrnumbersrrr load_rsa_private_numbersnr z#RSABackend.load_rsa_private_numberscCr)z3 Returns an RSAPublicKey provider. Nrr4rrr load_rsa_public_numberstr z"RSABackend.load_rsa_public_numbersN) rrrrrr0r2r3r6r7rrrr r,Ys    r,c@s|eZdZejddZejddZejddZejddZejd d Z ejd d Z ejd dZ ejddZ dS) DSABackendcCr)zT Generate a DSAParameters instance with a modulus of key_size bits. Nrrr/rrr generate_dsa_parameters|r z"DSABackend.generate_dsa_parameterscCr)zf Generate a DSAPrivateKey instance with parameters as a DSAParameters object. Nrr parametersrrr generate_dsa_private_keyr z#DSABackend.generate_dsa_private_keycCr)zH Generate a DSAPrivateKey instance using key size only. Nrr9rrr 'generate_dsa_private_key_and_parametersr z2DSABackend.generate_dsa_private_key_and_parameterscCr)zX Return True if the hash algorithm is supported by the backend for DSA. Nrrrrr dsa_hash_supportedr zDSABackend.dsa_hash_supportedcCr)zU Return True if the parameters are supported by the backend for DSA. Nr)rpqgrrr dsa_parameters_supportedr z#DSABackend.dsa_parameters_supportedcCr)z3 Returns a DSAPrivateKey provider. Nrr4rrr load_dsa_private_numbersr z#DSABackend.load_dsa_private_numberscCr)z2 Returns a DSAPublicKey provider. Nrr4rrr load_dsa_public_numbersr z"DSABackend.load_dsa_public_numberscCr)z3 Returns a DSAParameters provider. Nrr4rrr load_dsa_parameter_numbersr z%DSABackend.load_dsa_parameter_numbersN) rrrrrr:r=r>r?rCrDrErFrrrr r8{s"       r8c@sneZdZejddZejddZejddZejddZejd d Z ejd d Z ejd dZ dS)EllipticCurveBackendcCr)z Returns True if the backend supports the named elliptic curve with the specified signature algorithm. Nr)rsignature_algorithmcurverrr ,elliptic_curve_signature_algorithm_supportedr zAEllipticCurveBackend.elliptic_curve_signature_algorithm_supportedcCr)zP Returns True if the backend supports the named elliptic curve. NrrrIrrr elliptic_curve_supportedr z-EllipticCurveBackend.elliptic_curve_supportedcCr)zW Return an object conforming to the EllipticCurvePrivateKey interface. NrrKrrr #generate_elliptic_curve_private_keyr z8EllipticCurveBackend.generate_elliptic_curve_private_keycCr)zT Return an EllipticCurvePublicKey provider using the given numbers. Nrr4rrr "load_elliptic_curve_public_numbersr z7EllipticCurveBackend.load_elliptic_curve_public_numberscCr)zU Return an EllipticCurvePrivateKey provider using the given numbers. Nrr4rrr #load_elliptic_curve_private_numbersr z8EllipticCurveBackend.load_elliptic_curve_private_numberscCr)zV Returns whether the exchange algorithm is supported by this backend. Nr)rrrIrrr +elliptic_curve_exchange_algorithm_supportedr z@EllipticCurveBackend.elliptic_curve_exchange_algorithm_supportedcCr)zL Compute the private key given the private value and curve. Nr)r private_valuerIrrr !derive_elliptic_curve_private_keyr z6EllipticCurveBackend.derive_elliptic_curve_private_keyN) rrrrrrJrLrMrNrOrPrRrrrr rGs      rGc@r)PEMSerializationBackendcCr)zz Loads a private key from PEM encoded data, using the provided password if the data is encrypted. Nrrdatapasswordrrr load_pem_private_keyr z,PEMSerializationBackend.load_pem_private_keycCr)z; Loads a public key from PEM encoded data. NrrrUrrr load_pem_public_keyr z+PEMSerializationBackend.load_pem_public_keycCr)zC Load encryption parameters from PEM encoded data. NrrXrrr load_pem_parametersr z+PEMSerializationBackend.load_pem_parametersN)rrrrrrWrYrZrrrr rS  rSc@r)DERSerializationBackendcCr)zy Loads a private key from DER encoded data. Uses the provided password if the data is encrypted. NrrTrrr load_der_private_keyr z,DERSerializationBackend.load_der_private_keycCr)z; Loads a public key from DER encoded data. NrrXrrr load_der_public_keyr z+DERSerializationBackend.load_der_public_keycCr)zC Load encryption parameters from DER encoded data. NrrXrrr load_der_parametersr z+DERSerializationBackend.load_der_parametersN)rrrrrr]r^r_rrrr r\r[r\c@seZdZejddZejddZejddZejddZejd d Z ejd d Z ejd dZ ejddZ ejddZ dS) X509BackendcCr)zB Load an X.509 certificate from PEM encoded data. NrrXrrr load_pem_x509_certificater z%X509Backend.load_pem_x509_certificatecCr)zB Load an X.509 certificate from DER encoded data. NrrXrrr load_der_x509_certificater z%X509Backend.load_der_x509_certificatecCr)z: Load an X.509 CSR from DER encoded data. NrrXrrr load_der_x509_csrr zX509Backend.load_der_x509_csrcCr)z: Load an X.509 CSR from PEM encoded data. NrrXrrr load_pem_x509_csrr zX509Backend.load_pem_x509_csrcCr)zI Create and sign an X.509 CSR from a CSR builder object. Nrrbuilder private_keyrrrr create_x509_csr r zX509Backend.create_x509_csrcCr)zX Create and sign an X.509 certificate from a CertificateBuilder object. Nrrerrr create_x509_certificate&r z#X509Backend.create_x509_certificatecCr)z| Create and sign an X.509 CertificateRevocationList from a CertificateRevocationListBuilder object. Nrrerrr create_x509_crl,r zX509Backend.create_x509_crlcCr)ze Create a RevokedCertificate object from a RevokedCertificateBuilder object. Nr)rrfrrr create_x509_revoked_certificate3r z+X509Backend.create_x509_revoked_certificatecCr)zG Compute the DER encoded bytes of an X509 Name object. Nr)rnamerrr x509_name_bytes:r zX509Backend.x509_name_bytesN)rrrrrrarbrcrdrhrirjrkrmrrrr r`s&        r`c@s~eZdZejddZejddZejddZejddZejd d Z ejd d Z ejdddZ ejddZ d S) DHBackendcCr)z Generate a DHParameters instance with a modulus of key_size bits. Using the given generator. Often 2 or 5. Nrr generatorr/rrr generate_dh_parametersBr z DHBackend.generate_dh_parameterscCr)zd Generate a DHPrivateKey instance with parameters as a DHParameters object. Nrr;rrr generate_dh_private_keyIr z!DHBackend.generate_dh_private_keycCr)zx Generate a DHPrivateKey instance using key size only. Using the given generator. Often 2 or 5. Nrrorrr &generate_dh_private_key_and_parametersPr z0DHBackend.generate_dh_private_key_and_parameterscCr)z; Load a DHPrivateKey from DHPrivateNumbers Nrr4rrr load_dh_private_numbersWr z!DHBackend.load_dh_private_numberscCr)z: Load a DHPublicKey from DHPublicNumbers. Nrr4rrr load_dh_public_numbers]r z DHBackend.load_dh_public_numberscCr)z< Load DHParameters from DHParameterNumbers. Nrr4rrr load_dh_parameter_numberscr z#DHBackend.load_dh_parameter_numbersNcCr)zV Returns whether the backend supports DH with these parameter values. Nr)rr@rBrArrr dh_parameters_supportedir z!DHBackend.dh_parameters_supportedcCr)zw Returns True if the backend supports the serialization of DH objects with subgroup order (q). Nr)rrrr dh_x942_serialization_supportedor z)DHBackend.dh_x942_serialization_supported)N) rrrrrrqrrrsrtrurvrwrxrrrr rnAs"       rnc@seZdZejddZdS) ScryptBackendcCr)zG Return bytes derived from provided Scrypt parameters. Nr)rr*r(r'nrr@rrr derive_scryptxr zScryptBackend.derive_scryptN)rrrrrr|rrrr rywsry)rABCMetarrrr"r%r,r8rGrSr\r`rnryrrrr s"3/:6