示例#1
0
        /// <summary>
        /// Gets the decrypting stream.
        /// </summary>
        /// <param name="output">The output.</param>
        /// <returns></returns>
        public override FinishingStream GetDecryptingStream(Stream output, Keyczar.KeyczarBase keyczar)
        {
            var alg = new AesManaged
            {
                Mode      = GetMode(),
                Key       = AesKeyBytes,
                Padding   = PaddingMode.PKCS7,
                BlockSize = BlockLength * 8
            };

            return(new DotNetSymmetricStream(alg, output, HmacKey.Maybe(h => h.HashLength, () => 0), encrypt: false));
        }
示例#2
0
        /// <summary>
        /// Gets the encrypting stream.
        /// </summary>
        /// <param name="output">The output.</param>
        /// <returns></returns>
        public override FinishingStream GetEncryptingStream(Stream output, Keyczar.KeyczarBase keyczar)
        {
            var alg = new AesManaged
            {
                Mode      = GetMode(),
                Key       = AesKeyBytes,
                Padding   = PaddingMode.PKCS7,
                BlockSize = BlockLength * 8
            };

            alg.GenerateIV();


            int hashlength = HmacKey.Maybe(h => h.HashLength, () => 0);

            return(new DotNetSymmetricStream(alg, output, hashlength, encrypt: true));
        }