/// <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)
        {
            AeadA128CbcHS256 aesA128CbcHs256 = new AeadA128CbcHS256(cekBytes, ivBytes, aadBytes);

            aesA128CbcHs256.Encrypt(payloadBytes);
            return(aesA128CbcHs256.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)
        {
            AeadA128CbcHS256 aesA128CbcHs256 = new AeadA128CbcHS256(cekBytes, ivBytes, aadBytes);

            return(aesA128CbcHs256.Decrypt(aeadResult));
        }