public int Encrypt_CharacterLength_CipherIsExpectedNumberOfBytes(string plainText) { using var provider = new AesCbc(); var encryptionResult = provider.Encrypt(plainText); return(encryptionResult.Cipher.Length); }
public void Decrypt_NullIV_ThrowsArgumentNullException() { CbcResult encryptionResult; using (var provider1 = new AesCbc()) { encryptionResult = provider1.Encrypt("Hello world"); } using var provider2 = new AesCbc(); Assert.That(() => provider2.Decrypt(encryptionResult.Cipher, encryptionResult.Key, null), Throws.ArgumentNullException); }
public void Decrypt_KeyIsNot32Bytes_ThrowsArgumentException() { CbcResult encryptionResult; using (var provider1 = new AesCbc()) { encryptionResult = provider1.Encrypt("Hello world"); } using var provider2 = new AesCbc(); Assert.That(() => provider2.Decrypt(encryptionResult.Cipher, new byte[16], encryptionResult.IV), Throws.ArgumentException); }
public void Decrypt_CipherLengthNotDivisibleBy16_ThrowsArgumentException() { CbcResult encryptionResult; using (var provider1 = new AesCbc()) { encryptionResult = provider1.Encrypt("Hello world"); } using var provider2 = new AesCbc(); Assert.That(() => provider2.Decrypt(new byte[new Random().Next(1, 16)], encryptionResult.Key, encryptionResult.IV), Throws.ArgumentException); }
public void TestEncrypt() { var key = new HexString("0102030405060708090A0B0C0D0E0F10"); var iv = new HexString("1112131415161718191A1B1C1D1E1F20"); var clearText = "Hello World, let's try something longer than just one block."; var data = System.Text.Encoding.ASCII.GetBytes(clearText); var expected = new HexString("C29B1B0E628232FA5A8F77F88546DF259D8B8B4E73B5D21D9BA1EDB557CAE0A67CA855B59DC1F423A2540EC15377EF70B7750F310C8E40AE68A52E57D478BB60"); var actual = AesCbc.Encrypt(key.Bytes.ToArray(), iv.Bytes.ToArray(), data); CollectionAssert.AreEqual(expected.Bytes.ToArray(), actual); }
public void TestEncryptOneBlock() { var key = new HexString("0102030405060708090A0B0C0D0E0F10"); var iv = new HexString("1112131415161718191A1B1C1D1E1F20"); var clearText = "Hello World"; var data = System.Text.Encoding.ASCII.GetBytes(clearText); var expected = new HexString("E0A209AC01C9052681925942E0E5EA53"); var actual = AesCbc.Encrypt(key.Bytes.ToArray(), iv.Bytes.ToArray(), data); CollectionAssert.AreEqual(expected.Bytes.ToArray(), actual); }
public void Decrypt_PlainTextStringEncrypted_ResultMatchesPlaintext(string plainText) { CbcResult encryptionResult; using (var provider1 = new AesCbc()) { encryptionResult = provider1.Encrypt(plainText); } using var provider2 = new AesCbc(); var plainTextResult = provider2.Decrypt(encryptionResult.Cipher, encryptionResult.Key, encryptionResult.IV); Assert.That(plainTextResult, Is.EqualTo(plainText)); }
public void Encrypt_NullPlainText_ThrowsArgumentNullException() { using var provider = new AesCbc(); Assert.That(() => provider.Encrypt(null as string), Throws.ArgumentNullException); }
public void Encrypt_EmptyPlainText_ThrowsArgumentException() { using var provider = new AesCbc(); Assert.That(() => provider.Encrypt(string.Empty), Throws.ArgumentException); }