Проверка подписи для указанных данных.

Пространство имен:  CryptoPro.Sharpei
Сборка:  CryptoPro.Sharpei.Base (в CryptoPro.Sharpei.Base.dll)

Синтаксис

Visual Basic
Public Function VerifyData ( _
	buffer As Byte(), _
	hashAlg As Object, _
	signature As Byte() _
) As Boolean
C#
public bool VerifyData(
	byte[] buffer,
	Object hashAlg,
	byte[] signature
)
Visual C++
public:
bool VerifyData(
	array<unsigned char>^ buffer, 
	Object^ hashAlg, 
	array<unsigned char>^ signature
)
JavaScript
function verifyData(buffer, hashAlg, signature);

Параметры

buffer
Type: array<System..::..Byte>[]()[][]
Данные, для которых проверяется подпись.
hashAlg
Type: System..::..Object
Объект, реализующий алгоритм вычисления хэш по ГОСТ Р 34.11-2012 256.
signature
Type: array<System..::..Byte>[]()[][]
Подпись, которую необходимо проверить.

Возвращаемое значение

trueTruetruetrue (True в Visual Basic), если подпись подлинна, falseFalsefalsefalse (False в Visual Basic) - иначе.

Примеры

Пример подписи и проверки подписи данных.
C# Copy imageCopy Code
// Copyright (C) 2006-2012 Крипто-Про. Все права защищены.
//
// Этот файл содержит информацию, являющуюся
// собственностью компании Крипто-Про.
// 
// Любая часть этого файла не может быть скопирована,
// исправлена, переведена на другие языки,
// локализована или модифицирована любым способом,
// откомпилирована, передана по сети с или на
// любую компьютерную систему без предварительного
// заключения соглашения с компанией Крипто-Про.
// 
// Программный код, содержащийся в этом файле, предназначен
// исключительно для целей обучения и не может быть использован
// для защиты информации.
// 
// Компания Крипто-Про не несет никакой
// ответственности за функционирование этого кода.

// Пример подписи и проверки подписи текстовой строки.
//
// Данный пример
// 1. Подписывает текстовую строку (в виде байтового массива) 
// на алгоритме ГОСТ Р 34.10-2012 256.
// 2. Проверяет правильность подписи и выводит результат.

using System;
using System.Collections.Generic;
using System.Security.Cryptography;
using System.Text;

using CryptoPro.Sharpei;

namespace Samples
{
    class SignData1_2012_256
    {
        [STAThread]
        static void Main()
        {
            try
            {
                // Объект, реализующий алгоритм ГОСТ 3410.
                Gost3410_2012_256CryptoServiceProvider Gost = new Gost3410_2012_256CryptoServiceProvider();

                // Данные для подписи.
                byte[] Data = { 59, 4, 248, 102, 77, 97, 142, 201, 21, 
                    12, 224, 93, 25, 41, 100, 197, 213, 134, 130, 135 };

                // Объект, реализующий алгоритм хэширования ГОСТ 3411.
                Gost3411_2012_256CryptoServiceProvider GostHash = new Gost3411_2012_256CryptoServiceProvider();

                // Подписываем данные:
                byte[] SignedValue = Gost.SignData(Data, GostHash);

                //Проверяем правильность подписи и выводим результат.
                bool b=Gost.VerifyData(Data, GostHash, SignedValue);
                if (b)
                {
                    Console.WriteLine("Подпись вычислена верно.");
                }
                else
                {
                    Console.WriteLine("Подпись вычислена неверно.");
                }
            }
            catch (ArgumentNullException e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}

Разрешения

РазрешениеОписание
KeyContainerPermissionДля открытия существующего контейнера. Связанные перечисления: Open. Действия по обеспечению безопасности: Demand .
KeyContainerPermissionДля создания контейнера с заданным (не случаыным именем). Связанные перечисления: Create. Действия по обеспечению безопасности: Demand .

Исключения

ИсключениеУсловие
CryptographicExceptionhalg не является алгоритмом хэширования по ГОСТ Р 34.11-2012 256.

Версии CSP:

КриптоПро CSP 2.0, КриптоПро CSP 3.0, КриптоПро CSP 3.6

См. также: