コード例 #1
0
ファイル: Encryptor.cs プロジェクト: simonep77/bdo
        /// <summary>
        /// Decripta un buffer utilizzando una chiave ed un algoritmo forniti
        /// </summary>
        /// <param name="algorithm"></param>
        /// <param name="key"></param>
        /// <param name="input"></param>
        /// <returns></returns>
        public static byte[] Decrypt(Encryptor.Algorithm algorithm, string key, byte[] input)
        {
            byte[] buffkey = generateByteString(key);
            byte[] buff_iv = buffkey;

            return(Decrypt(algorithm, buffkey, buff_iv, input));
        }
コード例 #2
0
ファイル: Encryptor.cs プロジェクト: simonep77/bdo
        /// <summary>
        /// Decripta un testo in base 64 utilizzando una chiave ed un algoritmo forniti
        /// </summary>
        /// <param name="algorithm"></param>
        /// <param name="key"></param>
        /// <param name="inputb64"></param>
        /// <returns></returns>
        public static string DecryptFromBase64String(Encryptor.Algorithm algorithm, string key, string inputb64)
        {
            byte[] buffkey    = generateByteString(key);
            byte[] buff_iv    = buffkey;
            byte[] buff_input = Convert.FromBase64String(inputb64);

            return(Encoding.UTF8.GetString(Decrypt(algorithm, buffkey, buff_iv, buff_input)));
        }
コード例 #3
0
ファイル: Encryptor.cs プロジェクト: simonep77/bdo
        /// <summary>
        /// Cripta un testo in base 64 utilizzando una chiave ed un algoritmo forniti
        /// </summary>
        /// <param name="algorithm"></param>
        /// <param name="key"></param>
        /// <param name="input"></param>
        /// <returns></returns>
        public static string EncryptToBase64String(Encryptor.Algorithm algorithm, string key, string input)
        {
            byte[] buffkey    = generateByteString(key);
            byte[] buff_iv    = buffkey;
            byte[] buff_input = generateByteString(input);

            return(Convert.ToBase64String(Encrypt(algorithm, buffkey, buff_iv, buff_input)));
        }
コード例 #4
0
ファイル: Encryptor.cs プロジェクト: simonep77/bdo
        /// <summary>
        /// Decripta un buffer utilizzando una chiave, un IV ed un algoritmo forniti
        /// </summary>
        /// <param name="algorithm"></param>
        /// <param name="key"></param>
        /// <param name="iv"></param>
        /// <param name="input"></param>
        /// <returns></returns>
        public static byte[] Decrypt(Encryptor.Algorithm algorithm, byte[] key, byte[] iv, byte[] input)
        {
            try
            {
                //Crea algoritmo
                SymmetricAlgorithm oAlgo = getAlgorithm(algorithm);

                //Esegue validazione Key
                checkAlgoKey(oAlgo, key);

                //Decrypt
                return(Transform(input, oAlgo.CreateDecryptor(key, iv)));
            }
            catch (Exception ex)
            {
                throw new ApplicationException(string.Concat("Si e' verificato un errore durante l'operazione di decrypt: ", ex.Message));
            }
        }
コード例 #5
0
ファイル: Encryptor.cs プロジェクト: simonep77/bdo
        /// <summary>
        /// Crea algoritmo a partire dalla definizione
        /// </summary>
        /// <param name="algorithm"></param>
        /// <returns></returns>
        private static SymmetricAlgorithm getAlgorithm(Encryptor.Algorithm algorithm)
        {
            switch (algorithm)
            {
            case Algorithm.DES:
                return(DESCryptoServiceProvider.Create());

            case Algorithm.RC2:
                return(RC2CryptoServiceProvider.Create());

            case Algorithm.Rijndael:
                return(RijndaelManaged.Create());

            case Algorithm.TripleDES:
                return(TripleDESCryptoServiceProvider.Create());

            default:
                break;
            }
            //Default
            return(null);
        }