Ë
    (üàgŽ0  ã                   ór   — d dl mZ d dlmZmZ d dlmZmZ d dlm	Z	m
Z
mZmZ d„ Zd„ Z G d„ de«      Zdd
„Zy	)é    )ÚInteger)ÚSHA512ÚSHAKE256)ÚbchrÚis_bytes)ÚEccKeyÚ	constructÚ_import_ed25519_public_keyÚ_import_ed448_public_keyc                 óÈ   — t        | «      dk(  rt        | «      \  }}d}n6t        | «      dk(  rt        | «      \  }}d}nt        dt        | «      z  «      ‚t	        |||¬«      S )a­  Create a new Ed25519 or Ed448 public key object,
    starting from the key encoded as raw ``bytes``,
    in the format described in RFC8032.

    Args:
      encoded (bytes):
        The EdDSA public key to import.
        It must be 32 bytes for Ed25519, and 57 bytes for Ed448.

    Returns:
      :class:`Crypto.PublicKey.EccKey` : a new ECC key object.

    Raises:
      ValueError: when the given key cannot be parsed.
    é    ÚEd25519é9   ÚEd448zNot an EdDSA key (%d bytes))ÚcurveÚpoint_xÚpoint_y)Úlenr
   r   Ú
ValueErrorr	   )ÚencodedÚxÚyÚ
curve_names       úT/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/Crypto/Signature/eddsa.pyÚimport_public_keyr   )   sf   € ô" ˆ7ƒ|�rÒÜ)¨'Ó2‰ˆˆ1Ø‰
Ü	ˆW‹˜Ò	Ü'¨Ó0‰ˆˆ1Ø‰
äÐ6¼¸W»ÑEÓFÐFÜ˜:¨q¸!Ô<Ð<ó    c                 óv   — t        | «      dk(  rd}nt        | «      dk(  rd}nt        d«      ‚t        | |¬«      S )a¯  Create a new Ed25519 or Ed448 private key object,
    starting from the key encoded as raw ``bytes``,
    in the format described in RFC8032.

    Args:
      encoded (bytes):
        The EdDSA private key to import.
        It must be 32 bytes for Ed25519, and 57 bytes for Ed448.

    Returns:
      :class:`Crypto.PublicKey.EccKey` : a new ECC key object.

    Raises:
      ValueError: when the given key cannot be parsed.
    r   Úed25519r   Úed448z8Incorrect length. Only EdDSA private keys are supported.)Úseedr   )r   r   r	   )r   r   s     r   Úimport_private_keyr!   E   sA   € ô" ˆ7ƒ|�rÒØ‰
Ü	ˆW‹˜Ò	Ø‰
äÐSÓTÐTô
 ˜'¨Ô4Ð4r   c                   ó@   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚEdDSASigSchemezlAn EdDSA signature object.
    Do not instantiate directly.
    Use :func:`Crypto.Signature.eddsa.new`.
    c                 ó€   — || _         || _        |j                  «       | _        |j                  j
                  | _        y)z…Create a new EdDSA object.

        Do not instantiate this object directly,
        use `Crypto.Signature.DSS.new` instead.
        N)Ú_keyÚ_contextÚ_export_eddsa_publicÚ_AÚ_curveÚorderÚ_order)ÚselfÚkeyÚcontexts      r   Ú__init__zEdDSASigScheme.__init__i   s3   € ð ˆŒ	ØˆŒØ×*Ñ*Ó,ˆŒØ—j‘j×&Ñ&ˆ�r   c                 ó6   — | j                   j                  «       S )zRReturn ``True`` if this signature object can be used
        for signing messages.)r%   Úhas_private)r,   s    r   Úcan_signzEdDSASigScheme.can_signu   s   € ð �y‰y×$Ñ$Ó&Ð&r   c                 óÔ  — | j                   j                  «       st        d«      ‚| j                   j                  dk(  r?t	        |t
        j                  «      }|st        |«      st        d«      ‚| j                  }nc| j                   j                  dk(  r?t	        |t        j                  «      }|st        |«      st        d«      ‚| j                  }nt        d«      ‚ |||«      S )aJ  Compute the EdDSA signature of a message.

        Args:
          msg_or_hash (bytes or a hash object):
            The message to sign (``bytes``, in case of *PureEdDSA*) or
            the hash that was carried out over the message (hash object, for *HashEdDSA*).

            The hash object must be :class:`Crypto.Hash.SHA512` for Ed25519,
            and :class:`Crypto.Hash.SHAKE256` object for Ed448.

        :return: The signature as ``bytes``. It is always 64 bytes for Ed25519, and 114 bytes for Ed448.
        :raise TypeError: if the EdDSA key has no private half
        zPrivate key is needed to signr   ú-'msg_or_hash' must be bytes of a SHA-512 hashr   ú.'msg_or_hash' must be bytes of a SHAKE256 hashúIncorrect curve for EdDSA)r%   r1   Ú	TypeErrorr   Ú
