public void TestDecryptWrongAesKey() { const string dataFileName = "PNG_transparency_demonstration_1.png"; Assert.Equal(true, File.Exists(dataFileName)); var dataToEncrypt = File.ReadAllBytes(dataFileName); var pass = Encoding.UTF8.GetBytes("TestPassword"); var salt = new byte[32]; var mySha256 = SHA256.Create(); int seed = BitConverter.ToInt32(mySha256.ComputeHash(BitConverter.GetBytes((int)DateTime.UtcNow.Ticks & DateTime.UtcNow.Millisecond)), 0); var randomSource = new Random(seed); randomSource.NextBytes(salt); var keyIvGenerated = CryptConfigFileHelper.GenKeyAndIv(pass, salt); byte[] encryptedData = keyIvGenerated.EncryptData(dataToEncrypt); var changedKey = new byte[keyIvGenerated.Key.Length]; keyIvGenerated.Key.CopyTo(changedKey, 0); changedKey[0] = (byte)(changedKey[0] ^ 3); Assert.Throws <EnumException <AesKeyIvPair.EDecryptDataErrCodes> >(() => { byte[] originData = new AesKeyIvPair { Iv = keyIvGenerated.Iv, Key = changedKey } .DecryptData(encryptedData); _output.WriteLine("Err key decrypted"); Assert.Equal(originData, dataToEncrypt); }); }
public void TestGenerateKeySpeed() { var sw = new Stopwatch(); sw.Start(); var pass = Encoding.UTF8.GetBytes("TestPassword"); var salt = Encoding.UTF8.GetBytes("nNmy:8nPS<wEgC)kQklo"); var keyIvPair = CryptConfigFileHelper.GenKeyAndIv(pass, salt); sw.Stop(); _output.WriteLine("Key {0}", BitConverter.ToString(keyIvPair.Key)); _output.WriteLine("Iv {0}", BitConverter.ToString(keyIvPair.Iv)); _output.WriteLine("Elapsed={0}", sw.Elapsed.TotalMilliseconds); }