code: def encrypt_bytes_with_AES_GCM(
      plain_text_bytes, secret_key, salt, key_len=128, block_size=12
  ):
      """
      encrypt bytes plain text with AES GCM
      :param plain_text_bytes: plain test in bytes
      :param secret_key: secret key in string
      :param salt: secret slat in string
      :param key_len: key len (128 or 256)
      :param block_size: lv size (default 12 for GCM)
      :return: cipher text in bytes
      """
      key = get_private_key(secret_key, salt, key_len)
      iv = os.urandom(block_size)
      # create Cipher
      encryptor = Cipher(
          algorithms.AES(key), modes.GCM(iv), backend=back_end
      ).encryptor()
      ct = encryptor.update(plain_text_bytes) + encryptor.finalize()
      return iv + ct + encryptor.tag
  
file_path: analytics-zoo/pyzoo/zoo/common/encryption_utils.py
imports: import os
  from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
  from cryptography.hazmat.primitives import padding
  from cryptography.hazmat.backends import default_backend
  import base64
  import hashlib
label_desc: Use image node_id 8 for calling a global function with example usage: encrypt_bytes_with_AES_GCM(plain_text_bytes, secret_key, salt, key_len, block_size) and returns: unknown