Проверка подписи для указанных данных.
Пространство имен:
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.
- signature
- Type: array<System..::..Byte>[]()[][]
Подпись, которую необходимо проверить.
Возвращаемое значение
trueTruetruetrue (True в Visual Basic), если подпись подлинна, falseFalsefalsefalse (False в Visual Basic) - иначе.Примеры
Пример подписи и
проверки подписи данных.
Visual Basic | Copy Code |
---|---|
' Copyright (C) 2006-2012 Крипто-Про. Все права защищены. ' ' Этот файл содержит информацию, являющуюся ' собственностью компании Крипто Про. ' ' Любая часть этого файла не может быть скопирована, ' исправлена, переведена на другие языки, ' локализована или модифицирована любым способом, ' откомпилирована, передана по сети с или на ' любую компьютерную систему без предварительного ' заключения соглашения с компанией Крипто Про. ' ' Программный код, содержащийся в этом файле, предназначен ' исключительно для целей обучения и не может быть использован ' для защиты информации. ' ' Компания Крипто-Про не несет никакой ' ответственности за функционирование этого кода. ' Пример подписи и проверки подписи текстовой строки. ' ' Данный пример ' 1. Подписывает текстовую строку (в виде байтового массива) ' на алгоритме ГОСТ Р 34.10-2001. ' 2. Проверяет правильность подписи и выводит результат. Imports System Imports CryptoPro.Sharpei Class SignData1 Shared Sub Main() Try ' Объект, реализующий алгоритм ГОСТ 3410. Dim Gost As Gost3410CryptoServiceProvider = New Gost3410CryptoServiceProvider() ' Данные для подписи. Dim Data As Byte() = New Byte() {59, 4, 248, 102, 77, 97, 142, 201, 21, _ 12, 224, 93, 25, 41, 100, 197, 213, 134, 130, 135} 'Объект, реализующий алгоритм хэширования ГОСТ 3411. Dim GostHash As Gost3411CryptoServiceProvider = New Gost3411CryptoServiceProvider() ' Подписываем данные: Dim SignedValue As Byte() = Gost.SignData(Data, GostHash) ' Проверяем правильность подписи и выводим результат. Dim b As Boolean = Gost.VerifyData(Data, GostHash, SignedValue) If (b) Then Console.WriteLine("Подпись верна.") Else Console.WriteLine("Подпись вычислена неверно.") End If Catch e As ArgumentNullException Console.WriteLine(e.Message) End Try End Sub End Class |
C# | Copy Code |
---|---|
// Copyright (C) 2006-2012 Крипто-Про. Все права защищены. // // Этот файл содержит информацию, являющуюся // собственностью компании Крипто-Про. // // Любая часть этого файла не может быть скопирована, // исправлена, переведена на другие языки, // локализована или модифицирована любым способом, // откомпилирована, передана по сети с или на // любую компьютерную систему без предварительного // заключения соглашения с компанией Крипто-Про. // // Программный код, содержащийся в этом файле, предназначен // исключительно для целей обучения и не может быть использован // для защиты информации. // // Компания Крипто-Про не несет никакой // ответственности за функционирование этого кода. // Пример подписи и проверки подписи текстовой строки. // // Данный пример // 1. Подписывает текстовую строку (в виде байтового массива) // на алгоритме ГОСТ Р 34.10-2001. // 2. Проверяет правильность подписи и выводит результат. using System; using System.Collections.Generic; using System.Security.Cryptography; using System.Text; using CryptoPro.Sharpei; namespace Samples { class SignData1 { [STAThread] static void Main() { try { // Объект, реализующий алгоритм ГОСТ 3410. Gost3410CryptoServiceProvider Gost = new Gost3410CryptoServiceProvider(); // Данные для подписи. byte[] Data = { 59, 4, 248, 102, 77, 97, 142, 201, 21, 12, 224, 93, 25, 41, 100, 197, 213, 134, 130, 135 }; // Объект, реализующий алгоритм хэширования ГОСТ 3411. Gost3411CryptoServiceProvider GostHash = new Gost3411CryptoServiceProvider(); // Подписываем данные: 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. |
Версии CSP:
КриптоПро CSP 2.0, КриптоПро CSP 3.0, КриптоПро CSP 3.6