/// <summary>認証付き暗号(AEAD)による本文 暗号化</summary>
        /// <param name="cekBytes">コンテンツ暗号化キー(CEK)</param>
        /// <param name="ivBytes">初期化ベクトル</param>
        /// <param name="aadBytes">追加認証データ(AAD)</param>
        /// <param name="payloadBytes">ペイロード</param>
        /// <returns>AeadResult</returns>
        protected override AeadResult CreateBody(byte[] cekBytes, byte[] ivBytes, byte[] aadBytes, byte[] payloadBytes)
        {
            AeadA256Gcm aesGcm = new AeadA256Gcm(cekBytes, ivBytes, aadBytes);

            aesGcm.Encrypt(payloadBytes);
            return(aesGcm.Result);
        }
        /// <summary>認証付き暗号(AEAD)による本文 復号化</summary>
        /// <param name="cekBytes">コンテンツ暗号化キー(CEK)</param>
        /// <param name="ivBytes">初期化ベクトル</param>
        /// <param name="aadBytes">追加認証データ(AAD)</param>
        /// <param name="aeadResult">AeadResult</param>
        /// <returns>byte[] </returns>
        protected override byte[] DecryptBody(byte[] cekBytes, byte[] ivBytes, byte[] aadBytes, AeadResult aeadResult)
        {
            AeadA256Gcm aesGcm = new AeadA256Gcm(cekBytes, ivBytes, aadBytes);

            return(aesGcm.Decrypt(aeadResult));
        }