£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
3
l_*                 @   s  d dl mZmZmZ d dlZd dlZejejG dd deZ	ejejG dd deZ
ejejG dd deZejejG d	d
 d
eZejejG dd deZejejG dd deZejejG dd deZejejG dd deZejejG dd deZejejG dd deZejejG dd deZejejG dd deZejejG dd deZdS )    )absolute_importdivisionprint_functionNc               @   s6   e Zd Zejdd Zejdd Zejdd ZdS )CipherBackendc             C   s   dS )zI
        Return True if the given cipher and mode are supported.
        N )selfciphermoder   r   "/usr/lib64/python3.6/interfaces.pycipher_supported   s    zCipherBackend.cipher_supportedc             C   s   dS )zF
        Get a CipherContext that can be used for encryption.
        Nr   )r   r   r	   r   r   r
   create_symmetric_encryption_ctx   s    z-CipherBackend.create_symmetric_encryption_ctxc             C   s   dS )zF
        Get a CipherContext that can be used for decryption.
        Nr   )r   r   r	   r   r   r
   create_symmetric_decryption_ctx   s    z-CipherBackend.create_symmetric_decryption_ctxN)__name__
__module____qualname__abcabstractmethodr   r   r   r   r   r   r
   r      s   r   c               @   s(   e Zd Zejdd Zejdd ZdS )HashBackendc             C   s   dS )zQ
        Return True if the hash algorithm is supported by this backend.
        Nr   )r   	algorithmr   r   r
   hash_supported#   s    zHashBackend.hash_supportedc             C   s   dS )zH
        Create a HashContext for calculating a message digest.
        Nr   )r   r   r   r   r
   create_hash_ctx)   s    zHashBackend.create_hash_ctxN)r   r   r   r   r   r   r   r   r   r   r
   r   !   s   r   c               @   s(   e Zd Zejdd Zejdd ZdS )HMACBackendc             C   s   dS )zb
        Return True if the hash algorithm is supported for HMAC by this
        backend.
        Nr   )r   r   r   r   r
   hmac_supported2   s    zHMACBackend.hmac_supportedc             C   s   dS )zQ
        Create a context for calculating a message authentication code.
        Nr   )r   keyr   r   r   r
   create_hmac_ctx9   s    zHMACBackend.create_hmac_ctxN)r   r   r   r   r   r   r   r   r   r   r
   r   0   s   r   c               @   s(   e Zd Zejdd Zejdd ZdS )CMACBackendc             C   s   dS )zX
        Returns True if the block cipher is supported for CMAC by this backend
        Nr   )r   r   r   r   r
   cmac_algorithm_supportedB   s    z$CMACBackend.cmac_algorithm_supportedc             C   s   dS )zQ
        Create a context for calculating a message authentication code.
        Nr   )r   r   r   r   r
   create_cmac_ctxH   s    zCMACBackend.create_cmac_ctxN)r   r   r   r   r   r   r   r   r   r   r
   r   @   s   r   c               @   s(   e Zd Zejdd Zejdd ZdS )PBKDF2HMACBackendc             C   s   dS )zd
        Return True if the hash algorithm is supported for PBKDF2 by this
        backend.
        Nr   )r   r   r   r   r
   pbkdf2_hmac_supportedQ   s    z'PBKDF2HMACBackend.pbkdf2_hmac_supportedc             C   s   dS )zN
        Return length bytes derived from provided PBKDF2 parameters.
        Nr   )r   r   lengthsaltZ
iterationskey_materialr   r   r
   derive_pbkdf2_hmacX   s    z$PBKDF2HMACBackend.derive_pbkdf2_hmacN)r   r   r   r   r   r   r#   r   r   r   r
   r   O   s   r   c               @   sR   e Zd Zejdd Zejdd Zejdd Zejdd Zejd	d
 Z	dS )
