o
    ëÉ¶dµ  ã                   @   s0   d dl mZmZ d dlmZ G dd„ deƒZdS )é    )Ú
algorithmsÚmodes)ÚEnumc                   @   s8   e Zd ZdZdejejdddddfZ			d	dd„Z	dS )
Ú	AlgorithmzS
    Represents an Algorithm that can be used to encrypt and decrypt payloads.
    r   é    é   é   Nc	           	      C   s4   || _ || _|| _|| _|| _|| _|| _|| _dS )a6  
        :param bytes id: (required)
            Identifier for this algorithm used in serialization

        :param cryptography.hazmat.primitives.ciphers.CipherAlgorithm algorithm: (required)
            Encryption algorithm to use.

        :param cryptography.hazmat.primitives.ciphers.modes.Mode mode: (required)
            Mode to use.

        :param int key_len: (required)
            Length of the key (in bytes).

        :param int iv_len: (required)
            Length of the initialization vector (in bytes).

        :param int tag_len: (optional)
            Length of the authentication tag (in bytes), if applicable.

        :param cryptography.hazmat.primitives.padding padding: (optional)
            Padding to use.

        :param int block_size: (optional)
            Size of each block.
        N)ÚidÚ	algorithmÚmodeÚkey_lenÚiv_lenÚtag_lenÚpaddingÚ
block_size)	Úselfr	   r
   r   r   r   r   r   r   © r   ú=usr/lib/python3.10/site-packages/oci/encryption/algorithms.pyÚ__init__   s   $
zAlgorithm.__init__)NNN)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ZAESr   ZGCMZAES_256_GCM_IV12_TAG16r   r   r   r   r   r   
   s    ø÷r   N)Z&cryptography.hazmat.primitives.ciphersr   r   Úenumr   r   r   r   r   r   Ú<module>   s   