public void KeyNull_ShouldThrow_ArgumentNullException() { // Arrange // Act // Assert Assert.ThrowsAsync <ArgumentNullException>(async() => await Aes256Encryption.Decrypt(Encoding.UTF8.GetBytes("Top secret"), null, IVDefault)); }
public void KeyNot32Bytes_ShouldThrow_ArgumentOutOfRangeException() { // Arrange // Act // Assert Assert.ThrowsAsync <ArgumentOutOfRangeException>(async() => await Aes256Encryption.Decrypt(Encoding.UTF8.GetBytes("Top secret"), new byte[] { 0x00, 0x01 }, IVDefault)); }
public void DataNull_ShouldThrow_ArgumentNullException() { // Arrange // Act // Assert Assert.ThrowsAsync <ArgumentNullException>(async() => await Aes256Encryption.Decrypt(null, KeyDefault, IVDefault)); }
public async Task DataEmpty_ShouldReturn_EmptyArray() { // Arrange // Act var data = await Aes256Encryption.Encrypt(new byte[0], KeyDefault, IVDefault); // Assert data.Should().BeEmpty(); }
public async Task Roundtrip_Should_Succeed() { // Arrange var data = Encoding.UTF8.GetBytes("Top secret"); // Act var encrypted = await Aes256Encryption.Encrypt(data, KeyDefault, IVDefault); var decrypted = await Aes256Encryption.Decrypt(encrypted, KeyDefault, IVDefault); // Assert encrypted.SequenceEqual(data).Should().BeFalse(); decrypted.SequenceEqual(data).Should().BeTrue(); }
public void NullSafeSet(IDbCommand cmd, object value, int index, bool[] settable, ISessionImplementor session) { if (value == null) { return; } var encryptedCreditCard = (EncryptedCardNumber)value; if (encryptedCreditCard.Number.IsNullOrEmpty()) { NHibernateUtil.String.NullSafeSet(cmd, null, index, session); NHibernateUtil.Int32.NullSafeSet(cmd, null, index + 1, session); } else { NHibernateUtil.String.NullSafeSet(cmd, Aes256Encryption.Encrypt(encryptedCreditCard.Number), index, session); NHibernateUtil.Int32.NullSafeSet(cmd, Aes256Encryption.NewestDecryptionKeyID, index + 1, session); } }
public object NullSafeGet(IDataReader dr, string[] names, ISessionImplementor session, object owner) { if (dr == null) { return(null); } var numberColumn = names[0]; var decryptionKeyIDColumn = names[1]; var number = (string)NHibernateUtil.String.NullSafeGet(dr, numberColumn, session, owner); if (number.IsNullOrEmpty()) { return(new EncryptedCardNumber()); } var decryptionKeyID = (int)NHibernateUtil.Int32.NullSafeGet(dr, decryptionKeyIDColumn, session, owner); return(new EncryptedCardNumber { Number = Aes256Encryption.DecryptString(number, decryptionKeyID), DecryptionKeyID = decryptionKeyID }); }