isinstancer   Ú
SHA512Hashr   Ú_sign_ed25519r   ÚSHAKE256_XOFÚ_sign_ed448r   )r,   Úmsg_or_hashÚphÚeddsa_sign_methods       r   ÚsignzEdDSASigScheme.sign{   sÃ   € ð �y‰y×$Ñ$Ô&ÜÐ;Ó<Ð<à�9‰9�?‰?˜iÒ'Ü˜K¬×):Ñ):Ó;ˆBÙœ( ;Ô/ÜÐ OÓPÐPØ $× 2Ñ 2Ñà�Y‰Y�_‰_ Ò'Ü˜K¬×)>Ñ)>Ó?ˆBÙœ( ;Ô/ÜÐ PÓQÐQØ $× 0Ñ 0Ñô Ð8Ó9Ð9á  ¨bÓ1Ð1r   c                 ó:  — | j                   s|rFt        |«      }dt        |«      z   t        t        | j                   «      «      z   | j                   z   }nd}|r|j	                  «       n|}t        j                  || j                  j                  z   |z   «      j	                  «       }t        j                  |d«      | j                  z  }t        || j                  j                  j                  z  ¬«      j                  «       }t        j                  ||z   | j                   z   |z   «      j	                  «       }	t        j                  |	d«      | j                  z  }
||
| j                  j"                  z  z   | j                  z  }||j%                  dd«      z   S )Nó    SigEd25519 no Ed25519 collisionsr   Úlittle©Úpointr   )r&   Úintr   r   Údigestr   Únewr%   Ú_prefixr   Ú
from_bytesr+   r   r)   ÚGr'   r(   ÚdÚto_bytes)r,   r=   r>   ÚflagÚdom2ÚPHMÚr_hashÚrÚR_pkÚk_hashÚkÚss               r   r:   zEdDSASigScheme._sign_ed25519ž   sF  € à�=Š=™BÜ�r“7ˆDà6¼¸d»ÑCÜœ˜DŸM™MÓ*Ó+ñ,Ø.2¯m©mñ<‰Dð ˆDá&(ˆk× Ñ Ô"¨kˆô
 —‘˜D 4§9¡9×#4Ñ#4Ñ4°sÑ:Ó;×BÑBÓDˆÜ×Ñ˜v xÓ0°4·;±;Ñ>ˆä˜A §	¡	× 0Ñ 0× 2Ñ 2Ñ2Ô3×HÑHÓJˆä—‘˜D 4™K¨$¯'©'Ñ1°CÑ7Ó8×?Ñ?ÓAˆÜ×Ñ˜v xÓ0°4·;±;Ñ>ˆà��T—Y‘Y—[‘[‘Ñ  D§K¡KÑ/ˆà�a—j‘j  XÓ.Ñ.Ð.r   c                 ó  — t        |«      }dt        |«      z   t        t        | j                  «      «      z   | j                  z   }|r|j	                  d«      n|}t        j                  || j                  j                  z   |z   «      j	                  d«      }t        j                  |d«      | j                  z  }t        || j                  j                  j                  z  ¬«      j                  «       }t        j                  ||z   | j                   z   |z   «      j	                  d«      }	t        j                  |	d«      | j                  z  }
