403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.25
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/Cryptodome/Cipher/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/Cryptodome/Cipher/__pycache__/_mode_openpgp.cpython-311.pyc
�

8�tc���J�dZdgZddlmZddlmZGd�de��Zd�ZdS)z
OpenPGP mode.
�OpenPgpMode�)�_copy_bytes)�get_random_bytesc�$�eZdZdZd�Zd�Zd�ZdS)razOpenPGP mode.

    This mode is a variant of CFB, and it is only used in PGP and
    OpenPGP_ applications. If in doubt, use another mode.

    An Initialization Vector (*IV*) is required.

    Unlike CFB, the *encrypted* IV (not the IV itself) is
    transmitted to the receiver.

    The IV is a random data block. For legacy reasons, two of its bytes are
    duplicated to act as a checksum for the correctness of the key, which is now
    known to be insecure and is ignored. The encrypted IV is therefore 2 bytes
    longer than the clean IV.

    .. _OpenPGP: http://tools.ietf.org/html/rfc4880

    :undocumented: __init__
    c�d�|j|_d|_|j||jfd|jz|jdzd�|��}t	dd|��}t|��|jkr&|�||dd�z��|_nat|��|jdzkr%||_|�|��dd�}n!td|j|jdzfz���|x|_
|_|j||jf|j|jd�|jdzd�|��|_dS)NF��)�IV�segment_size����z4Length of IV must be %d or %d bytes for MODE_OPENPGP)
�
block_size�_done_first_block�new�MODE_CFBr�len�encrypt�
_encrypted_IV�decrypt�
ValueError�ivr
�_cipher)�self�factory�keyr�
cipher_params�	IV_ciphers      �A/usr/lib/python3/dist-packages/Cryptodome/Cipher/_mode_openpgp.py�__init__zOpenPgpMode.__init__=s���"�,���!&��� �G�K���(�)�#�T�_�4�%)�_�q�%8�	)�)�
(�)�)�	���t�R�
(�
(���r�7�7�d�o�%�%�!*�!2�!2�2��2�3�3��<�!@�!@�D���
��W�W���!�+�
+�
+�!#�D���"�"�2�&�&�s��s�+�B�B��1� $����1�1D�E�F�G�G�
G�����$�'�#�w�{��#�,�-� $�1�4�?�2B�2C�2C�D�)-��1�)<�	-�-�
,�-�-�����c�j�|j�|��}|js|j|z}d|_|S)a�Encrypt data with the key and the parameters set at initialization.

        A cipher object is stateful: once you have encrypted a message
        you cannot encrypt (or decrypt) another message using the same
        object.

        The data to encrypt can be broken up in two or
        more pieces and `encrypt` can be called multiple times.

        That is, the statement:

            >>> c.encrypt(a) + c.encrypt(b)

        is equivalent to:

             >>> c.encrypt(a+b)

        This function does not add any padding to the plaintext.

        :Parameters:
          plaintext : bytes/bytearray/memoryview
            The piece of data to encrypt.

        :Return:
            the encrypted data, as a byte string.
            It is as long as *plaintext* with one exception:
            when encrypting the first message chunk,
            the encypted IV is prepended to the returned ciphertext.
        T)rrrr)r�	plaintext�ress   rrzOpenPgpMode.encryptgs>��>�l�"�"�9�-�-���%�	*��$�s�*�C�%)�D�"��
r c�6�|j�|��S)a�Decrypt data with the key and the parameters set at initialization.

        A cipher object is stateful: once you have decrypted a message
        you cannot decrypt (or encrypt) another message with the same
        object.

        The data to decrypt can be broken up in two or
        more pieces and `decrypt` can be called multiple times.

        That is, the statement:

            >>> c.decrypt(a) + c.decrypt(b)

        is equivalent to:

             >>> c.decrypt(a+b)

        This function does not remove any padding from the plaintext.

        :Parameters:
          ciphertext : bytes/bytearray/memoryview
            The piece of data to decrypt.

        :Return: the decrypted data (byte string).
        )rr)r�
ciphertexts  rrzOpenPgpMode.decrypt�s��6�|�#�#�J�/�/�/r N)�__name__�
__module__�__qualname__�__doc__rrr�r rrr(sM��������((-�(-�(-�T#�#�#�J0�0�0�0�0r c�r�|�dd��}|�dd��}d||fkrt|j��}|�|�td���n|}	|�d��}n1#t$r$}tdt|��z���d}~wwxYwt
||||��S)a#Create a new block cipher, configured in OpenPGP mode.

    :Parameters:
      factory : module
        The module.

    :Keywords:
      key : bytes/bytearray/memoryview
        The secret key to use in the symmetric cipher.

      IV : bytes/bytearray/memoryview
        The initialization vector to use for encryption or decryption.

        For encryption, the IV must be as long as the cipher block size.

        For decryption, it must be 2 bytes longer (it is actually the
        *encrypted* IV which was prefixed to the ciphertext).
    r
Nr)NNz*You must either use 'iv' or 'IV', not bothrzMissing component: )�poprr�	TypeError�KeyError�strr)r�kwargsrr
r�es      r�_create_openpgp_cipherr2�s���(
���D�$�	�	�B�	���D�$�	�	�B���B�x���
�g�0�
1�
1��	�~�
�>��H�I�I�I����8��j�j��������8�8�8��-��A���6�7�7�7�����8�����w��R��0�0�0s� A6�6
B$�B�B$N)	r)�__all__�Cryptodome.Util.py3compatr�Cryptodome.Randomr�objectrr2r*r r�<module>r7s���>���/��1�1�1�1�1�1�.�.�.�.�.�.�0�0�0�0�0�&�0�0�0�D$1�$1�$1�$1�$1r 

Youez - 2016 - github.com/yon3zu
LinuXploit