o
    j/                     @  sX  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 dejd	Zeed
r:eejj G dd dejd	Zeed
rPeejj G dd dejd	Zeed
rfeejj G dd dejd	Zeed
r|eejj G dd dejd	Zeed
reejj G dd dejd	Zeed
reejj dS dS )    )annotationsN)UnsupportedAlgorithm_Reasons)openssl)_serialization)Bufferc                   @  ~   e Zd Zed!ddZejd"d
dZejd#ddZej	d$d%ddZ	ejd&ddZ
ejd'ddZejd(dd ZdS ))MLDSA44PublicKeydatabytesreturnc                 C  ,   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    r   u/var/www/html/fyndo/pharma/fyndo/venv/lib/python3.10/site-packages/cryptography/hazmat/primitives/asymmetric/mldsa.pyfrom_public_bytes      z"MLDSA44PublicKey.from_public_bytesencoding_serialization.Encodingformat_serialization.PublicFormatc                 C     dS z9
        The serialized bytes of the public key.
        Nr   selfr   r   r   r   r   public_bytes       zMLDSA44PublicKey.public_bytesc                 C  r!   )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$   r   r   r   public_bytes_raw&   r&   z!MLDSA44PublicKey.public_bytes_rawN	signaturer   contextBuffer | NoneNonec                 C  r!   z'
        Verify the signature.
        Nr   r$   r)   r
   r*   r   r   r   verify/   r&   zMLDSA44PublicKey.verifyotherobjectboolc                 C  r!   z"
        Checks equality.
        Nr   r$   r0   r   r   r   __eq__:   r&   zMLDSA44PublicKey.__eq__c                 C  r!   z!
        Returns a copy.
        Nr   r'   r   r   r   __copy__@   r&   zMLDSA44PublicKey.__copy__memodictc                 C  r!   z&
        Returns a deep copy.
        Nr   r$   r8   r   r   r   __deepcopy__F   r&   zMLDSA44PublicKey.__deepcopy__)r
   r   r   r	   r   r   r   r    r   r   r   r   Nr)   r   r
   r   r*   r+   r   r,   r0   r1   r   r2   r   r	   )r8   r9   r   r	   __name__
__module____qualname__classmethodr   abcabstractmethodr%   r(   r/   r5   r7   r<   r   r   r   r   r	           	
r	   )	metaclassr   c                   @     e Zd Zed!ddZed"ddZejd#d	d
Zejd$ddZ	ejd%ddZ
ejd&d'ddZejd!ddZejd(dd ZdS ))MLDSA44PrivateKeyr   c                 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   r   r   r   generateR      
zMLDSA44PrivateKey.generater
   r   c                 C  r   r   )	r   r   r   r   r   r   r   r   from_mldsa44_seed_bytesr   r   r   r   from_seed_bytes^   r   z!MLDSA44PrivateKey.from_seed_bytesr	   c                 C  r!   )zD
        The MLDSA44PublicKey derived from the private key.
        Nr   r'   r   r   r   
public_keyj   r&   zMLDSA44PrivateKey.public_keyr   r   r   _serialization.PrivateFormatencryption_algorithm)_serialization.KeySerializationEncryptionr   c                 C  r!   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   rW   r   r   r   private_bytesp   r&   zMLDSA44PrivateKey.private_bytesc                 C  r!   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'   r   r   r   private_bytes_raw~   r&   z#MLDSA44PrivateKey.private_bytes_rawNr*   r+   c                 C  r!   z!
        Signs the data.
        Nr   r$   r
   r*   r   r   r   sign   r&   zMLDSA44PrivateKey.signc                 C  r!   r6   r   r'   r   r   r   r7      r&   zMLDSA44PrivateKey.__copy__r8   r9   c                 C  r!   r:   r   r;   r   r   r   r<      r&   zMLDSA44PrivateKey.__deepcopy__)r   rM   )r
   r   r   rM   rB   r   r   r   rV   rW   rX   r   r   r>   r?   r
   r   r*   r+   r   r   )r8   r9   r   rM   rD   rE   rF   rG   rQ   rT   rH   rI   rU   r[   r]   r`   r7   r<   r   r   r   r   rM   Q   "    rM   c                   @  r   ))MLDSA65PublicKeyr
   r   r   c                 C  r   Nr   r   z+ML-DSA-65 is not supported by this backend.)	r   r   r   r   r   r   r   r   from_mldsa65_public_bytesr   r   r   r   r      r   z"MLDSA65PublicKey.from_public_bytesr   r   r   r    c                 C  r!   r"   r   r#   r   r   r   r%      r&   zMLDSA65PublicKey.public_bytesc                 C  r!   )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'   r   r   r   r(      r&   z!MLDSA65PublicKey.public_bytes_rawNr)   r   r*   r+   r,   c                 C  r!   r-   r   r.   r   r   r   r/      r&   zMLDSA65PublicKey.verifyr0   r1   r2   c                 C  r!   r3   r   r4   r   r   r   r5      r&   zMLDSA65PublicKey.__eq__c                 C  r!   r6   r   r'   r   r   r   r7      r&   zMLDSA65PublicKey.__copy__r8   r9   c                 C  r!   r:   r   r;   r   r   r   r<      r&   zMLDSA65PublicKey.__deepcopy__)r
   r   r   re   r=   r>   r?   r@   rA   r   re   )r8   r9   r   re   rC   r   r   r   r   re      rJ   re   c                   @  rL   ))MLDSA65PrivateKeyr   c                 C  rN   rf   )	r   r   r   r   r   r   r   r   generate_mldsa65_keyrP   r   r   r   rQ      rR   zMLDSA65PrivateKey.generater
   r   c                 C  r   rf   )	r   r   r   r   r   r   r   r   from_mldsa65_seed_bytesr   r   r   r   rT      r   z!MLDSA65PrivateKey.from_seed_bytesre   c                 C  r!   )zD
        The MLDSA65PublicKey derived from the private key.
        Nr   r'   r   r   r   rU      r&   zMLDSA65PrivateKey.public_keyr   r   r   rV   rW   rX   r   c                 C  r!   rY   r   rZ   r   r   r   r[      r&   zMLDSA65PrivateKey.private_bytesc                 C  r!   r\   r   r'   r   r   r   r]     r&   z#MLDSA65PrivateKey.private_bytes_rawNr*   r+   c                 C  r!   r^   r   r_   r   r   r   r`     r&   zMLDSA65PrivateKey.signc                 C  r!   r6   r   r'   r   r   r   r7     r&   zMLDSA65PrivateKey.__copy__r8   r9   c                 C  r!   r:   r   r;   r   r   r   r<   "  r&   zMLDSA65PrivateKey.__deepcopy__)r   ri   )r
   r   r   ri   rh   ra   r>   r?   rb   )r8   r9   r   ri   rc   r   r   r   r   ri      rd   ri   c                   @  r   ))MLDSA87PublicKeyr
   r   r   c                 C  r   Nr   r   z+ML-DSA-87 is not supported by this backend.)	r   r   r   r   r   r   r   r   from_mldsa87_public_bytesr   r   r   r   r   .  r   z"MLDSA87PublicKey.from_public_bytesr   r   r   r    c                 C  r!   r"   r   r#   r   r   r   r%   :  r&   zMLDSA87PublicKey.public_bytesc                 C  r!   )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'   r   r   r   r(   D  r&   z!MLDSA87PublicKey.public_bytes_rawNr)   r   r*   r+   r,   c                 C  r!   r-   r   r.   r   r   r   r/   M  r&   zMLDSA87PublicKey.verifyr0   r1   r2   c                 C  r!   r3   r   r4   r   r   r   r5   X  r&   zMLDSA87PublicKey.__eq__c                 C  r!   r6   r   r'   r   r   r   r7   ^  r&   zMLDSA87PublicKey.__copy__r8   r9   c                 C  r!   r:   r   r;   r   r   r   r<   d  r&   zMLDSA87PublicKey.__deepcopy__)r
   r   r   rl   r=   r>   r?   r@   rA   r   rl   )r8   r9   r   rl   rC   r   r   r   r   rl   -  rJ   rl   c                   @  rL   ))MLDSA87PrivateKeyr   c                 C  rN   rm   )	r   r   r   r   r   r   r   r   generate_mldsa87_keyrP   r   r   r   rQ   p  rR   zMLDSA87PrivateKey.generater
   r   c                 C  r   rm   )	r   r   r   r   r   r   r   r   from_mldsa87_seed_bytesr   r   r   r   rT   |  r   z!MLDSA87PrivateKey.from_seed_bytesrl   c                 C  r!   )zD
        The MLDSA87PublicKey derived from the private key.
        Nr   r'   r   r   r   rU     r&   zMLDSA87PrivateKey.public_keyr   r   r   rV   rW   rX   r   c                 C  r!   rY   r   rZ   r   r   r   r[     r&   zMLDSA87PrivateKey.private_bytesc                 C  r!   r\   r   r'   r   r   r   r]     r&   z#MLDSA87PrivateKey.private_bytes_rawNr*   r+   c                 C  r!   r^   r   r_   r   r   r   r`     r&   zMLDSA87PrivateKey.signc                 C  r!   r6   r   r'   r   r   r   r7     r&   zMLDSA87PrivateKey.__copy__r8   r9   c                 C  r!   r:   r   r;   r   r   r   r<     r&   zMLDSA87PrivateKey.__deepcopy__)r   rp   )r
   r   r   rp   ro   ra   r>   r?   rb   )r8   r9   r   rp   rc   r   r   r   r   rp   o  rd   rp   )
__future__r   rH   cryptography.exceptionsr   r   "cryptography.hazmat.bindings._rustr   r   cryptography.hazmat.primitivesr   cryptography.utilsr   ABCMetar	   hasattrregisterr   rM   re   ri   rl   rp   r   r   r   r   <module>   s2   
>
I
>
I
>
I