本文整理汇总了C#中IBlockCipher.Init方法的典型用法代码示例。如果您正苦于以下问题:C# IBlockCipher.Init方法的具体用法?C# IBlockCipher.Init怎么用?C# IBlockCipher.Init使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IBlockCipher
的用法示例。
在下文中一共展示了IBlockCipher.Init方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AESCipherCBCnoPad
/** Creates a new instance of AESCipher */
public AESCipherCBCnoPad(bool forEncryption, byte[] key)
{
IBlockCipher aes = new AesFastEngine();
cbc = new CbcBlockCipher(aes);
KeyParameter kp = new KeyParameter(key);
cbc.Init(forEncryption, kp);
}
示例2: initCipher
private void initCipher(bool forEncryption, IBlockCipher cipher,
byte[] key_block, int key_size, int key_offset, int iv_offset)
{
KeyParameter key_parameter = new KeyParameter(key_block, key_offset,
key_size);
ParametersWithIV parameters_with_iv = new ParametersWithIV(
key_parameter, key_block, iv_offset, cipher.GetBlockSize());
cipher.Init(forEncryption, parameters_with_iv);
}
示例3: bufferSizeCheck
private void bufferSizeCheck(
IBlockCipher engine)
{
byte[] correctBuf = new byte[engine.GetBlockSize()];
byte[] shortBuf = new byte[correctBuf.Length / 2];
engine.Init(true, _validKey);
try
{
engine.ProcessBlock(shortBuf, 0, correctBuf, 0);
Fail("failed short input check");
}
catch (DataLengthException)
{
// expected
}
try
{
engine.ProcessBlock(correctBuf, 0, shortBuf, 0);
Fail("failed short output check");
}
catch (DataLengthException)
{
// expected
}
engine.Init(false, _validKey);
try
{
engine.ProcessBlock(shortBuf, 0, correctBuf, 0);
Fail("failed short input check");
}
catch (DataLengthException)
{
// expected
}
try
{
engine.ProcessBlock(correctBuf, 0, shortBuf, 0);
Fail("failed short output check");
}
catch (DataLengthException)
{
// expected
}
}
示例4: Build
/**
* Construct a X9.31 secure random generator using the passed in engine and key. If predictionResistant is true the
* generator will be reseeded on each request.
*
* @param engine a block cipher to use as the operator.
* @param key the block cipher key to initialise engine with.
* @param predictionResistant true if engine to be reseeded on each use, false otherwise.
* @return a SecureRandom.
*/
public X931SecureRandom Build(IBlockCipher engine, KeyParameter key, bool predictionResistant)
{
if (mDateTimeVector == null)
{
mDateTimeVector = new byte[engine.GetBlockSize()];
Pack.UInt64_To_BE((ulong)DateTimeUtilities.CurrentUnixMs(), mDateTimeVector, 0);
}
engine.Init(true, key);
return new X931SecureRandom(mRandom, new X931Rng(engine, mDateTimeVector, mEntropySourceProvider.Get(engine.GetBlockSize() * 8)), predictionResistant);
}
示例5: TlsBlockCipher
public TlsBlockCipher(TlsClientContext context, IBlockCipher encryptCipher,
IBlockCipher decryptCipher, IDigest writeDigest, IDigest readDigest, int cipherKeySize)
{
this.context = context;
this.randomData = new byte[256];
context.SecureRandom.NextBytes(randomData);
this.encryptCipher = encryptCipher;
this.decryptCipher = decryptCipher;
int prfSize = (2 * cipherKeySize) + writeDigest.GetDigestSize()
+ readDigest.GetDigestSize() + encryptCipher.GetBlockSize()
+ decryptCipher.GetBlockSize();
SecurityParameters securityParameters = context.SecurityParameters;
byte[] keyBlock = TlsUtilities.PRF(securityParameters.masterSecret, "key expansion",
TlsUtilities.Concat(securityParameters.serverRandom, securityParameters.clientRandom),
prfSize);
int offset = 0;
// Init MACs
wMac = CreateTlsMac(writeDigest, keyBlock, ref offset);
rMac = CreateTlsMac(readDigest, keyBlock, ref offset);
// Build keys
KeyParameter encryptKey = CreateKeyParameter(keyBlock, ref offset, cipherKeySize);
KeyParameter decryptKey = CreateKeyParameter(keyBlock, ref offset, cipherKeySize);
// Add IVs
ParametersWithIV encryptParams = CreateParametersWithIV(encryptKey,
keyBlock, ref offset, encryptCipher.GetBlockSize());
ParametersWithIV decryptParams = CreateParametersWithIV(decryptKey,
keyBlock, ref offset, decryptCipher.GetBlockSize());
if (offset != prfSize)
throw new TlsFatalAlert(AlertDescription.internal_error);
// Init Ciphers
encryptCipher.Init(true, encryptParams);
decryptCipher.Init(false, decryptParams);
}
示例6: Setup
static IBlockCipher Setup (IBlockCipher algo, string mode, bool encryption, byte[] key, byte[] iv)
{
if (mode == "ECB") {
algo.Init (encryption, new KeyParameter (key));
return algo;
}
IBlockCipher cipher = null;
if (mode == "CBC") cipher = new Org.BouncyCastle.Crypto.Modes.CbcBlockCipher (algo);
if (mode == "CFB") cipher = new Org.BouncyCastle.Crypto.Modes.CfbBlockCipher (algo, iv.Length << 3);
if (mode == "OFB") cipher = new Org.BouncyCastle.Crypto.Modes.OfbBlockCipher (algo, iv.Length);
if (cipher != null) {
cipher.Init (encryption, new ParametersWithIV (new KeyParameter (key), iv));
return cipher;
}
throw new ArgumentException ();
}