示例#1
0
        /// <summary>
        /// Расчитать HASH
        /// </summary>
        /// <param name="cryptoProviderType">Тип Критопровайдера</param>
        /// <param name="bytes"></param>
        /// <returns></returns>
        public static string ComputeHash(CryptoProviderTypeEnum cryptoProviderType, byte[] bytes)
        {
            byte[] hashValue;
            GostCryptoConfig.ProviderType = (int)cryptoProviderType;
            var hashAlgorithm = new Gost3411HashAlgorithm();

            hashValue = hashAlgorithm.ComputeHash(bytes);
            return(BitConverter.ToString(hashValue).Replace("-", ""));
        }
        private static bool VerifySignature(Gost3410 publicKey, Stream dataStream, byte[] signature)
        {
            byte[] hash;

            using (var hashAlg = new Gost3411HashAlgorithm())
            {
                hash = hashAlg.ComputeHash(dataStream);
            }

            return(publicKey.VerifySignature(hash, signature));
        }
        private static byte[] CreateSignature(Gost3410 privateKey, Stream dataStream)
        {
            byte[] hash;

            using (var hashAlg = new Gost3411HashAlgorithm())
            {
                hash = hashAlg.ComputeHash(dataStream);
            }

            return(privateKey.CreateSignature(hash));
        }
示例#4
0
        private static bool VerifySignature(Gost3410AsymmetricAlgorithmBase publicKey, Stream dataStream, byte[] signature)
        {
            byte[] hash;

            using (var hashAlg = new Gost3411HashAlgorithm())
            {
                hash = hashAlg.ComputeHash(dataStream);
            }

            var deformatter = new GostSignatureDeformatter(publicKey);

            return(deformatter.VerifySignature(hash, signature));
        }
示例#5
0
        private static byte[] CreateSignature(Gost3410AsymmetricAlgorithmBase privateKey, Stream dataStream)
        {
            byte[] hash;

            using (var hashAlg = new Gost3411HashAlgorithm())
            {
                hash = hashAlg.ComputeHash(dataStream);
            }

            var formatter = new GostSignatureFormatter(privateKey);

            return(formatter.CreateSignature(hash));
        }
示例#6
0
        public void ShouldComputeHash3411_94()
        {
            // Given
            var dataStream = CreateDataStream();

            // When

            byte[] hashValue;

            using (var hash = new Gost3411HashAlgorithm())
            {
                hashValue = hash.ComputeHash(dataStream);
            }

            // Then
            Assert.IsNotNull(hashValue);
            Assert.AreEqual(32, hashValue.Length);
        }