o
    <‘ðiÂ/  ã                   @  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ÚmldsaÚfrom_mldsa44_public_bytes©Úclsr
   r   © r   ún/root/parts/websockify/install/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ÿ