Класс проверки подписи на алгоритме ГОСТ Р 34.10-2001.

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

Синтаксис

Visual Basic
<ComVisibleAttribute(True)> _
Public Class GostSignatureDeformatter _
	Inherits AsymmetricSignatureDeformatter
C#
[ComVisibleAttribute(true)]
public class GostSignatureDeformatter : AsymmetricSignatureDeformatter
Visual C++
[ComVisibleAttribute(true)]
public ref class GostSignatureDeformatter : public AsymmetricSignatureDeformatter
JavaScript
CryptoPro.Sharpei.GostSignatureDeformatter = function();

Type.createClass(
	'CryptoPro.Sharpei.GostSignatureDeformatter',
	AsymmetricSignatureDeformatter);

Заметки

Проверяет подписи, созданные на алгоритме ГОСТ Р 34.10-2001. Класс для создания подписи - GostSignatureFormatter

Примеры

Пример, вычисления подписи при помощи GostSignatureFormatterи проверки полученной подписи при помощи GostSignatureDeformatter.
Visual Basic Copy imageCopy Code
' Создаем произвольный ключ на основе CSP.
Dim Gost As Gost3410CryptoServiceProvider = New Gost3410CryptoServiceProvider()

' Хэш, который будем подписывать.
Dim Hash As Byte() = New Byte() { _
    &H9D, &H49, &H5C, &HED, &HAE, &H47, &HE5, &HFD, _
    &HE6, &H40, &HC2, &H66, &HD6, &HB3, &H47, &HDB, _
    &H22, &HA, &H6A, &HAB, &H33, &H4D, &H7, &HC7, _
    &HF3, &HE8, &H8E, &HD0, &HBA, &H0, &HF3, &H1C _
}

' Создаем класс формирования подписи на основе 
' созданного случайного ключа.
Dim GostFormatter As GostSignatureFormatter = New GostSignatureFormatter(Gost)

' Подписываем хэш, получаем подпись.
Dim SignedHash As Byte() = GostFormatter.CreateSignature(Hash)

' Создаем объект проверки подписи и передаем ему
' ключ для проверки.
Dim GostDeformatter As GostSignatureDeformatter = _
    New GostSignatureDeformatter(Gost)

' Проверяем подпись и выводим результат на экран.
If (GostDeformatter.VerifySignature(Hash, SignedHash)) Then
    Console.WriteLine("Подпись верна.")
Else
    Console.WriteLine("Подпись искажена.")
End If
C# Copy imageCopy Code
// Создаем произвольный ключ на основе CSP.
Gost3410CryptoServiceProvider Gost = new Gost3410CryptoServiceProvider();

// Хэш, который будем подписывать.
byte[] Hash = 
{ 
    0x9d, 0x49, 0x5c, 0xed, 0xae, 0x47, 0xe5, 0xfd,
    0xe6, 0x40, 0xc2, 0x66, 0xd6, 0xb3, 0x47, 0xdb,
    0x22, 0x0a, 0x6a, 0xab, 0x33, 0x4d, 0x07, 0xc7,
    0xf3, 0xe8, 0x8e, 0xd0, 0xba, 0x00, 0xf3, 0x1c
};

// Создаем класс формирования подписи на основе 
// созданного случайного ключа.
GostSignatureFormatter GostFormatter = new GostSignatureFormatter(Gost);

// Подписываем хэш, получаем подпись.
byte[] SignedHash = GostFormatter.CreateSignature(Hash);

// Создаем объект проверки подписи и передаем ему
// ключ для проверки.
GostSignatureDeformatter GostDeformatter = 
    new GostSignatureDeformatter(Gost);

// Проверяем подпись и выводим результат на экран.
if (GostDeformatter.VerifySignature(Hash, SignedHash))
    Console.WriteLine("Подпись верна.");
else
    Console.WriteLine("Подпись искажена.");

Иерархия наследования

System..::..Object
  AsymmetricSignatureDeformatter
    CryptoPro.Sharpei..::..GostSignatureDeformatter

Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантирована.

См. также: