U
    ÎZj+
  ã                   @   s˜   U d dl mZ d dlmZmZ d dl mZ eejƒZ	e 
¡ Zeed< e ¡ Zeed< d Zd Ze	rpe ¡ Ze ¡ Zeeedœdd„Zeeedœd	d
„ZdS )é    N)ÚffiÚlib)ÚensureÚBYTESÚKEYBYTES)ÚdataÚkeyÚreturnc                 C   sb   t |ƒtkrt d t¡¡‚t dt¡}t 	|| t | ƒ|¡}t
|dktjd� t |t¡dd… S )zÙCompute a fast, cryptographic quality, keyed hash of the input data

    :param data:
    :type data: bytes
    :param key: len(key) must be equal to
                :py:data:`.KEYBYTES` (16)
    :type key: bytes
    ú#Key length must be exactly {} bytesúunsigned char[]r   ©ZraisingN)Úlenr   ÚexcÚ
ValueErrorÚformatr   Únewr   r   Úcrypto_shorthash_siphash24r   ÚRuntimeErrorÚbuffer©r   r   ÚdigestÚrc© r   úa/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/nacl/bindings/crypto_shorthash.pyr   $   s    	ÿr   c                 C   sr   t tdtjd� t|ƒtkr,t d t¡¡‚t 	dt
¡}t || t| ƒ|¡}t |dktjd� t |t
¡dd… S )aC  Compute a fast, cryptographic quality, keyed hash of the input data

    :param data:
    :type data: bytes
    :param key: len(key) must be equal to
                :py:data:`.XKEYBYTES` (16)
    :type key: bytes
    :raises nacl.exceptions.UnavailableError: If called when using a
        minimal build of libsodium.
    zNot available in minimal buildr   r
   r   r   N)r   Úhas_crypto_shorthash_siphashx24r   ZUnavailableErrorr   Ú	XKEYBYTESr   r   r   r   ÚXBYTESr   Úcrypto_shorthash_siphashx24r   r   r   r   r   r   r   8   s    ýÿr   )Znacl.exceptionsÚ
exceptionsr   Znacl._sodiumr   r   r   ÚboolZ&PYNACL_HAS_CRYPTO_SHORTHASH_SIPHASHX24r   Z crypto_shorthash_siphash24_bytesr   ÚintÚ__annotations__Z#crypto_shorthash_siphash24_keybytesr   r   r   Z!crypto_shorthash_siphashx24_bytesZ$crypto_shorthash_siphashx24_keybytesÚbytesr   r   r   r   r   r   Ú<module>   s    ÿ