def _encrypt_region(self, data: bytes) -> bytes:
        """
        Encrypt the given region of data using AES-GCM. The result
        includes the data in the form: nonce + ciphertext + tag.

        :param bytes data: The data to encrypt.
        :return: The encrypted bytes.
        :rtype: bytes
        """
        # Each region MUST use a different nonce
        nonce = self.nonce_counter.to_bytes(_GCM_NONCE_LENGTH, 'big')
        self.nonce_counter += 1

        aesgcm = AESGCM(self.content_encryption_key)

        # Returns ciphertext + tag
        ciphertext_with_tag = aesgcm.encrypt(nonce, data, None)
        return nonce + ciphertext_with_tag

        Encrypt the given region of data using AES-GCM. The result
        includes the data in the form: nonce + ciphertext + tag.

        :param bytes data: The data to encrypt.
        :return: The encrypted bytes.
        :rtype: bytes
        
Solutions/CyberArkAudit/Data Connectors/.python_packages/lib/site-packages/azure/storage/blob/_encryption.py