Exemple #1
0
        public static byte[] Encrypt(byte[] dataToEncrypt, byte[] key, byte[] iv)
        {
            if (dataToEncrypt == null || dataToEncrypt.Length == 0)
            {
                return(null);
            }

            if (key == null)
            {
                throw new ArgumentNullException("key");
            }

            if (key.Length != AesKeyLength)
            {
                throw new ArgumentOutOfRangeException("key", "AES Key Length should always be " + AesKeyLength);
            }

            if (iv == null)
            {
                throw new ArgumentNullException("iv");
            }

            if (iv.Length != AesIVLength)
            {
                throw new ArgumentOutOfRangeException("iv", "AES IV Length should always be " + AesIVLength);
            }

            using (var res = aesCryptoServiceProviderPool.Get())
            {
                using (var encrypter = res.Data.CreateEncryptor(key, iv))
                {
                    using (var ms = new MemoryStream())
                    {
                        ms.Write(iv, 0, AesIVLength);
                        using (var cs = new CryptoStream(ms, encrypter, CryptoStreamMode.Write))
                        {
                            cs.Write(dataToEncrypt, 0, dataToEncrypt.Length);
                            cs.FlushFinalBlock();
                        }

                        return(ms.ToArray());
                    }
                }
            }
        }
Exemple #2
0
        public static bool VerifySha256Hash(byte[] hash, byte[] sign, byte[] n, byte[] e)
        {
            using (var rsa = rsaCryptoServiceProviderPool.Get())
            {
                var p = new RSAParameters()
                {
                    Modulus = n, Exponent = e
                };
                rsa.Data.ImportParameters(p);

                return(rsa.Data.VerifyHash(hash, sign, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1));
            }
        }