§
    ±ì7g4   ã                   óT  — U d dl mZ d dlmZmZ d dlmZ  eej	        ¦  «        Z
 ej        ¦   «         Zeed<    ej        ¦   «         Zeed<   d Zd Ze
r ej        ¦   «         Z ej        ¦   «         Zdedefd„Zded	edefd
„Zdedefd„Zdedefd„Zded	edefd„Zded	edefd„ZdS )é    )Ú
exceptions)ÚffiÚlib)ÚensureÚcrypto_scalarmult_BYTESÚcrypto_scalarmult_SCALARBYTESÚnÚreturnc                 óä   — t          j        dt          ¦  «        }t          j        || ¦  «        }t          |dk    dt          j        ¬¦  «         t          j        |t          ¦  «        dd…         S )zŽ
    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      úY/var/www/html/syslog/venv/lib/python3.11/site-packages/nacl/bindings/crypto_scalarmult.pyr   r   $   sb   € õ 	ŒÐ!Õ#:Ñ;Ô;€Aå	Ô	# A qÑ	)Ô	)€BÝ
ˆ2Š7Ð.½Ô8HÐIÑIÔIÐIåŒ:aÕ6Ñ7Ô7¸¸¸Ô:Ð:ó    Úpc                 óæ   — t          j        dt          ¦  «        }t          j        || |¦  «        }t          |dk    dt          j        ¬¦  «         t          j        |t          ¦  «        dd…         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   sd   € õ 	ŒÐ!Õ#:Ñ;Ô;€Aå	Ô	˜q ! QÑ	'Ô	'€BÝ
ˆ2Š7Ð.½Ô8HÐIÑIÔIÐIåŒ:aÕ6Ñ7Ô7¸¸¸Ô:Ð:r   c                 óÚ  — t          t          dt          j        ¬¦  «         t          t	          | t
          ¦  «        ot          | ¦  «        t          k    d                     d¦  «        t          j	        ¬¦  «         t          j        dt          ¦  «        }t          j        || ¦  «        }t          |dk    dt          j        ¬¦  «         t          j        |t          ¦  «        dd…         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ŒFÕ;Ò;Ø0×7Ò7Ø3ñ	
ô 	
õ ”ðñ ô ð õ 	ŒÐ!Õ#BÑCÔC€Aå	Ô	+¨A¨qÑ	1Ô	1€BÝ
ˆ2Š7Ð.½Ô8HÐIÑIÔIÐIåŒ:aÕ8Ñ9Ô9¸!¸!¸!Ô<Ð<r   c                 óÚ  — t          t          dt          j        ¬¦  «         t          t	          | t
          ¦  «        ot          | ¦  «        t          k    d                     d¦  «        t          j	        ¬¦  «         t          j        dt          ¦  «        }t          j        || ¦  «        }t          |dk    dt          j        ¬¦  «         t          j        |t          ¦  «        dd…         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ŒFÕ;Ò;Ø0×7Ò7Ø3ñ	
ô 	
õ ”ðñ ô ð õ 	ŒÐ!Õ#BÑCÔC€Aå	Ô	3°A°qÑ	9Ô	9€BÝ
ˆ2Š7Ð.½Ô8HÐIÑIÔIÐIåŒ:aÕ8Ñ9Ô9¸!¸!¸!Ô<Ð<r   c                 ó  — t          t          dt          j        ¬¦  «         t          t	          | t
          ¦  «        ot          | ¦  «        t          k    d                     d¦  «        t          j	        ¬¦  «         t          t	          |t
          ¦  «        ot          |¦  «        t          k    d                     d¦  «        t          j	        ¬¦  «         t          j        dt          ¦  «        }t          j        || |¦  «        }t          |dk    dt          j        ¬¦  «         t          j        |t          ¦  «        d	d	…         S )
aq  
    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.      s4  € õ( Ý%Ø(ÝÔ$ðñ ô ð õ Ý1•eÑÔð 	<Ý‰FŒFÕ;Ò;Ø0×7Ò7Ø3ñ	
ô 	
õ ”ðñ ô ð õ Ý1•eÑÔÐJ¥ Q¡¤Õ+JÒ!JØ0×7Ò7Ø-ñ	
ô 	
õ ”ðñ ô ð õ 	ŒÐ!Õ#BÑCÔC€Aå	Ô	& q¨!¨QÑ	/Ô	/€BÝ
ˆ2Š7Ð.½Ô8HÐIÑIÔIÐIåŒ:aÕ8Ñ9Ô9¸!¸!¸!Ô<Ð<r   c                 ó  — t          t          dt          j        ¬¦  «         t          t	          | t
          ¦  «        ot          | ¦  «        t          k    d                     d¦  «        t          j	        ¬¦  «         t          t	          |t
          ¦  «        ot          |¦  «        t          k    d                     d¦  «        t          j	        ¬¦  «         t          j        dt          ¦  «        }t          j        || |¦  «        }t          |dk    dt          j        ¬¦  «         t          j        |t          ¦  «        d	d	…         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   Â   s4  € õ$ Ý%Ø(ÝÔ$ðñ ô ð õ Ý1•eÑÔð 	<Ý‰FŒFÕ;Ò;Ø0×7Ò7Ø3ñ	
ô 	
õ ”ðñ ô ð õ Ý1•eÑÔÐJ¥ Q¡¤Õ+JÒ!JØ0×7Ò7Ø-ñ	
ô 	
õ ”ðñ ô ð õ 	ŒÐ!Õ#BÑCÔC€Aå	Ô	.¨q°!°QÑ	7Ô	7€BÝ
ˆ2Š7Ð.½Ô8HÐIÑIÔIÐIåŒ:aÕ8Ñ9Ô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Ñ NÔ NÐ à:˜sÔ:Ñ<Ô<Ð ˜Ð <Ð <Ñ <Ø%F SÔ%FÑ%HÔ%HÐ ˜sÐ HÐ HÑ Hà"#Ð Ø()Ð %à ð Ø&I cÔ&IÑ&KÔ&KÐ#à1ˆÔ1Ñ3Ô3ð *ð
;˜eð ;¨ð ;ð ;ð ;ð ;ð ;˜ð ; 5ð ;¨Uð ;ð ;ð ;ð ;ð""= eð "=°ð "=ð "=ð "=ð "=ðJ"=¨eð "=¸ð "=ð "=ð "=ð "=ðJ0= ð 0=¨5ð 0=°Uð 0=ð 0=ð 0=ð 0=ðf.=¨ð .=°5ð .=¸Uð .=ð .=ð .=ð .=ð .=ð .=r   