
    #Ce%	              	           d dl Z d dlmZmZmZ d dlZd dlmZ  edd      Z G d de	      Z
 G d d	      Zd
e	defdZddede	fdZej                   fdede	dej"                  de	fdZy)    N)SupportsBytesTypeTypeVar)encoding_EncryptedMessageEncryptedMessage)boundc                   ~    e Zd ZU dZeed<   eed<   edee   dedededef
d	       Z	e
defd
       Ze
defd       Zy)r   ze
    A bytes subclass that holds a messaged that has been encrypted by a
    :class:`SecretBox`.
    _nonce_ciphertextclsnonce
ciphertextcombinedreturnc                 2     | |      }||_         ||_        |S N)r   r   )r   r   r   r   objs        *lib/python3.12/site-packages/nacl/utils.py_from_partszEncryptedMessage._from_parts"   s      (m
$
    c                     | j                   S )zX
        The nonce used during the encryption of the :class:`EncryptedMessage`.
        )r   selfs    r   r   zEncryptedMessage.nonce.   s    
 {{r   c                     | j                   S )zP
        The ciphertext contained within the :class:`EncryptedMessage`.
        )r   r   s    r   r   zEncryptedMessage.ciphertext5   s    
 r   N)__name__
__module____qualname____doc__bytes__annotations__classmethodr   r   r   propertyr   r    r   r   r   r      s    
 M	#$		 	 		
 
	 	 u    E    r   c                       e Zd ZdedefdZy)StringFixerr   r   c                 4    t        | j                               S r   )str	__bytes__r   s    r   __str__zStringFixer.__str__>   s    4>>#$$r   N)r   r   r   r   r(   r*   r$   r   r   r&   r&   =   s    %m % %r   r&   bytes_inr   c                 $    | j                  d      S )Nascii)decode)r+   s    r   bytes_as_stringr/   B   s    ??7##r   sizec                 ,    t        j                  |       S r   )osurandom)r0   s    r   randomr4   F   s    ::dr   seedencoderc                 d    t         j                  j                  | |      }|j                  |      S )z
    Returns ``size`` number of deterministically generated pseudorandom bytes
    from a seed

    :param size: int
    :param seed: bytes
    :param encoder: The encoder class used to encode the produced bytes
    :rtype: bytes
    )naclbindingsrandombytes_buf_deterministicencode)r0   r5   r6   raw_datas       r   randombytes_deterministicr=   J   s)     }}::4FH>>(##r   )    )r2   typingr   r   r   nacl.bindingsr8   r   r   r    r   r&   r(   r/   intr4   
RawEncoderEncoderr=   r$   r   r   <module>rD      s     
 / /  /7IJ ! u ! H% %
$e $ $ e 
 9A8K8K$
$$%-%5%5$
$r   