RSABackendc             C   s   dS )zq
        Generate an RSAPrivateKey instance with public_exponent and a modulus
        of key_size bits.
        Nr   )r   public_exponentkey_sizer   r   r
   generate_rsa_private_keyc   s    z#RSABackend.generate_rsa_private_keyc             C   s   dS )zQ
        Returns True if the backend supports the given padding options.
        Nr   )r   Zpaddingr   r   r
   rsa_padding_supportedj   s    z RSABackend.rsa_padding_supportedc             C   s   dS )zg
        Returns True if the backend supports the given parameters for key
        generation.
        Nr   )r   r%   r&   r   r   r
   !generate_rsa_parameters_supportedp   s    z,RSABackend.generate_rsa_parameters_supportedc             C   s   dS )z4
        Returns an RSAPrivateKey provider.
        Nr   )r   numbersr   r   r
   load_rsa_private_numbersw   s    z#RSABackend.load_rsa_private_numbersc             C   s   dS )z3
        Returns an RSAPublicKey provider.
        Nr   )r   r*   r   r   r
   load_rsa_public_numbers}   s    z"RSABackend.load_rsa_public_numbersN)
r   r   r   r   r   r'   r(   r)   r+   r,   r   r   r   r
   r$   a   s
   r$   c               @   s|   e Zd Zejdd Zejdd Zejdd Zejdd Zejd	d
 Z	ejdd Z
ejdd Zejdd ZdS )
DSABackendc             C   s   dS )zT
        Generate a DSAParameters instance with a modulus of key_size bits.
        Nr   )r   r&   r   r   r
   generate_dsa_parameters   s    z"DSABackend.generate_dsa_parametersc             C   s   dS )zf
        Generate a DSAPrivateKey instance with parameters as a DSAParameters
        object.
        Nr   )r   
parametersr   r   r
   generate_dsa_private_key   s    z#DSABackend.generate_dsa_private_keyc             C   s   dS )zH
        Generate a DSAPrivateKey instance using key size only.
        Nr   )r   r&   r   r   r
   'generate_dsa_private_key_and_parameters   s    z2DSABackend.generate_dsa_private_key_and_parametersc             C   s   dS )zX
        Return True if the hash algorithm is supported by the backend for DSA.
        Nr   )r   r   r   r   r
   dsa_hash_supported   s    zDSABackend.dsa_hash_supportedc             C   s   dS )zU
        Return True if the parameters are supported by the backend for DSA.
        Nr   )r   pqgr   r   r
   dsa_parameters_supported   s    z#DSABackend.dsa_parameters_supportedc             C   s   dS )z3
        Returns a DSAPrivateKey provider.
        Nr   )r   r*   r   r   r
   load_dsa_private_numbers   s    z#DSABackend.load_dsa_private_numbersc             C   s   dS )z2
        Returns a DSAPublicKey provider.
        Nr   )r   r*   r   r   r
   load_dsa_public_numbers   s    z"DSABackend.load_dsa_public_numbersc             C   s   dS )z3
        Returns a DSAParameters provider.
        Nr   )r   r*   r   r   r
   load_dsa_parameter_numbers   s    z%DSABackend.load_dsa_parameter_numbersN)r   r   r   r   r   r.   r0   r1   r2   r6   r7   r8   r9   r   r   r   r
   r-      s   r-   c               @   sn   e Zd Zejdd Zejdd Zejdd Zejdd Zejd	d
 Z	ejdd Z
