+
    '(j                     ~    ^ RI Ht ^ RIHtHtHtHtHtHtH	t	H
t
 ^ RIHt ]! RR4      t ! R R4      tR
R	 lt^tRtR# )    )_copy_bytes)load_pycryptodome_raw_libcreate_string_bufferget_raw_bufferVoidPointerSmartPointerc_size_tc_uint8_ptris_writeable_buffer)get_random_byteszCrypto.Cipher._Salsa20a  
                    int Salsa20_stream_init(uint8_t *key, size_t keylen,
                                            uint8_t *nonce, size_t nonce_len,
                                            void **pSalsaState);
                    int Salsa20_stream_destroy(void *salsaState);
                    int Salsa20_stream_encrypt(void *salsaState,
                                               const uint8_t in[],
                                               uint8_t out[], size_t len);
                    c                   >   a  ] tR t^.t o RtR tRR ltRR ltRtV t	R# )Salsa20CipherzSalsa20 cipher object. Do not create it directly. Use :py:func:`new`
instead.

:var nonce: The nonce with length 8
:vartype nonce: byte string
c           
        \        V4      \        9  d   \        R\        V4      ,          4      h\        V4      ^8w  d   \        R\        V4      ,          4      h\        RRV4      V n        \        4       V n        \        P                  \        V4      \        \        V4      4      \        V4      \        \        V4      4      V P                  P                  4       4      pV'       d   \        R4      h\        V P                  P                  4       \        P                  4      V n        ^V n        \        V4      V n        R# )zIInitialize a Salsa20 cipher object

See also `new()` at the module level.z+Incorrect key length for Salsa20 (%d bytes)z-Incorrect nonce length for Salsa20 (%d bytes)Nz'Error %d instantiating a Salsa20 cipher)lenkey_size
ValueErrorr   noncer   _state_raw_salsa20_libSalsa20_stream_initr
   r	   
address_ofr   getSalsa20_stream_destroy
block_size)selfkeyr   results   &&& J/home/ubuntu/cf-venv/lib/python3.14/site-packages/Crypto/Cipher/Salsa20.py__init__Salsa20Cipher.__init__6   s    
 s88#JSQTXUVVu:?L Z( ) ) !tU3
!m!55#C( S*#E* U,..02 FGG"4;;??#4#3#J#JL C    Nc           
        Vf   \        \        V4      4      pMRTp\        V4      '       g   \        R4      h\        V4      \        V4      8w  d   \	        R\        V4      ,          4      h\
        P                  V P                  P                  4       \        V4      \        V4      \        \        V4      4      4      pV'       d   \	        RV,          4      hVf   \        V4      # R# )ac  Encrypt a piece of data.

Args:
  plaintext(bytes/bytearray/memoryview): The data to encrypt, of any size.
Keyword Args:
  output(bytes/bytearray/memoryview): The location where the ciphertext
    is written to. If ``None``, the ciphertext is returned.
Returns:
  If ``output`` is ``None``, the ciphertext is returned as ``bytes``.
  Otherwise, ``None``.
Nz4output must be a bytearray or a writeable memoryviewz9output must have the same length as the input  (%d bytes)z&Error %d while encrypting with Salsa20)r   r   r   	TypeErrorr   r   Salsa20_stream_encryptr   r   r
   r	   r   )r   	plaintextoutput
ciphertextr   s   &&&  r   encryptSalsa20Cipher.encryptS   s     >-c)n=JJ&v.. VWW9~V,  "025i."A B B "88)-):)4Y)?)4Z)@)1#i.)A	C
 ENOO>!*--r!   c                     V P                  WR7      #   \         d*   p\        \        T4      P                  RR4      4      hRp?ii ; i)aa  Decrypt a piece of data.

Args:
  ciphertext(bytes/bytearray/memoryview): The data to decrypt, of any size.
Keyword Args:
  output(bytes/bytearray/memoryview): The location where the plaintext
    is written to. If ``None``, the plaintext is returned.
Returns:
  If ``output`` is ``None``, the plaintext is returned as ``bytes``.
  Otherwise, ``None``.
)r&   encdecN)r(   r   strreplace)r   r'   r&   es   &&& r   decryptSalsa20Cipher.decrypty   sB    	;<<
<:: 	;SV^^E59::	;s    A$AA)r   r   r   r   N)
__name__
__module____qualname____firstlineno____doc__r   r(   r0   __static_attributes____classdictcell__)__classdict__s   @r   r   r   .   s     !:$L; ;r!   r   Nc                6    Vf   \        ^4      p\        W4      # )a  Create a new Salsa20 cipher

:keyword key: The secret key to use. It must be 16 or 32 bytes long.
:type key: bytes/bytearray/memoryview

:keyword nonce:
    A value that must never be reused for any other encryption
    done with this key. It must be 8 bytes long.

    If not provided, a random byte string will be generated (you can read
    it back via the ``nonce`` attribute of the returned object).
:type nonce: bytes/bytearray/memoryview

:Return: a :class:`Crypto.Cipher.Salsa20.Salsa20Cipher` object
)r   r   )r   r   s   &&r   newr<      s    " } #$$r!   r2   )       )Crypto.Util.py3compatr   Crypto.Util._raw_apir   r   r   r   r   r	   r
   r   Crypto.Randomr   r   r   r<   r   r    r!   r   <module>rC      sT   2 .D D D +,-E	 [; [;|%. 
 r!   