a
   ˜|DnÙ«+ã                   @   sL   d dl mZmZmZ d dlmZ d dlmZm	Z	 e	 
¡ Zdd„ Zdd„ ZdS )	é    )Úabsolute_importÚdivisionÚprint_function)Ú
exceptions)ÚffiÚlibc                 C   s,   t  d| ¡}t || ¡ t  || ¡dd… S )zŒ
    Returns ``size`` number of random bytes from a cryptographically secure
    random source.

    :param size: int
    :rtype: bytes
    úunsigned char[]N)r   Únewr   ÚrandombytesÚbuffer)ÚsizeÚbuf© r   ú=/usr/lib/python3.9/site-packages/nacl/bindings/randombytes.pyr
      s    r
   c                 C   sD   t |ƒtkrt d¡‚t d| ¡}t || |¡ t || ¡dd… S )z¢
    Returns ``size`` number of deterministically generated pseudorandom bytes
    from a seed

    :param size: int
    :param seed: bytes
    :rtype: bytes
    z:Deterministic random bytes must be generated from 32 bytesr   N)	ÚlenÚrandombytes_SEEDBYTESÚexcÚ	TypeErrorr   r	   r   Úrandombytes_buf_deterministicr   )r   Zseedr   r   r   r   r   $   s
    	
r   N)Z
__future__r   r   r   Znaclr   r   Znacl._sodiumr   r   Zrandombytes_seedbytesr   r
   r   r   r   r   r   Ú<module>   s
   