Esempio n. 1
0
        public void Sha1AndAes128Works()
        {
            var crng   = new CypherBasedPrngGenerator(_ZeroKey16Bytes, CryptoPrimitive.Aes128Managed(), SHA1.Create(), new CypherCounter(16));
            var buffer = new byte[crng.BlockSizeBytes * 2];

            crng.FillWithRandomBytes(buffer);

            Assert.IsFalse(buffer.All(b => b == 0));
        }
Esempio n. 2
0
        public void Aes128And256CyphersProduceDifferentRandomBlocks()
        {
            var crngAes128 = new CypherBasedPrngGenerator(_ZeroKey16Bytes, CryptoPrimitive.Aes128Managed(), SHA256.Create(), new CypherCounter(16));
            var crngAes256 = new CypherBasedPrngGenerator(_ZeroKey32Bytes, CryptoPrimitive.Aes256Managed(), SHA256.Create(), new CypherCounter(16));
            var buffer128  = new byte[crngAes128.BlockSizeBytes * 4];
            var buffer256  = new byte[crngAes256.BlockSizeBytes * 2];

            crngAes128.FillWithRandomBytes(buffer128);
            crngAes256.FillWithRandomBytes(buffer256);

            CollectionAssert.AreNotEqual(buffer128, buffer256);
        }
Esempio n. 3
0
 private static ICryptoPrimitive GetAes128CryptoPrimitive() => managedOrNativeCrypto == ManagedOrNative.Managed ? CryptoPrimitive.Aes128Managed()
                                                             : managedOrNativeCrypto == ManagedOrNative.Native ? new BlockCypherCryptoPrimitive(new AesCryptoServiceProvider()
 {
     KeySize = 128
 })
                                                             : CryptoPrimitive.Aes128();