||
| j                  j"                  z  z   | j                  z  }||j%                  dd«      z   S )Nó   SigEd448é@   ér   rC   rD   r   )rF   r   r   r&   Úreadr   rH   r%   rI   r   rJ   r+   r   r)   rK   r'   r(   rL   rM   )r,   r=   r>   rN   Údom4rP   rQ   rR   rS   rT   rU   rV   s               r   r<   zEdDSASigScheme._sign_ed448¹   s>  € ä�2‹wˆàœT $›ZÑ'Ü”C˜Ÿ™Ó&Ó'ñ(Ø*.¯-©-ñ8ˆñ ')ˆk×Ñ˜rÔ"¨kˆô
 —‘˜d T§Y¡Y×%6Ñ%6Ñ6¸Ñ<Ó=×BÑBÀ3ÓGˆÜ×Ñ˜v xÓ0°4·;±;Ñ>ˆä˜A §	¡	× 0Ñ 0× 2Ñ 2Ñ2Ô3×HÑHÓJˆä—‘˜d T™k¨D¯G©GÑ3°cÑ9Ó:×?Ñ?ÀÓDˆÜ×Ñ˜v xÓ0°4·;±;Ñ>ˆà��T—Y‘Y—[‘[‘Ñ  D§K¡KÑ/ˆà�a—j‘j  XÓ.Ñ.Ð.r   c                 óŒ  — | j                   j                  dk(  r?t        |t        j                  «      }|st        |«      st        d«      ‚| j                  }nc| j                   j                  dk(  r?t        |t        j                  «      }|st        |«      st        d«      ‚| j                  }nt        d«      ‚ ||||«      S )a  Check if an EdDSA signature is authentic.

        Args:
          msg_or_hash (bytes or a hash object):
            The message to verify (``bytes``, in case of *PureEdDSA*) or
            the hash that was carried out over the message (hash object, for *HashEdDSA*).

            The hash object must be :class:`Crypto.Hash.SHA512` object for Ed25519,
            and :class:`Crypto.Hash.SHAKE256` for Ed448.

          signature (``bytes``):
            The signature that needs to be validated.
            It must be 64 bytes for Ed25519, and 114 bytes for Ed448.

        :raise ValueError: if the signature is not authentic
        r   r4   r   r5   r6   )r%   r   r8   r   r9   r   r7   Ú_verify_ed25519r   r;   Ú_verify_ed448r   )r,   r=   Ú	signaturer>   Úeddsa_verify_methods        r   ÚverifyzEdDSASigScheme.verifyÑ   s©   € ð$ �9‰9�?‰?˜iÒ'Ü˜K¬×):Ñ):Ó;ˆBÙœ( ;Ô/ÜÐ OÓPÐPØ"&×"6Ñ"6Ñà�Y‰Y�_‰_ Ò'Ü˜K¬×)>Ñ)>Ó?ˆBÙœ( ;Ô/ÜÐ PÓQÐQØ"&×"4Ñ"4Ñô Ð8Ó9Ð9á" ;°	¸2Ó>Ð>r   c                 ó:  — t        |«      dk7  rt        d«      ‚| j                  s|rFt        |«      }dt	        |«      z   t	        t        | j                  «      «      z   | j                  z   }nd}|r|j                  «       n|}	 t        |d d «      j                  }t        j                  |dd  d«      }|| j                  kD  rt        d«      ‚t        j                  ||d d z   | j                  z   |z   «      j                  «       }	t        j                  |	d«      | j                  z  }
|d	z  | j                  j                  j                   z  }d	|z  |
d	z  | j                  j                  z  z   }||k7  rt        d
«      ‚y # t        $ r t        d«      ‚w xY w)NrY   ú'The signature is not authentic (length)rB   r   r   ú"The signature is not authentic (R)rC   ú"The signature is not authentic (S)é   úThe signature is not authentic)r   r   r&   rF   r   rG   r   ÚpointQr   rJ   r+   r   rH   r(   r%   r)   rK   )r,   r=   r`   r>   rN   rO   rP   ÚRrV   rT   rU   Úpoint1Úpoint2s                r   r^   zEdDSASigScheme._verify_ed25519ô   s†  € äˆy‹>˜RÒÜÐFÓGÐGà�=Š=™BÜ�r“7ˆDØ6¼¸d»ÑCÜœ˜DŸM™MÓ*Ó+ñ,Ø.2¯m©mñ<‰Dð ˆDá&(ˆk× Ñ Ô"¨kˆð
	CÜ! )¨C¨R .Ó1×8Ñ8ˆAô ×Ñ˜y¨¨˜~¨xÓ8ˆØˆt�{‰{Š?ÜÐAÓBÐBä—‘˜D 9¨S¨b >Ñ1°D·G±GÑ;¸cÑAÓB×IÑIÓKˆÜ×Ñ˜v xÓ0°4·;±;Ñ>ˆà�Q‘˜Ÿ™×)Ñ)×+Ñ+Ñ+ˆð �Q‘˜˜Q™ §¡×!1Ñ!1Ñ1Ñ1ˆØ�VÒÜÐ=Ó>Ð>ð øô ò 	CÜÐAÓBÐBð	Cús   ÂF ÆFc                 ó  — t        |«      dk7  rt        d«      ‚t        |«      }dt        |«      z   t        t        | j                  «      «      z   | j                  z   }|r|j                  d«      n|}	 t        |d d «      j                  }t        j                  |dd  d«      }|| j                  kD  rt        d«      ‚t        j                  ||d d z   | j                  z   |z   «      j                  d«      }	t        j                  |	d«      | j                  z  }
