ó
    &ÝNj4   ã                   ó|  • % S SK Jr  S SKJrJr  S SKJr  \" \R                  5      r
\R                  " 5       r\\S'   \R                  " 5       r\\S'   S rS r\
(       a"  \R&                  " 5       r\R(                  " 5       rS\S\4S jrS\S	\S\4S
 jrS\S\4S jrS\S\4S jrS\S	\S\4S jrS\S	\S\4S jrg)é    )Ú
exceptions)ÚffiÚlib)ÚensureÚcrypto_scalarmult_BYTESÚcrypto_scalarmult_SCALARBYTESÚnÚreturnc                 óØ   • [         R                  " S[        5      n[        R                  " X5      n[        US:H  S[        R                  S9  [         R                  " U[        5      SS $ )zz
Computes and returns the scalar product of a standard group element and an
integer ``n``.

:param n: bytes
:rtype: bytes
úunsigned char[]r   úUnexpected library error©ÚraisingN)
r   Únewr   r   Úcrypto_scalarmult_baser   ÚexcÚRuntimeErrorÚbufferr   ©r	   ÚqÚrcs      Ú\/home/mande/repo/quber/.venv/lib/python3.13/site-packages/nacl/bindings/crypto_scalarmult.pyr   r   $   sT   € ô 	�ŠÐ!Ô#:Ó;€Aä	×	#Ò	# AÓ	)€BÜ
ˆ2�‰7Ð.¼×8HÑ8HÒIä�:Š:�aÔ6Ó7¹Ð:Ð:ó    Úpc                 óÚ   • [         R                  " S[        5      n[        R                  " X U5      n[        US:H  S[        R                  S9  [         R                  " U[        5      SS $ )z‰
Computes and returns the scalar product of the given group element and an
integer ``n``.

:param p: bytes
:param n: bytes
:rtype: bytes
r   r   r   r   N)
r   r   r   r   Úcrypto_scalarmultr   r   r   r   r   ©r	   r   r   r   s       r   r   r   4   sV   € ô 	�ŠÐ!Ô#:Ó;€Aä	×	Ò	˜q QÓ	'€BÜ
ˆ2�‰7Ð.¼×8HÑ8HÒIä�:Š:�aÔ6Ó7¹Ð:Ð:r   c                 ó°  • [        [        S[        R                  S9  [        [	        U [
        5      =(       a    [        U 5      [        :H  SR                  S5      [        R                  S9  [        R                  " S[        5      n[        R                  " X5      n[        US:H  S[        R                  S9  [        R                   " U[        5      SS $ )	aì  
Computes and returns the scalar product of a standard group element and an
integer ``n`` on the edwards25519 curve.

:param n: a :py:data:`.crypto_scalarmult_ed25519_SCALARBYTES` long bytes
          sequence representing a scalar
:type n: bytes
:return: a point on the edwards25519 curve, represented as a
         :py:data:`.crypto_scalarmult_ed25519_BYTES` long bytes sequence
:rtype: bytes
:raises nacl.exceptions.UnavailableError: If called when using a
    minimal build of libsodium.
úNot available in minimal buildr   ú&Input must be a {} long bytes sequenceÚ%crypto_scalarmult_ed25519_SCALARBYTESr   r   r   N)r   Úhas_crypto_scalarmult_ed25519r   ÚUnavailableErrorÚ
isinstanceÚbytesÚlenr!   ÚformatÚ	TypeErrorr   r   Úcrypto_scalarmult_ed25519_BYTESr   Úcrypto_scalarmult_ed25519_baser   r   r   s      r   r*   r*   E   s­   € ô Ü%Ø(Ü×$Ñ$òô Ü�1”eÓ÷ 	<Ü�‹FÔ;Ñ;Ø0×7Ñ7Ø3ó	
ô —‘òô 	�ŠÐ!Ô#BÓC€Aä	×	+Ò	+¨AÓ	1€BÜ
ˆ2�‰7Ð.¼×8HÑ8HÒIä�:Š:�aÔ8Ó9¹!Ð<Ð<r   c                 ó°  • [        [        S[        R                  S9  [        [	        U [
        5      =(       a    [        U 5      [        :H  SR                  S5      [        R                  S9  [        R                  " S[        5      n[        R                  " X5      n[        US:H  S[        R                  S9  [        R                   " U[        5      SS $ )	a  
Computes and returns the scalar product of a standard group element and an
integer ``n`` on the edwards25519 curve. The integer ``n`` is not clamped.

:param n: a :py:data:`.crypto_scalarmult_ed25519_SCALARBYTES` long bytes
          sequence representing a scalar
:type n: bytes
:return: a point on the edwards25519 curve, represented as a
         :py:data:`.crypto_scalarmult_ed25519_BYTES` long bytes sequence
:rtype: bytes
:raises nacl.exceptions.UnavailableError: If called when using a
    minimal build of libsodium.
r   r   r    r!   r   r   r   N)r   r"   r   r#   r$   r%   r&   r!   r'   r(   r   r   r)   r   Ú&crypto_scalarmult_ed25519_base_noclampr   r   r   s      r   r,   r,   j   s­   € ô Ü%Ø(Ü×$Ñ$òô Ü�1”eÓ÷ 	<Ü�‹FÔ;Ñ;Ø0×7Ñ7Ø3ó	
ô —‘òô 	�ŠÐ!Ô#BÓC€Aä	×	3Ò	3°AÓ	9€BÜ
ˆ2�‰7Ð.¼×8HÑ8HÒIä�:Š:�aÔ8Ó9¹!Ð<Ð<r   c                 óP  • [        [        S[        R                  S9  [        [	        U [
        5      =(       a    [        U 5      [        :H  SR                  S5      [        R                  S9  [        [	        U[
        5      =(       a    [        U5      [        :H  SR                  S5      [        R                  S9  [        R                  " S[        5      n[        R                  " X U5      n[        US:H  S[        R                  S9  [        R                   " U[        5      S	S	 $ )
a-  
Computes and returns the scalar product of a *clamped* integer ``n``
and the given group element on the edwards25519 curve.
The scalar is clamped, as done in the public key generation case,
by setting to zero the bits in position [0, 1, 2, 255] and setting
to one the bit in position 254.

:param n: a :py:data:`.crypto_scalarmult_ed25519_SCALARBYTES` long bytes
          sequence representing a scalar
:type n: bytes
:param p: a :py:data:`.crypto_scalarmult_ed25519_BYTES` long bytes sequence
          representing a point on the edwards25519 curve
:type p: bytes
:return: a point on the edwards25519 curve, represented as a
         :py:data:`.crypto_scalarmult_ed25519_BYTES` long bytes sequence
:rtype: bytes
:raises nacl.exceptions.UnavailableError: If called when using a
    minimal build of libsodium.
r   r   r    r!   r)   r   r   r   N)r   r"   r   r#   r$   r%   r&   r!   r'   r(   r)   r   r   r   Úcrypto_scalarmult_ed25519r   r   r   s       r   r.   r.   �   sì   € ô( Ü%Ø(Ü×$Ñ$òô Ü�1”eÓ÷ 	<Ü�‹FÔ;Ñ;Ø0×7Ñ7Ø3ó	
ô —‘òô Ü�1”eÓ×J¤ Q£Ô+JÑ!JØ0×7Ñ7Ø-ó	
ô —‘òô 	�ŠÐ!Ô#BÓC€Aä	×	&Ò	& q¨QÓ	/€BÜ
ˆ2�‰7Ð.¼×8HÑ8HÒIä�:Š:�aÔ8Ó9¹!Ð<Ð<r   c                 óP  • [        [        S[        R                  S9  [        [	        U [
        5      =(       a    [        U 5      [        :H  SR                  S5      [        R                  S9  [        [	        U[
        5      =(       a    [        U5      [        :H  SR                  S5      [        R                  S9  [        R                  " S[        5      n[        R                  " X U5      n[        US:H  S[        R                  S9  [        R                   " U[        5      S	S	 $ )
a¡  
Computes and returns the scalar product of an integer ``n``
and the given group element on the edwards25519 curve. The integer
``n`` is not clamped.

:param n: a :py:data:`.crypto_scalarmult_ed25519_SCALARBYTES` long bytes
          sequence representing a scalar
:type n: bytes
:param p: a :py:data:`.crypto_scalarmult_ed25519_BYTES` long bytes sequence
          representing a point on the edwards25519 curve
:type p: bytes
:return: a point on the edwards25519 curve, represented as a
         :py:data:`.crypto_scalarmult_ed25519_BYTES` long bytes sequence
:rtype: bytes
:raises nacl.exceptions.UnavailableError: If called when using a
    minimal build of libsodium.
r   r   r    r!   r)   r   r   r   N)r   r"   r   r#   r$   r%   r&   r!   r'   r(   r)   r   r   r   Ú!crypto_scalarmult_ed25519_noclampr   r   r   s       r   r0   r0   Â   sì   € ô$ Ü%Ø(Ü×$Ñ$òô Ü�1”eÓ÷ 	<Ü�‹FÔ;Ñ;Ø0×7Ñ7Ø3ó	
ô —‘òô Ü�1”eÓ×J¤ Q£Ô+JÑ!JØ0×7Ñ7Ø-ó	
ô —‘òô 	�ŠÐ!Ô#BÓC€Aä	×	.Ò	.¨q°QÓ	7€BÜ
ˆ2�‰7Ð.¼×8HÑ8HÒIä�:Š:�aÔ8Ó9¹!Ð<Ð<r   N)Únaclr   r   Únacl._sodiumr   r   Únacl.exceptionsr   ÚboolÚ$PYNACL_HAS_CRYPTO_SCALARMULT_ED25519r"   Úcrypto_scalarmult_bytesr   ÚintÚ__annotations__Úcrypto_scalarmult_scalarbytesr   r)   r!   Úcrypto_scalarmult_ed25519_bytesÚ%crypto_scalarmult_ed25519_scalarbytesr%   r   r   r*   r,   r.   r0   © r   r   Ú<module>r=      s  ðö  #ß !Ý "ñ !% S×%MÑ%MÓ NÐ à"×:Ò:Ó<Ð ˜Ó <Ø%(×%FÒ%FÓ%HÐ ˜sÓ Hà"#Ð Ø()Ð %æ Ø&)×&IÒ&IÓ&KÐ#à×1Ò1Ó3ð *ð
;˜eð ;¨ô ;ð ;˜ð ; 5ð ;¨Uô ;ð""= eð "=°ô "=ðJ"=¨eð "=¸ô "=ðJ0= ð 0=¨5ð 0=°Uô 0=ðf.=¨ð .=°5ð .=¸Uõ .=r   