public void TestHashAndEncryptFromString() { string data = "Some test data"; byte[] encryptedData; string base64EncryptedData; using (ICrypto crypto = new AesCrypto("password!")) { encryptedData = crypto.HashAndEncrypt(data); base64EncryptedData = crypto.HashAndEncryptToBase64(data); } string decryptedData; string decryptedDataFromBase64; using (ICrypto crypto = new AesCrypto("password!")) { decryptedData = crypto.DecryptToStringAndCheckHash(encryptedData); decryptedDataFromBase64 = crypto.DecryptToStringAndCheckHash(base64EncryptedData); } Assert.AreEqual(data, decryptedData); Assert.AreEqual(data, decryptedDataFromBase64); }
public void TestHashAndEncryptWithNoData() { byte[] data = new byte[0]; byte[] encryptedData; using (ICrypto crypto = new AesCrypto("password!")) { encryptedData = crypto.HashAndEncrypt(data); } byte[] decryptedData; using (ICrypto crypto = new AesCrypto("password!")) { decryptedData = crypto.DecryptAndCheckHash(encryptedData); } Assert.AreEqual(0, decryptedData.Length); }
public void TestHashAndEncryptTamperingWithData() { byte[] data = CreateRandomData(1000); byte[] encryptedData; using (ICrypto crypto = new AesCrypto("password!")) { encryptedData = crypto.HashAndEncrypt(data); } //Tamper encryptedData[20] = (byte)~(uint)encryptedData[20]; using (ICrypto crypto = new AesCrypto("password!")) { crypto.DecryptAndCheckHash(encryptedData); } }
public void TestHashAndEncrypt() { byte[] data = CreateRandomData(1000); byte[] encryptedData; string base64EncryptedData; using (ICrypto crypto = new AesCrypto("password!")) { encryptedData = crypto.HashAndEncrypt(data); base64EncryptedData = crypto.HashAndEncryptToBase64(data); } byte[] decryptedData; byte[] decryptedDataFromBase64; using (ICrypto crypto = new AesCrypto("password!")) { decryptedData = crypto.DecryptAndCheckHash(encryptedData); decryptedDataFromBase64 = crypto.DecryptAndCheckHash(base64EncryptedData); } TestHelper.AreEqual(data, decryptedData); TestHelper.AreEqual(data, decryptedDataFromBase64); }