|d	z  | j                  j                  j                   z  }d	|z  |
d	z  | j                  j                  z  z   }||k7  rt        d
«      ‚y # t        $ r t        d«      ‚w xY w)NrZ   rd   rX   rY   r   re   rC   rf   rg   rh   )r   r   rF   r   r&   r[   r   ri   r   rJ   r+   r   rH   r(   r%   r)   rK   )r,   r=   r`   r>   rN   r\   rP   rj   rV   rT   rU   rk   rl   s                r   r_   zEdDSASigScheme._verify_ed448  s|  € äˆy‹>˜SÒ ÜÐFÓGÐGä�2‹wˆàœT $›ZÑ'Ü”C˜Ÿ™Ó&Ó'ñ(Ø*.¯-©-ñ8ˆñ ')ˆk×Ñ˜rÔ"¨kˆð
	CÜ! )¨C¨R .Ó1×8Ñ8ˆAô ×Ñ˜y¨¨˜~¨xÓ8ˆØˆt�{‰{Š?ÜÐAÓBÐBä—‘˜d Y¨s° ^Ñ3°d·g±gÑ=ÀÑCÓD×IÑIÈ#ÓNˆÜ×Ñ˜v xÓ0°4·;±;Ñ>ˆà�Q‘˜Ÿ™×)Ñ)×+Ñ+Ñ+ˆð �Q‘˜˜Q™ §¡×!1Ñ!1Ñ1Ñ1ˆØ�VÒÜÐ=Ó>Ð>ð øô ò 	CÜÐAÓBÐBð	Cús   Á5E6 Å6FN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r/   r2   r@   r:   r<   rb   r^   r_   © r   r   r#   r#   c   s2   „ ñò

'ò'ò!2òF/ò6/ò0!?òF!?óF?r   r#   Nc                 óÈ   — t        | t        «      r| j                  dvrt        d«      ‚|dk7  rt        d«      ‚|€d}nt	        |«      dkD  rt        d«      ‚t        | |«      S )a¥  Create a signature object :class:`EdDSASigScheme` that
    can perform or verify an EdDSA signature.

    Args:
        key (:class:`Crypto.PublicKey.ECC` object):
            The key to use for computing the signature (*private* keys only)
            or for verifying one.
            The key must be on the curve ``Ed25519`` or ``Ed448``.

        mode (string):
            This parameter must be ``'rfc8032'``.

        context (bytes):
            Up to 255 bytes of `context <https://datatracker.ietf.org/doc/html/rfc8032#page-41>`_,
            which is a constant byte string to segregate different protocols or
            different applications of the same key.
    )r   r   z&EdDSA can only be used with EdDSA keysÚrfc8032zMode must be 'rfc8032'r   éÿ   z3Context for EdDSA must not be longer than 255 bytes)r8   r   r   r   r   r#   )r-   Úmoder.   s      r   rH   rH   9  si   € ô& �cœ6Ô" c§i¡iÐ7KÑ&KÜÐAÓBÐBàˆyÒÜÐ1Ó2Ð2à€Ø‰Ü	ˆW‹˜Ò	ÜÐNÓOÐOä˜#˜wÓ'Ð'r   )N)ÚCrypto.Math.Numbersr   ÚCrypto.Hashr   r   ÚCrypto.Util.py3compatr   r   ÚCrypto.PublicKey.ECCr   r	   r
   r   r   r!   Úobjectr#   rH   rr   r   r   ú<module>r|      s8   ðõ> (ç (ß 0÷<ó <ò=ò85ô<S?�Vô S?ôl(r   