ruạṛ
a ���fTO � @ s d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlm Z m Z d dlmZ d dl mZmZ d dlmZmZ d dlmZmZmZ d d lmZmZmZmZ d d lmZ d dlmZ e e�!dd �d �Z"e"Z#dd� Z$dd� Z%G dd� de�Z&G dd� de�Z'dd� Z(dS )� N)�six)�default_backend)�Cipher�modes)�Lock)�serialize_header�deserialize_header_from_stream)�EncryptedDataHeader�$EncryptedDataHeaderDataEncryptionKey)�DEFAULT_MAX_GCM_ENCRYPTION_SIZE�DEFAULT_ALGORITHM�$DEFAULT_MAX_ENCRYPTION_SIZE_SENTINEL)�convert_to_bytes�convert_to_str�generate_random_iv�$convert_encryption_context_to_string)� Algorithm)�CryptoResultStream� � � c C sf d}t |�tkrVd}t|�}|t }|||� }t |�dkr>qb|| j|d�7 }|}qn| j|d�}|S )N� r )�data)�len�2MAX_ENCRYPTOR_DECRYPTOR_UPDATE_CHUNK_SIZE_IN_BYTES� memoryview�update)Zcryptorr �result�start_index�memviewZ end_indexZ next_data� r �E/usr/lib/python3.9/site-packages/oci/encryption/internal/streaming.py�_update_cryptor_with_data( s r"