3 lá˜_*ã@s”ddlmZmZmZddlZddlZejejƒGdd„deƒƒZ ejejƒGdd„deƒƒZ ejejƒGdd„deƒƒZ ejejƒGd d „d eƒƒZ ejejƒGd d „d eƒƒZ ejejƒGd d„deƒƒZejejƒGdd„deƒƒZejejƒGdd„deƒƒZejejƒGdd„deƒƒZejejƒGdd„deƒƒZejejƒGdd„deƒƒZejejƒGdd„deƒƒZejejƒGdd„deƒƒZdS)é)Úabsolute_importÚdivisionÚprint_functionNc@s6eZdZejdd„ƒZejdd„ƒZejdd„ƒZdS)Ú CipherBackendcCsdS)zI Return True if the given cipher and mode are supported. N©)ÚselfÚcipherÚmoderrú"/usr/lib64/python3.6/interfaces.pyÚcipher_supportedszCipherBackend.cipher_supportedcCsdS)zF Get a CipherContext that can be used for encryption. Nr)rrr rrr Úcreate_symmetric_encryption_ctxsz-CipherBackend.create_symmetric_encryption_ctxcCsdS)zF Get a CipherContext that can be used for decryption. Nr)rrr rrr Úcreate_symmetric_decryption_ctxsz-CipherBackend.create_symmetric_decryption_ctxN)Ú__name__Ú __module__Ú __qualname__ÚabcÚabstractmethodr r r rrrr r src@s(eZdZejdd„ƒZejdd„ƒZdS)Ú HashBackendcCsdS)zQ Return True if the hash algorithm is supported by this backend. Nr)rÚ algorithmrrr Úhash_supported#szHashBackend.hash_supportedcCsdS)zH Create a HashContext for calculating a message digest. Nr)rrrrr Úcreate_hash_ctx)szHashBackend.create_hash_ctxN)rrrrrrrrrrr r!src@s(eZdZejdd„ƒZejdd„ƒZdS)Ú HMACBackendcCsdS)zb Return True if the hash algorithm is supported for HMAC by this backend. Nr)rrrrr Úhmac_supported2szHMACBackend.hmac_supportedcCsdS)zQ Create a context for calculating a message authentication code. Nr)rÚkeyrrrr Úcreate_hmac_ctx9szHMACBackend.create_hmac_ctxN)rrrrrrrrrrr r0src@s(eZdZejdd„ƒZejdd„ƒZdS)Ú CMACBackendcCsdS)zX Returns True if the block cipher is supported for CMAC by this backend Nr)rrrrr Úcmac_algorithm_supportedBsz$CMACBackend.cmac_algorithm_supportedcCsdS)zQ Create a context for calculating a message authentication code. Nr)rrrrr Úcreate_cmac_ctxHszCMACBackend.create_cmac_ctxN)rrrrrrrrrrr r@src@s(eZdZejdd„ƒZejdd„ƒZdS)ÚPBKDF2HMACBackendcCsdS)zd Return True if the hash algorithm is supported for PBKDF2 by this backend. Nr)rrrrr Úpbkdf2_hmac_supportedQsz'PBKDF2HMACBackend.pbkdf2_hmac_supportedcCsdS)zN Return length bytes derived from provided PBKDF2 parameters. Nr)rrÚlengthÚsaltZ iterationsÚ key_materialrrr Úderive_pbkdf2_hmacXsz$PBKDF2HMACBackend.derive_pbkdf2_hmacN)rrrrrrr#rrrr rOsrc@sReZdZejdd„ƒZejdd„ƒZejdd„ƒZejdd„ƒZejd d „ƒZ d S) Ú RSABackendcCsdS)zq Generate an RSAPrivateKey instance with public_exponent and a modulus of key_size bits. Nr)rÚpublic_exponentÚkey_sizerrr Úgenerate_rsa_private_keycsz#RSABackend.generate_rsa_private_keycCsdS)zQ Returns True if the backend supports the given padding options. Nr)rZpaddingrrr Úrsa_padding_supportedjsz RSABackend.rsa_padding_supportedcCsdS)zg Returns True if the backend supports the given parameters for key generation. Nr)rr%r&rrr Ú!generate_rsa_parameters_supportedpsz,RSABackend.generate_rsa_parameters_supportedcCsdS)z4 Returns an RSAPrivateKey provider. Nr)rÚnumbersrrr Úload_rsa_private_numberswsz#RSABackend.load_rsa_private_numberscCsdS)z3 Returns an RSAPublicKey provider. Nr)rr*rrr Úload_rsa_public_numbers}sz"RSABackend.load_rsa_public_numbersN) rrrrrr'r(r)r+r,rrrr r$as r$c@s|eZdZejdd„ƒZejdd„ƒZejdd„ƒZejdd„ƒZejd d „ƒZ ejd d „ƒZ ejd d„ƒZ ejdd„ƒZ dS)Ú DSABackendcCsdS)zT Generate a DSAParameters instance with a modulus of key_size bits. Nr)rr&rrr Úgenerate_dsa_parameters†sz"DSABackend.generate_dsa_parameterscCsdS)zf Generate a DSAPrivateKey instance with parameters as a DSAParameters object. Nr)rÚ parametersrrr Úgenerate_dsa_private_keyŒsz#DSABackend.generate_dsa_private_keycCsdS)zH Generate a DSAPrivateKey instance using key size only. Nr)rr&rrr Ú'generate_dsa_private_key_and_parameters“sz2DSABackend.generate_dsa_private_key_and_parameterscCsdS)zX Return True if the hash algorithm is supported by the backend for DSA. Nr)rrrrr Údsa_hash_supported™szDSABackend.dsa_hash_supportedcCsdS)zU Return True if the parameters are supported by the backend for DSA. Nr)rÚpÚqÚgrrr Údsa_parameters_supportedŸsz#DSABackend.dsa_parameters_supportedcCsdS)z3 Returns a DSAPrivateKey provider. Nr)rr*rrr Úload_dsa_private_numbers¥sz#DSABackend.load_dsa_private_numberscCsdS)z2 Returns a DSAPublicKey provider. Nr)rr*rrr Úload_dsa_public_numbers«sz"DSABackend.load_dsa_public_numberscCsdS)z3 Returns a DSAParameters provider. Nr)rr*rrr Úload_dsa_parameter_numbers±sz%DSABackend.load_dsa_parameter_numbersN) rrrrrr.r0r1r2r6r7r8r9rrrr r-„sr-c@sneZdZejdd„ƒZejdd„ƒZejdd„ƒZejdd„ƒZejd d „ƒZ ejd d „ƒZ ejd d„ƒZ dS)ÚEllipticCurveBackendcCsdS)z Returns True if the backend supports the named elliptic curve with the specified signature algorithm. Nr)rZsignature_algorithmÚcurverrr Ú,elliptic_curve_signature_algorithm_supportedºszAEllipticCurveBackend.elliptic_curve_signature_algorithm_supportedcCsdS)zP Returns True if the backend supports the named elliptic curve. Nr)rr;rrr Úelliptic_curve_supportedÃsz-EllipticCurveBackend.elliptic_curve_supportedcCsdS)zW Return an object conforming to the EllipticCurvePrivateKey interface. Nr)rr;rrr Ú#generate_elliptic_curve_private_keyÉsz8EllipticCurveBackend.generate_elliptic_curve_private_keycCsdS)zT Return an EllipticCurvePublicKey provider using the given numbers. Nr)rr*rrr Ú"load_elliptic_curve_public_numbersÏsz7EllipticCurveBackend.load_elliptic_curve_public_numberscCsdS)zU Return an EllipticCurvePrivateKey provider using the given numbers. Nr)rr*rrr Ú#load_elliptic_curve_private_numbersÕsz8EllipticCurveBackend.load_elliptic_curve_private_numberscCsdS)zV Returns whether the exchange algorithm is supported by this backend. Nr)rrr;rrr Ú+elliptic_curve_exchange_algorithm_supportedÛsz@EllipticCurveBackend.elliptic_curve_exchange_algorithm_supportedcCsdS)zL Compute the private key given the private value and curve. Nr)rZ private_valuer;rrr Ú!derive_elliptic_curve_private_keyász6EllipticCurveBackend.derive_elliptic_curve_private_keyN) rrrrrr<r=r>r?r@rArBrrrr r:¸s r:c@s6eZdZejdd„ƒZejdd„ƒZejdd„ƒZdS)ÚPEMSerializationBackendcCsdS)zz Loads a private key from PEM encoded data, using the provided password if the data is encrypted. Nr)rÚdataÚpasswordrrr Úload_pem_private_keyêsz,PEMSerializationBackend.load_pem_private_keycCsdS)z; Loads a public key from PEM encoded data. Nr)rrDrrr Úload_pem_public_keyñsz+PEMSerializationBackend.load_pem_public_keycCsdS)zC Load encryption parameters from PEM encoded data. Nr)rrDrrr Úload_pem_parameters÷sz+PEMSerializationBackend.load_pem_parametersN)rrrrrrFrGrHrrrr rCèsrCc@s6eZdZejdd„ƒZejdd„ƒZejdd„ƒZdS)ÚDERSerializationBackendcCsdS)zy Loads a private key from DER encoded data. Uses the provided password if the data is encrypted. Nr)rrDrErrr Úload_der_private_keysz,DERSerializationBackend.load_der_private_keycCsdS)z; Loads a public key from DER encoded data. Nr)rrDrrr Úload_der_public_keysz+DERSerializationBackend.load_der_public_keycCsdS)zC Load encryption parameters from DER encoded data. Nr)rrDrrr Úload_der_parameters sz+DERSerializationBackend.load_der_parametersN)rrrrrrJrKrLrrrr rIþsrIc@sŠeZdZejdd„ƒZejdd„ƒZejdd„ƒZejdd„ƒZejd d „ƒZ ejd d „ƒZ ejd d„ƒZ ejdd„ƒZ ejdd„ƒZ dS)Ú X509BackendcCsdS)zB Load an X.509 certificate from PEM encoded data. Nr)rrDrrr Úload_pem_x509_certificatesz%X509Backend.load_pem_x509_certificatecCsdS)zB Load an X.509 certificate from DER encoded data. Nr)rrDrrr Úload_der_x509_certificatesz%X509Backend.load_der_x509_certificatecCsdS)z: Load an X.509 CSR from DER encoded data. Nr)rrDrrr Úload_der_x509_csr"szX509Backend.load_der_x509_csrcCsdS)z: Load an X.509 CSR from PEM encoded data. Nr)rrDrrr Úload_pem_x509_csr(szX509Backend.load_pem_x509_csrcCsdS)zI Create and sign an X.509 CSR from a CSR builder object. Nr)rÚbuilderÚ private_keyrrrr Úcreate_x509_csr.szX509Backend.create_x509_csrcCsdS)zX Create and sign an X.509 certificate from a CertificateBuilder object. Nr)rrRrSrrrr Úcreate_x509_certificate4sz#X509Backend.create_x509_certificatecCsdS)z| Create and sign an X.509 CertificateRevocationList from a CertificateRevocationListBuilder object. Nr)rrRrSrrrr Úcreate_x509_crl:szX509Backend.create_x509_crlcCsdS)ze Create a RevokedCertificate object from a RevokedCertificateBuilder object. Nr)rrRrrr Úcreate_x509_revoked_certificateAsz+X509Backend.create_x509_revoked_certificatecCsdS)zG Compute the DER encoded bytes of an X509 Name object. Nr)rÚnamerrr Úx509_name_bytesHszX509Backend.x509_name_bytesN)rrrrrrNrOrPrQrTrUrVrWrYrrrr rMsrMc@s~eZdZejdd„ƒZejdd„ƒZejdd„ƒZejdd„ƒZejd d „ƒZ ejd d „ƒZ ejddd„ƒZ ejdd„ƒZ d S)Ú DHBackendcCsdS)z„ Generate a DHParameters instance with a modulus of key_size bits. Using the given generator. Often 2 or 5. Nr)rÚ generatorr&rrr Úgenerate_dh_parametersQsz DHBackend.generate_dh_parameterscCsdS)zd Generate a DHPrivateKey instance with parameters as a DHParameters object. Nr)rr/rrr Úgenerate_dh_private_keyXsz!DHBackend.generate_dh_private_keycCsdS)zx Generate a DHPrivateKey instance using key size only. Using the given generator. Often 2 or 5. Nr)rr[r&rrr Ú&generate_dh_private_key_and_parameters_sz0DHBackend.generate_dh_private_key_and_parameterscCsdS)z; Load a DHPrivateKey from DHPrivateNumbers Nr)rr*rrr Úload_dh_private_numbersfsz!DHBackend.load_dh_private_numberscCsdS)z: Load a DHPublicKey from DHPublicNumbers. Nr)rr*rrr Úload_dh_public_numberslsz DHBackend.load_dh_public_numberscCsdS)z< Load DHParameters from DHParameterNumbers. Nr)rr*rrr Úload_dh_parameter_numbersrsz#DHBackend.load_dh_parameter_numbersNcCsdS)zV Returns whether the backend supports DH with these parameter values. Nr)rr3r5r4rrr Údh_parameters_supportedxsz!DHBackend.dh_parameters_supportedcCsdS)zw Returns True if the backend supports the serialization of DH objects with subgroup order (q). Nr)rrrr Údh_x942_serialization_supported~sz)DHBackend.dh_x942_serialization_supported)N) rrrrrr\r]r^r_r`rarbrcrrrr rZOs rZc@seZdZejdd„ƒZdS)Ú ScryptBackendcCsdS)zG Return bytes derived from provided Scrypt parameters. Nr)rr"r!r ÚnÚrr3rrr Ú derive_scryptˆszScryptBackend.derive_scryptN)rrrrrrgrrrr rd†srd)Z __future__rrrrZsixZ add_metaclassÚABCMetaÚobjectrrrrrr$r-r:rCrIrMrZrdrrrr Ús8"3/:6