ejdd ZdS )EllipticCurveBackendc             C   s   dS )z
        Returns True if the backend supports the named elliptic curve with the
        specified signature algorithm.
        Nr   )r   Zsignature_algorithmcurver   r   r
   ,elliptic_curve_signature_algorithm_supported   s    zAEllipticCurveBackend.elliptic_curve_signature_algorithm_supportedc             C   s   dS )zP
        Returns True if the backend supports the named elliptic curve.
        Nr   )r   r;   r   r   r
   elliptic_curve_supported   s    z-EllipticCurveBackend.elliptic_curve_supportedc             C   s   dS )zW
        Return an object conforming to the EllipticCurvePrivateKey interface.
        Nr   )r   r;   r   r   r
   #generate_elliptic_curve_private_key   s    z8EllipticCurveBackend.generate_elliptic_curve_private_keyc             C   s   dS )zT
        Return an EllipticCurvePublicKey provider using the given numbers.
        Nr   )r   r*   r   r   r
   "load_elliptic_curve_public_numbers   s    z7EllipticCurveBackend.load_elliptic_curve_public_numbersc             C   s   dS )zU
        Return an EllipticCurvePrivateKey provider using the given numbers.
        Nr   )r   r*   r   r   r
   #load_elliptic_curve_private_numbers   s    z8EllipticCurveBackend.load_elliptic_curve_private_numbersc             C   s   dS )zV
        Returns whether the exchange algorithm is supported by this backend.
        Nr   )r   r   r;   r   r   r
   +elliptic_curve_exchange_algorithm_supported   s    z@EllipticCurveBackend.elliptic_curve_exchange_algorithm_supportedc             C   s   dS )zL
        Compute the private key given the private value and curve.
        Nr   )r   Zprivate_valuer;   r   r   r
   !derive_elliptic_curve_private_key   s    z6EllipticCurveBackend.derive_elliptic_curve_private_keyN)r   r   r   r   r   r<   r=   r>   r?   r@   rA   rB   r   r   r   r
   r:      s   	r:   c               @   s6   e Zd Zejdd Zejdd Zejdd ZdS )PEMSerializationBackendc             C   s   dS )zz
        Loads a private key from PEM encoded data, using the provided password
        if the data is encrypted.
        Nr   )r   datapasswordr   r   r
   load_pem_private_key   s    z,PEMSerializationBackend.load_pem_private_keyc             C   s   dS )z;
        Loads a public key from PEM encoded data.
        Nr   )r   rD   r   r   r
   load_pem_public_key   s    z+PEMSerializationBackend.load_pem_public_keyc             C   s   dS )zC
        Load encryption parameters from PEM encoded data.
        Nr   )r   rD   r   r   r
   load_pem_parameters   s    z+PEMSerializationBackend.load_pem_parametersN)r   r   r   r   r   rF   rG   rH   r   r   r   r
   rC      s   rC   c               @   s6   e Zd Zejdd Zejdd Zejdd ZdS )DERSerializationBackendc             C   s   dS )zy
        Loads a private key from DER encoded data. Uses the provided password
        if the data is encrypted.
        Nr   )r   rD   rE   r   r   r
   load_der_private_key   s    z,DERSerializationBackend.load_der_private_keyc             C   s   dS )z;
        Loads a public key from DER encoded data.
        Nr   )r   rD   r   r   r
   load_der_public_key  s    z+DERSerializationBackend.load_der_public_keyc             C   s   dS )zC
        Load encryption parameters from DER encoded data.
        Nr   )r   rD   r   r   r
   load_der_parameters  s    z+DERSerializationBackend.load_der_parametersN)r   r   r   r   r   rJ   rK   rL   r   r   r   r
   rI      s   rI   c               @   s   e Zd Zejdd Zejdd Zejdd Zejdd Zejd	d
 Z	ejdd Z
