Esempio n. 1
0
        /// <summary>
        /// Encrypts and encodes the specified data.
        /// </summary>
        /// <param name="plainText">The plain text.</param>
        /// <returns></returns>
        public string EncryptAndEncode(string plainText)
        {
            if (string.IsNullOrEmpty(plainText))
            {
                return(plainText);
            }

            CryptoSettings  settings       = CryptoSettings.GetSettings();
            ICryptoProvider cryptoProvider = settings.CryptoProvider;

            byte[] iv         = cryptoProvider.GenerateRandomIv();
            byte[] cipherText = cryptoProvider.EncryptData(plainText, Initialise(), iv);
            return(EncodeCipherText(settings.Version, iv, cipherText));
        }
Esempio n. 2
0
        /// <summary>
        /// Decodes and decrypts the specified cipher text.
        /// </summary>
        /// <param name="encodedCipherText">The encoded cipher text.</param>
        /// <returns></returns>
        public string DecodeAndDecrypt(string encodedCipherText)
        {
            if (string.IsNullOrEmpty(encodedCipherText))
            {
                return(encodedCipherText);
            }

            int version;

            byte[] iv;
            byte[] cipherText;

            if (!TryDecodeEncodedCipherText(encodedCipherText, out version, out iv, out cipherText))
            {
                return(null);
            }

            CryptoSettings  settings       = CryptoSettings.GetSettings(version);
            ICryptoProvider cryptoProvider = settings.CryptoProvider;

            return(cryptoProvider.DecryptData(cipherText, Initialise(), iv));
        }