コード例 #1
0
        /// <summary>
        ///     Проверка подписи.
        /// </summary>
        /// <param name="request">Данные.</param>
        /// <returns>True - провека прошла успешно, иначе False.</returns>
        public bool VerifyCertificate(VerifySignatureCertRequest request)
        {
            log.Debug("VerifySignatureSert: {0}", request);
            byte[] signatureValue   = Convert.FromBase64String(request.Signature);
            byte[] dataValue        = Encoding.UTF8.GetBytes(request.Data);
            byte[] certificateValue = Convert.FromBase64String(request.Certificate);

            return(Gost2001KeyContainer.VerifyCertificate(signatureValue, dataValue, certificateValue));
        }
コード例 #2
0
        public void SignCertigicateSignature()
        {
            byte[] data = GetRandomData();

            byte[] signature, certificateRawData;
            byte[] hash = Gost2001KeyContainer.ComputeHash(data);


            using (GostCryptFacade keyContainer = Gost2001KeyContainer.Open(ContainerSert, ContainerPassword))
            {
                signature          = keyContainer.SignHash(hash, KeyNumber.Signature);
                certificateRawData = keyContainer.ExportCertificateData();
            }

            bool result = Gost2001KeyContainer.VerifyCertificate(signature, data, certificateRawData);

            Assert.IsTrue(result);
        }