code: private static function encryptWithCryptoExtension($K, $key_length, $IV, $P = null, $A = null, $tag_length = 128)
      {
          $cipher = \Crypto\Cipher::aes(\Crypto\Cipher::MODE_GCM, $key_length);
          $cipher->setAAD($A);
          $cipher->setTagLength($tag_length / 8);
          $C = $cipher->encrypt($P, $K, $IV);
          $T = $cipher->getTag();
  
          return [$C, $T];
      }
docs: @param string      $K          Key encryption key
  @param string      $key_length Key length
  @param string      $IV         Initialization vector
  @param null|string $P          Data to encrypt (null for authentication)
  @param null|string $A          Additional Authentication Data
  @param int         $tag_length Tag length
  
  @return array