public string EncryptString(string plainText, string keyName) { if (plainText == null || plainText.Length <= 0) { throw new ArgumentNullException("PlainText cannot be empty"); } if (keyName == null || keyName.Length <= 0) { throw new ArgumentNullException("Key Name cannot be empty"); } var keyString = _secretStore.GetKey(keyName, _defaultKeyIndex); switch (_defaultAlgorithm) { case EncryptionAlgorithm.AES128_CBC: var aes128 = new AES128_CBC(); return(aes128.Encrypt(plainText, keyString, _defaultAlgorithm, _defaultKeyIndex)); case EncryptionAlgorithm.AES128_CTR: case EncryptionAlgorithm.AES256_CTR: var aesCTR = new AES_CTR(); return(aesCTR.Encrypt(plainText, keyString, _defaultAlgorithm, _defaultKeyIndex)); default: throw new NotImplementedException(_defaultAlgorithm.ToString()); } }