mirror of
https://github.com/wismna/ModernKeePassLib.git
synced 2025-10-03 23:50:20 -04:00
26 lines
924 B
C#
26 lines
924 B
C#
using System.IO;
|
|
using Org.BouncyCastle.Crypto.Engines;
|
|
using Org.BouncyCastle.Crypto.IO;
|
|
using Org.BouncyCastle.Crypto.Modes;
|
|
using Org.BouncyCastle.Crypto.Paddings;
|
|
using Org.BouncyCastle.Crypto.Parameters;
|
|
|
|
namespace ModernKeePassLib.Cryptography.Cipher
|
|
{
|
|
public class StandardAesEngineExt
|
|
{
|
|
internal static Stream CreateStream(Stream s, bool bEncrypt, byte[] pbKey, byte[] pbIV)
|
|
{
|
|
var cbc = new CbcBlockCipher(new AesEngine());
|
|
//var cbc = new CbcBlockCipher(new RijndaelEngine());
|
|
var bc = new PaddedBufferedBlockCipher(cbc, new Pkcs7Padding());
|
|
var kp = new KeyParameter(pbKey);
|
|
var prmIV = new ParametersWithIV(kp, pbIV);
|
|
bc.Init(bEncrypt, prmIV);
|
|
|
|
var cpRead = bEncrypt ? null : bc;
|
|
var cpWrite = bEncrypt ? bc : null;
|
|
return new CipherStream(s, cpRead, cpWrite);
|
|
}
|
|
}
|
|
} |