
    : j/                    F   d dl mZ d dlZd dlmZmZ d dlmZ d dl	m
Z
 d dlmZ  G d dej        	          Z eed
          re                    ej        j                    G d dej        	          Z eed
          re                    ej        j                    G d dej        	          Z eed
          re                    ej        j                    G d dej        	          Z eed
          re                    ej        j                    G d dej        	          Z eed
          re                    ej        j                    G d dej        	          Z eed
          r!e                    ej        j                   dS dS )    )annotationsN)UnsupportedAlgorithm_Reasons)openssl)_serialization)Bufferc                      e Zd Zedd            Zej        dd	            Zej        dd
            Zej        	 ddd            Z	ej        dd            Z
ej        d d            Zej        d!d            ZdS )"MLDSA44PublicKeydatabytesreturnc                    ddl m} |                                st          dt          j                  t          j                            |          S Nr   backendz+ML-DSA-44 is not supported by this backend.)	,cryptography.hazmat.backends.openssl.backendr   mldsa_supportedr   r    UNSUPPORTED_PUBLIC_KEY_ALGORITHMrust_opensslmldsafrom_mldsa44_public_bytesclsr   r   s      C:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\venv\Lib\site-packages\cryptography/hazmat/primitives/asymmetric/mldsa.pyfrom_public_bytesz"MLDSA44PublicKey.from_public_bytes   \    HHHHHH&&(( 	&=9  
 !;;DAAA    encoding_serialization.Encodingformat_serialization.PublicFormatc                    dS z9
        The serialized bytes of the public key.
        N selfr   r    s      r   public_byteszMLDSA44PublicKey.public_bytes         r   c                    dS )z
        The raw bytes of the public key.
        Equivalent to public_bytes(Raw, Raw).

        The public key is 1,312 bytes for MLDSA-44.
        Nr$   r&   s    r   public_bytes_rawz!MLDSA44PublicKey.public_bytes_raw&   r(   r   N	signaturer   contextBuffer | NoneNonec                    dS z'
        Verify the signature.
        Nr$   r&   r,   r   r-   s       r   verifyzMLDSA44PublicKey.verify/   r(   r   otherobjectboolc                    dS z"
        Checks equality.
        Nr$   r&   r4   s     r   __eq__zMLDSA44PublicKey.__eq__:   r(   r   c                    dS z!
        Returns a copy.
        Nr$   r*   s    r   __copy__zMLDSA44PublicKey.__copy__@   r(   r   memodictc                    dS z&
        Returns a deep copy.
        Nr$   r&   r>   s     r   __deepcopy__zMLDSA44PublicKey.__deepcopy__F   r(   r   )r   r   r   r
   r   r   r    r!   r   r   r   r   Nr,   r   r   r   r-   r.   r   r/   r4   r5   r   r6   r   r
   )r>   r?   r   r
   __name__
__module____qualname__classmethodr   abcabstractmethodr'   r+   r3   r:   r=   rC   r$   r   r   r
   r
             	B 	B 	B [	B 	    	    	
 "&	     	   
 	   
 	     r   r
   )	metaclassr   c                     e Zd Zedd            Ze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ej        d d            ZdS )!MLDSA44PrivateKeyr   c                    ddl m} |                                st          dt          j                  t          j                                        S r   )	r   r   r   r   r   r   r   r   generate_mldsa44_keyr   r   s     r   generatezMLDSA44PrivateKey.generateR   Z    HHHHHH&&(( 	&=9  
 !66888r   r   r   c                    ddl m} |                                st          dt          j                  t          j                            |          S r   )	r   r   r   r   r   r   r   r   from_mldsa44_seed_bytesr   s      r   from_seed_bytesz!MLDSA44PrivateKey.from_seed_bytes^   \    HHHHHH&&(( 	&=9  
 !99$???r   r
   c                    dS )zD
        The MLDSA44PublicKey derived from the private key.
        Nr$   r*   s    r   
public_keyzMLDSA44PrivateKey.public_keyj   r(   r   r   r   r    _serialization.PrivateFormatencryption_algorithm)_serialization.KeySerializationEncryptionr   c                    dS z
        The serialized bytes of the private key.

        This method only returns the serialization of the seed form of the
        private key, never the expanded one.
        Nr$   r&   r   r    ra   s       r   private_byteszMLDSA44PrivateKey.private_bytesp   r(   r   c                    dS z
        The raw bytes of the private key.
        Equivalent to private_bytes(Raw, Raw, NoEncryption()).

        This method only returns the seed form of the private key (32 bytes).
        Nr$   r*   s    r   private_bytes_rawz#MLDSA44PrivateKey.private_bytes_raw~   r(   r   Nr-   r.   c                    dS z!
        Signs the data.
        Nr$   r&   r   r-   s      r   signzMLDSA44PrivateKey.sign   r(   r   c                    dS r<   r$   r*   s    r   r=   zMLDSA44PrivateKey.__copy__   r(   r   r>   r?   c                    dS rA   r$   rB   s     r   rC   zMLDSA44PrivateKey.__deepcopy__   r(   r   )r   rT   )r   r   r   rT   rI   r   r   r    r`   ra   rb   r   r   rE   rF   r   r   r-   r.   r   r   )r>   r?   r   rT   rK   rL   rM   rN   rX   r\   rO   rP   r_   rf   ri   rm   r=   rC   r$   r   r   rT   rT   Q   3       	9 	9 	9 [	9 	@ 	@ 	@ [	@ 	   
 	    	    	    
 	   
 	     r   rT   c                      e Zd Zedd            Zej        dd	            Zej        dd
            Zej        	 ddd            Z	ej        dd            Z
ej        d d            Zej        d!d            ZdS )"MLDSA65PublicKeyr   r   r   c                    ddl m} |                                st          dt          j                  t          j                            |          S Nr   r   z+ML-DSA-65 is not supported by this backend.)	r   r   r   r   r   r   r   r   from_mldsa65_public_bytesr   s      r   r   z"MLDSA65PublicKey.from_public_bytes   r   r   r   r   r    r!   c                    dS r#   r$   r%   s      r   r'   zMLDSA65PublicKey.public_bytes   r(   r   c                    dS )z
        The raw bytes of the public key.
        Equivalent to public_bytes(Raw, Raw).

        The public key is 1,952 bytes for MLDSA-65.
        Nr$   r*   s    r   r+   z!MLDSA65PublicKey.public_bytes_raw   r(   r   Nr,   r   r-   r.   r/   c                    dS r1   r$   r2   s       r   r3   zMLDSA65PublicKey.verify   r(   r   r4   r5   r6   c                    dS r8   r$   r9   s     r   r:   zMLDSA65PublicKey.__eq__   r(   r   c                    dS r<   r$   r*   s    r   r=   zMLDSA65PublicKey.__copy__   r(   r   r>   r?   c                    dS rA   r$   rB   s     r   rC   zMLDSA65PublicKey.__deepcopy__   r(   r   )r   r   r   ru   rD   rE   rF   rG   rH   r   ru   )r>   r?   r   ru   rJ   r$   r   r   ru   ru      rQ   r   ru   c                     e Zd Zedd            Ze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ej        d d            ZdS )!MLDSA65PrivateKeyr   c                    ddl m} |                                st          dt          j                  t          j                                        S rw   )	r   r   r   r   r   r   r   r   generate_mldsa65_keyrW   s     r   rX   zMLDSA65PrivateKey.generate   rY   r   r   r   c                    ddl m} |                                st          dt          j                  t          j                            |          S rw   )	r   r   r   r   r   r   r   r   from_mldsa65_seed_bytesr   s      r   r\   z!MLDSA65PrivateKey.from_seed_bytes   r]   r   ru   c                    dS )zD
        The MLDSA65PublicKey derived from the private key.
        Nr$   r*   s    r   r_   zMLDSA65PrivateKey.public_key   r(   r   r   r   r    r`   ra   rb   r   c                    dS rd   r$   re   s       r   rf   zMLDSA65PrivateKey.private_bytes   r(   r   c                    dS rh   r$   r*   s    r   ri   z#MLDSA65PrivateKey.private_bytes_raw  r(   r   Nr-   r.   c                    dS rk   r$   rl   s      r   rm   zMLDSA65PrivateKey.sign  r(   r   c                    dS r<   r$   r*   s    r   r=   zMLDSA65PrivateKey.__copy__  r(   r   r>   r?   c                    dS rA   r$   rB   s     r   rC   zMLDSA65PrivateKey.__deepcopy__"  r(   r   )r   r   )r   r   r   r   r   rp   rE   rF   rq   )r>   r?   r   r   rr   r$   r   r   r   r      rs   r   r   c                      e Zd Zedd            Zej        dd	            Zej        dd
            Zej        	 ddd            Z	ej        dd            Z
ej        d d            Zej        d!d            ZdS )"MLDSA87PublicKeyr   r   r   c                    ddl m} |                                st          dt          j                  t          j                            |          S Nr   r   z+ML-DSA-87 is not supported by this backend.)	r   r   r   r   r   r   r   r   from_mldsa87_public_bytesr   s      r   r   z"MLDSA87PublicKey.from_public_bytes.  r   r   r   r   r    r!   c                    dS r#   r$   r%   s      r   r'   zMLDSA87PublicKey.public_bytes:  r(   r   c                    dS )z
        The raw bytes of the public key.
        Equivalent to public_bytes(Raw, Raw).

        The public key is 2,592 bytes for MLDSA-87.
        Nr$   r*   s    r   r+   z!MLDSA87PublicKey.public_bytes_rawD  r(   r   Nr,   r   r-   r.   r/   c                    dS r1   r$   r2   s       r   r3   zMLDSA87PublicKey.verifyM  r(   r   r4   r5   r6   c                    dS r8   r$   r9   s     r   r:   zMLDSA87PublicKey.__eq__X  r(   r   c                    dS r<   r$   r*   s    r   r=   zMLDSA87PublicKey.__copy__^  r(   r   r>   r?   c                    dS rA   r$   rB   s     r   rC   zMLDSA87PublicKey.__deepcopy__d  r(   r   )r   r   r   r   rD   rE   rF   rG   rH   r   r   )r>   r?   r   r   rJ   r$   r   r   r   r   -  rQ   r   r   c                     e Zd Zedd            Ze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ej        d d            ZdS )!MLDSA87PrivateKeyr   c                    ddl m} |                                st          dt          j                  t          j                                        S r   )	r   r   r   r   r   r   r   r   generate_mldsa87_keyrW   s     r   rX   zMLDSA87PrivateKey.generatep  rY   r   r   r   c                    ddl m} |                                st          dt          j                  t          j                            |          S r   )	r   r   r   r   r   r   r   r   from_mldsa87_seed_bytesr   s      r   r\   z!MLDSA87PrivateKey.from_seed_bytes|  r]   r   r   c                    dS )zD
        The MLDSA87PublicKey derived from the private key.
        Nr$   r*   s    r   r_   zMLDSA87PrivateKey.public_key  r(   r   r   r   r    r`   ra   rb   r   c                    dS rd   r$   re   s       r   rf   zMLDSA87PrivateKey.private_bytes  r(   r   c                    dS rh   r$   r*   s    r   ri   z#MLDSA87PrivateKey.private_bytes_raw  r(   r   Nr-   r.   c                    dS rk   r$   rl   s      r   rm   zMLDSA87PrivateKey.sign  r(   r   c                    dS r<   r$   r*   s    r   r=   zMLDSA87PrivateKey.__copy__  r(   r   r>   r?   c                    dS rA   r$   rB   s     r   rC   zMLDSA87PrivateKey.__deepcopy__  r(   r   )r   r   )r   r   r   r   r   rp   rE   rF   rq   )r>   r?   r   r   rr   r$   r   r   r   r   o  rs   r   r   )
__future__r   rO   cryptography.exceptionsr   r   "cryptography.hazmat.bindings._rustr   r   cryptography.hazmat.primitivesr   cryptography.utilsr   ABCMetar
   hasattrregisterr   rT   ru   r   r   r   r$   r   r   <module>r      s  
 # " " " " " 



 B B B B B B B B F F F F F F 9 9 9 9 9 9 % % % % % %; ; ; ; ; ; ; ; ;| 7<!! Cl0ABBBF F F F F#+ F F F FR 7<!! E|1CDDD; ; ; ; ; ; ; ; ;| 7<!! Cl0ABBBF F F F F#+ F F F FR 7<!! E|1CDDD; ; ; ; ; ; ; ; ;| 7<!! Cl0ABBBF F F F F#+ F F F FR 7<!! E|1CDDDDDE Er   