/// <summary> /// Decrypts the specified ciphertext with the specified key and IV and returns the plaintext string. /// </summary> /// <param name="ciphertext">The ciphertext string.</param> /// <param name="key">The 256 bit key.</param> /// <param name="iv">The 128 bit initialization vector.</param> /// <returns>The plaintext string, or <c>null</c> if <paramref name="ciphertext"/> is <c>null</c></returns> public static string Decrypt(string ciphertext, byte[] key, byte[] iv) { if (ciphertext == null) { return null; } if (key == null) { throw new ArgumentNullException("key"); } if (iv == null) { throw new ArgumentNullException("iv"); } byte[] cipherBytes = Convert.FromBase64String(ciphertext); using (var utility = new SymmetricUtility(key, iv)) { byte[] decryptedBytes = utility.Decrypt(cipherBytes); return Encoding.UTF8.GetString(decryptedBytes); } }
/// <summary> /// Encrypts the specified plaintext with the specifed key and IV and UTF8 encoding and returns base 64 string. /// </summary> /// <param name="plaintext">The plaintext bytes.</param> /// <param name="key">The 256 bit key.</param> /// <param name="iv">The 128 bit initialization vector.</param> /// <returns>The encrypted string, or <c>null</c> if <paramref name="plaintext"/> is <c>null</c>.</returns> public static string Encrypt(string plaintext, byte[] key, byte[] iv) { if (plaintext == null) { return null; } byte[] plainBytes = Encoding.UTF8.GetBytes(plaintext); using (var utility = new SymmetricUtility(key, iv)) { byte[] cipherBytes = utility.Encrypt(plainBytes); return Convert.ToBase64String(cipherBytes); } }
public void TestConstructor_NullIV() { var util = new SymmetricUtility(SymmetricUtility.GenerateKey(), null); }
public void TestConstructor_NullKey() { var util = new SymmetricUtility(null, SymmetricUtility.GenerateIV()); }
public void TestConstructor_Null() { var util = new SymmetricUtility(null, null); }