ejdd Zejdd Zejdd ZdS )X509Backendc             C   s   dS )zB
        Load an X.509 certificate from PEM encoded data.
        Nr   )r   rD   r   r   r
   load_pem_x509_certificate  s    z%X509Backend.load_pem_x509_certificatec             C   s   dS )zB
        Load an X.509 certificate from DER encoded data.
        Nr   )r   rD   r   r   r
   load_der_x509_certificate  s    z%X509Backend.load_der_x509_certificatec             C   s   dS )z:
        Load an X.509 CSR from DER encoded data.
        Nr   )r   rD   r   r   r
   load_der_x509_csr"  s    zX509Backend.load_der_x509_csrc             C   s   dS )z:
        Load an X.509 CSR from PEM encoded data.
        Nr   )r   rD   r   r   r
   load_pem_x509_csr(  s    zX509Backend.load_pem_x509_csrc             C   s   dS )zI
        Create and sign an X.509 CSR from a CSR builder object.
        Nr   )r   builderprivate_keyr   r   r   r
   create_x509_csr.  s    zX509Backend.create_x509_csrc             C   s   dS )zX
        Create and sign an X.509 certificate from a CertificateBuilder object.
        Nr   )r   rR   rS   r   r   r   r
   create_x509_certificate4  s    z#X509Backend.create_x509_certificatec             C   s   dS )z|
        Create and sign an X.509 CertificateRevocationList from a
        CertificateRevocationListBuilder object.
        Nr   )r   rR   rS   r   r   r   r
   create_x509_crl:  s    zX509Backend.create_x509_crlc             C   s   dS )ze
        Create a RevokedCertificate object from a RevokedCertificateBuilder
        object.
        Nr   )r   rR   r   r   r
   create_x509_revoked_certificateA  s    z+X509Backend.create_x509_revoked_certificatec             C   s   dS )zG
        Compute the DER encoded bytes of an X509 Name object.
        Nr   )r   namer   r   r
   x509_name_bytesH  s    zX509Backend.x509_name_bytesN)r   r   r   r   r   rN   rO   rP   rQ   rT   rU   rV   rW   rY   r   r   r   r
   rM     s   rM   c               @   s~   e Zd Zejdd Zejdd Zejdd Zejdd Zejd	d
 Z	ejdd Z
ejdddZejdd ZdS )	DHBackendc             C   s   dS )z
        Generate a DHParameters instance with a modulus of key_size bits.
        Using the given generator. Often 2 or 5.
        Nr   )r   	generatorr&   r   r   r
   generate_dh_parametersQ  s    z DHBackend.generate_dh_parametersc             C   s   dS )zd
        Generate a DHPrivateKey instance with parameters as a DHParameters
        object.
        Nr   )r   r/   r   r   r
   generate_dh_private_keyX  s    z!DHBackend.generate_dh_private_keyc             C   s   dS )zx
        Generate a DHPrivateKey instance using key size only.
        Using the given generator. Often 2 or 5.
        Nr   )r   r[   r&   r   r   r
   &generate_dh_private_key_and_parameters_  s    z0DHBackend.generate_dh_private_key_and_parametersc             C   s   dS )z;
        Load a DHPrivateKey from DHPrivateNumbers
        Nr   )r   r*   r   r   r
   load_dh_private_numbersf  s    z!DHBackend.load_dh_private_numbersc             C   s   dS )z:
        Load a DHPublicKey from DHPublicNumbers.
        Nr   )r   r*   r   r   r
   load_dh_public_numbersl  s    z DHBackend.load_dh_public_numbersc             C   s   dS )z<
        Load DHParameters from DHParameterNumbers.
        Nr   )r   r*   r   r   r
   load_dh_parameter_numbersr  s    z#DHBackend.load_dh_parameter_numbersNc             C   s   dS )zV
        Returns whether the backend supports DH with these parameter values.
        Nr   )r   r3   r5   r4   r   r   r
   dh_parameters_supportedx  s    z!DHBackend.dh_parameters_supportedc             C   s   dS )zw
        Returns True if the backend supports the serialization of DH objects
        with subgroup order (q).
        Nr   )r   r   r   r
   dh_x942_serialization_supported~  s    z)DHBackend.dh_x942_serialization_supported)N)r   r   r   r   r   r\   r]   r^   r_   r`   ra   rb   rc   r   r   r   r
   rZ   O  s   rZ   c               @   s   e Zd Zejdd ZdS )ScryptBackendc             C   s   dS )zG
        Return bytes derived from provided Scrypt parameters.
        Nr   )r   r"   r!   r    nrr3   r   r   r
   derive_scrypt  s    zScryptBackend.derive_scryptN)r   r   r   r   r   rg   r   r   r   r
   rd     s   rd   )Z
__future__r   r   r   r   ZsixZadd_metaclassABCMetaobjectr   r   r   r   r   r$   r-   r:   rC   rI   rM   rZ   rd   r   r   r   r
   <module>   s8   "3/:6