using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Security.Cryptography; using System.IO; namespace inChargeAES { /// <summary> /// Summary description for inChargeCrypto /// </summary> public class inChargeCrypto : IinChargeAES { public inChargeCrypto() { } public String inChargeEncrypt(String plaintext, byte[] encryptionKey, byte[] initializationVector) { if (plaintext == null || plaintext.Length <= 0) { throw new ArgumentNullException("plaintext"); } if(encryptionKey == null || encryptionKey.Length <= 0){ throw new ArgumentNullException("encryptionKey"); } if(initializationVector == null || initializationVector.Length <= 0){ throw new ArgumentNullException("initializationVector"); } byte[] encryptedText; using(RijndaelManaged rjManage = new RijndaelManaged()) { rjManage.Key = encryptionKey; rjManage.IV = initializationVector; rjManage.Mode = CipherMode.CBC; //rjManage.Padding = PaddingMode.None; ICryptoTransform iTransformer = rjManage.CreateEncryptor(rjManage.Key, rjManage.IV); using(MemoryStream memStream = new MemoryStream()) { using(CryptoStream cEncryptStream = new CryptoStream(memStream, iTransformer, CryptoStreamMode.Write)) { using(StreamWriter encryptStreamWriter = new StreamWriter(cEncryptStream)) { encryptStreamWriter.Write(plaintext); } encryptedText = memStream.ToArray(); } } } return Convert.ToBase64String(encryptedText); } public String inChargeDecrypt(byte[] cipher, byte[] encryptionKey, byte[] initializationVector) { if (cipher == null || cipher.Length <= 0){ throw new ArgumentNullException("cipher"); } if (encryptionKey == null || encryptionKey.Length <= 0){ throw new ArgumentNullException("encryptionKey"); } if (initializationVector == null || initializationVector.Length <= 0){ throw new ArgumentNullException("initializationVector"); } String decryptedText = null; using (RijndaelManaged rijManage = new RijndaelManaged()) { rijManage.Key = encryptionKey; rijManage.IV = initializationVector; rijManage.Mode = CipherMode.CBC; rijManage.Padding = PaddingMode.None; ICryptoTransform iTranformation = rijManage.CreateDecryptor(rijManage.Key, rijManage.IV); using(MemoryStream memStream = new MemoryStream(cipher)) { using(CryptoStream cDecryptorStream = new CryptoStream(memStream, iTranformation, CryptoStreamMode.Read)) { using (StreamReader decryptReader = new StreamReader(cDecryptorStream)) { decryptedText = decryptReader.ReadToEnd(); //Exception Is Thrown } //memStream.Read(cipher, 0, cipher.Length); } } } return decryptedText; } } }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)