Проверка подписи для указанных данных.
Пространство имен:
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 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 . |
Исключения
Исключение | Условие |
---|---|
CryptographicException | halg не является алгоритмом хэширования по ГОСТ Р 34.11-2012 256. |
Версии CSP:
КриптоПро CSP 2.0, КриптоПро CSP 3.0, КриптоПро CSP 3.6