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
ƒr’e ejj¡ G dd„ dejd	�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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ÚmldsaZfrom_mldsa44_public_bytes©Úclsr
   r   © r   úyC:\Users\psant\Downloads\Anu Raj Backend\school\venv\Lib\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#   r/   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#   r7   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+   ©r/   r0   r   r1   ©r   r	   )r7   r8   r   r	   ©Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   ÚabcÚabstractmethodr$   r'   r.   r4   r6   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   Z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   Z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   rT   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    r5   r   r&   r   r   r   r6   �   r%   zMLDSA44PrivateKey.__copy__r7   r8   c                 C  r    r9   r   r:   r   r   r   r;   “   r%   zMLDSA44PrivateKey.__deepcopy__)r   rL   )r
   r   r   rL   rA   ©r   r   r   rS   rT   rU   r   r   r=   r>   ©r
   r   r)   r*   r   r   )r7   r8   r   rL   ©rC   rD   rE   rF   rO   rQ   rG   rH   rR   rX   rZ   r]   r6   r;   r   r   r   r   rL   Q   ó"    rL   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   Z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.verifyr/   r0   r1   c                 C  r    r2   r   r3   r   r   r   r4   É   r%   zMLDSA65PublicKey.__eq__c                 C  r    r5   r   r&   r   r   r   r6   Ï   r%   zMLDSA65PublicKey.__copy__r7   r8   c                 C  r    r9   r   r:   r   r   r   r;   Õ   r%   zMLDSA65PublicKey.__deepcopy__)r
   r   r   rb   r<   r=   r>   r?   r@   ©r   rb   )r7   r8   r   rb   rB   r   r   r   r   rb   ž   rI   rb   c                   @  rK   ))ÚMLDSA65PrivateKeyr   c                 C  rM   rc   )	r   r   r   r   r   r   r   r   Zgenerate_mldsa65_keyrN   r   r   r   rO   á   rP   zMLDSA65PrivateKey.generater
   r   c                 C  r   rc   )	r   r   r   r   r   r   r   r   Zfrom_mldsa65_seed_bytesr   r   r   r   rQ   í   r   z!MLDSA65PrivateKey.from_seed_bytesrb   c                 C  r    )zD
        The MLDSA65PublicKey derived from the private key.
        Nr   r&   r   r   r   rR   ù   r%   zMLDSA65PrivateKey.public_keyr   r   r   rS   rT   rU   r   c                 C  r    rV   r   rW   r   r   r   rX   ÿ   r%   zMLDSA65PrivateKey.private_bytesc                 C  r    rY   r   r&   r   r   r   rZ     r%   z#MLDSA65PrivateKey.private_bytes_rawNr)   r*   c                 C  r    r[   r   r\   r   r   r   r]     r%   zMLDSA65PrivateKey.signc                 C  r    r5   r   r&   r   r   r   r6     r%   zMLDSA65PrivateKey.__copy__r7   r8   c                 C  r    r9   r   r:   r   r   r   r;   "  r%   zMLDSA65PrivateKey.__deepcopy__)r   re   )r
   r   r   re   rd   r^   r=   r>   r_   )r7   r8   r   re   r`   r   r   r   r   re   à   ra   re   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   Z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.verifyr/   r0   r1   c                 C  r    r2   r   r3   r   r   r   r4   X  r%   zMLDSA87PublicKey.__eq__c                 C  r    r5   r   r&   r   r   r   r6   ^  r%   zMLDSA87PublicKey.__copy__r7   r8   c                 C  r    r9   r   r:   r   r   r   r;   d  r%   zMLDSA87PublicKey.__deepcopy__)r
   r   r   rf   r<   r=   r>   r?   r@   ©r   rf   )r7   r8   r   rf   rB   r   r   r   r   rf   -  rI   rf   c                   @  rK   ))ÚMLDSA87PrivateKeyr   c                 C  rM   rg   )	r   r   r   r   r   r   r   r   Zgenerate_mldsa87_keyrN   r   r   r   rO   p  rP   zMLDSA87PrivateKey.generater
   r   c                 C  r   rg   )	r   r   r   r   r   r   r   r   Zfrom_mldsa87_seed_bytesr   r   r   r   rQ   |  r   z!MLDSA87PrivateKey.from_seed_bytesrf   c                 C  r    )zD
        The MLDSA87PublicKey derived from the private key.
        Nr   r&   r   r   r   rR   ˆ  r%   zMLDSA87PrivateKey.public_keyr   r   r   rS   rT   rU   r   c                 C  r    rV   r   rW   r   r   r   rX   Ž  r%   zMLDSA87PrivateKey.private_bytesc                 C  r    rY   r   r&   r   r   r   rZ   œ  r%   z#MLDSA87PrivateKey.private_bytes_rawNr)   r*   c                 C  r    r[   r   r\   r   r   r   r]   ¥  r%   zMLDSA87PrivateKey.signc                 C  r    r5   r   r&   r   r   r   r6   «  r%   zMLDSA87PrivateKey.__copy__r7   r8   c                 C  r    r9   r   r:   r   r   r   r;   ±  r%   zMLDSA87PrivateKey.__deepcopy__)r   ri   )r
   r   r   ri   rh   r^   r=   r>   r_   )r7   r8   r   ri   r`   r   r   r   r   ri   o  ra   ri   )Ú
__future__r   rG   Zcryptography.exceptionsr   r   Z"cryptography.hazmat.bindings._rustr   r   Zcryptography.hazmat.primitivesr   Zcryptography.utilsr   ÚABCMetar	   ÚhasattrÚregisterr   rL   rb   re   rf   ri   r   r   r   r   Ú<module>   s2   
>
I
>
I
>
Iÿ