/// <summary> /// Decrypts a byte array /// </summary> /// <param name="cipherText">Ciphertext byte array</param> /// <param name="mode">Cipher mode</param> /// <returns>Plaintext or null if moode is not CipherMode.ECB.</returns> public byte[] Decrypt(byte[] cipherText, System.Security.Cryptography.CipherMode mode) { switch (mode) { case System.Security.Cryptography.CipherMode.ECB: return(Decrypt_ECB(cipherText)); default: return(null); } }
static CipherMode FromSysCipherMode(System.Security.Cryptography.CipherMode mode) { switch (mode) { case System.Security.Cryptography.CipherMode.CBC: return(CipherMode.CBC); case System.Security.Cryptography.CipherMode.ECB: return(CipherMode.ECB); case System.Security.Cryptography.CipherMode.OFB: return(CipherMode.OFB); case System.Security.Cryptography.CipherMode.CFB: return(CipherMode.CFB); case System.Security.Cryptography.CipherMode.CTS: return(CipherMode.CTS); default: throw new Exception(); } }
/// <summary> /// Sets the CipherMode. /// </summary> /// <param name="cipherMode">new CipherMode</param> public void updateCipherMode(System.Security.Cryptography.CipherMode cipherMode = System.Security.Cryptography.CipherMode.CBC) { this.cipherMode = cipherMode; }
private static ISymmetricCryptoAlgorithm GetSymmetricAlgorithm(this SymmetricAlgorithmName name, SymmetricAlgorithmKey keySize, System.Security.Cryptography.CipherMode mode) { switch (name) { case SymmetricAlgorithmName.TripleDES: return(new TripleDES(keySize: (int)keySize, mode: mode)); break; case SymmetricAlgorithmName.AES: default: return(new AES(keySize: (int)keySize, mode: mode)); break; } }