Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Функция(метод) GrdSign вычисляет электронную электронно-цифровую подпись входного сообщения при помощи аппаратного аппаратно-реализованного криптографического алгоритма ECC160.

Синтаксис

Deck of Cards
id001
Card
defaulttrue
labelC
Code Block
languagecpp
int GRD_API GrdSign(
  HANDLE hGrd,			
  DWORD	dwAlgoNum,		
  DWORD	dwDataLng,		
  void *pData,			
  DWORD	dwSignResultLng,
  void *pSignResult,	
  void *pReserved
);	
Expand
titleПараметры функции

hGrd [in]

хэндл, через который будет выполнена данная операция

dwAlgoNum [in]

числовое имя аппаратного алгоритма электронной номер дескриптора алгоритма электронно-цифровой подписи ECC160

dwDataLng [in]

длина входного сообщения (20 байт для ECC160)

pData [in]

указатель на подписываемое входное на входное сообщение

dwSignResultLng [outin]

длина выходного буфера для электронной электронно-цифровой подписи (40 байт для ECC160)

pSignResult [out]

указатель на выходной буфер, в который будет сохранена электронная который будет сохранена электронно-цифровая подпись

pReserved

зарезервировано

Expand
titleВозвращаемое значение функции

GrdE_OK

нет ошибок

GrdE_InvalidArg

недопустимый параметр при вызове функции

GrdE_NoService

для алгоритма/ячейки сервис не предусмотрен

GrdE_AlgoNotFound

алгоритма с указанным числовым именем не существует

GrdE_GPis0

счетчик алгоритма достиг нулевого значения

Expand
titleОписание

Функция GrdSign позволяет вычислять вычислить электронно-цифровую подпись (ЭЦП) входного сообщения с помощью аппаратного алгоритма ЭЦП. Микропрограмма внутри электронного ключа считывает дескриптор алгоритма с заданным числовым именем, проверяет отсутствие в нём блокировок и только после этого переходит к выполнению операции.  

Дескриптор алгоритма с при помощи аппаратного алгоритма электронной цифровой подписи. Вычисление цифровой подписи выполняется алгоритмом с числовым именем, заданным в параметре dwAlgoNum. Этот алгоритм предварительно должен быть создан номером должен присутствовать в памяти ключа, в противном случае возвращается ошибка функция возвращает ошибку GrdE_AlgoNotFound. Если в дескрипторе алгоритма установлен флаг "уменьшение счетчика", то вычитание счетчика алгоритма происходит при каждом вызове GrdSign. При достижении счетчиком нулевого значения, возвращается ошибка GrdE_GPis0. Если при создании алгоритма или в процессе работы он был переведен в неактивное состояние, возвращается ошибка GrdE_InactiveItem. При попытке вызвать функцию для моделей ключей Stealth II или Stealth III, возвращается ошибка GrdE_NoService.

Длина входного сообщения задаётся параметром dwDataLng. Сообщение для подписи должно находиться по адресу, указанному в параметре pData. Возвращаемая цифровая подпись находится по адресу pSignResult и имеет длину dwSignResultLng. Для алгоритма ECC160 длина массива данных и длина возвращаемой цифровой подписи должны быть  . Буфер для ЭЦП должен быть зарезервирован заранее, а его длина передана функции через параметр dwSignResultLng. Функция проверяет входные указатели и длины на нулевые значение и возвращает GrdE_InvalidArg, если любое из значений окажется нулевым. В случае успешного выполнения, по адресу pSignResult будет находится вычисленная ЭЦП от входного сообщения, при этом функция возвращает GrdE_OK. Для алгоритма ECC160 длина входного сообщения и длина возвращаемой электронно-цифровой подписи должны быть GrdECC160_MESSAGE_SIZE (20 байт)   и GrdECC160_DIGEST_SIZE (40 байт)   соответственно.

Card
labelC#
Code Block
languagec#
public static GrdE GrdSign(Handle grdHandle, GrdAlgNum algNum, byte[] data, out byte[] digestSign)
Expand
titleПараметры метода

grdHandle [in] 

Тип: Handle

хэндлХэндл, через который будет выполнена данная операция.

algNum [in]

Тип: GrdAlgNumЧисловое имя аппаратного алгоритма

Номер дескриптора алгоритма электронно-цифровой подписи ECC160.

data [in] 

Тип: byte [ ]

Указатель на массив данныхВходное сообщение для подписи.

digestSign [out] 

Тип: byte [ ]

Указатель на массив цифровой подписиВыходной буфер, в который будет сохранена электронно-цифровая подпись.

Expand
titleВозвращаемое значение метода

GrdE.OK

нет ошибок

GrdE.NeedInitialization

требуется инициализация API (вызов GrdStartup)

GrdE.InvalidHandle

недействительный хэндл

GrdE.InvalidArg

недопустимый параметр при вызове функции

GrdE.NoService

ключ не поддерживает данную функцию

GrdE.AlgoNotFound

алгоритма с указанным числовым именем не существует

GrdE.CRCErrorFunc

ошибка CRC при выполнении функции

GrdE.GPis0

счетчик алгоритма достиг нулевого значения

Expand
titleОписание

Метод GrdSign позволяет вычислить электронно-цифровую подпись (ЭЦП) входного сообщения с помощью аппаратного алгоритма ЭЦП. Микропрограмма внутри электронного ключа считывает дескриптор алгоритма с заданным числовым именем, проверяет отсутствие в нём блокировок и только после этого переходит к выполнению операции.

Дескриптор алгоритма с заданным в параметре dwAlgoNum номером должен присутствовать в памяти ключа, в противном случае метод возвращает ошибку  вычислять цифровую подпись массива данных при помощи аппаратного алгоритма типа ECC. Вычисление цифровой подписи выполняется алгоритмом с числовым именем, заданным в параметре algNum. Этот алгоритм предварительно должен быть создан, в противном случае возвращается ошибкаGrdE.AlgoNotFound. Если в дескрипторе алгоритма установлен флаг "уменьшение счетчика", то вычитание счетчика алгоритма происходит при каждом вызове GrdSign. При достижении счетчиком нулевого значения, возвращается ошибкаошибка GrdE.GPis0. Если при создании алгоритма или в процессе работы он был переведен в неактивное состояние, возвращается ошибка GrdE.InactiveItem. Ссылка на массив данных указана в параметре data. Возвращаемая цифровая подпись находится в массиве digestSign. Для При попытке вызвать метод для моделей ключей Stealth II или Stealth III, возвращается ошибка GrdE.NoService.

Сообщение для подписи должно находиться в массиве data. Буфер для ЭЦП должен быть зарезервирован заранее и передан методу через параметр digestSign. Если длина любого из массивов окажется нулевой, метод возвращает GrdE.InvalidArg. В случае успешного выполнения, в массиве digestSign будет находится вычисленная ЭЦП от входного сообщения, при этом метод возвращает GrdE.OK. Для алгоритма ECC160 длина входного сообщения и длина возвращаемой электронно-цифровой подписи должны быть алгоритма ECC160 длина массива данных и длина возвращаемой цифровой подписи должны быть  GrdECC160.MESSAGE_SIZE (20 байт) и GrdECC160_.DIGEST_SIZE (40 байт)   соответственно. 

Card
labelJava
Code Block
languagejava
 public static GrdE GrdSign(Handle grdHandle, int algNum, byte[] data, byte[] sign)
Expand
titleПараметры метода

grdHandle [in] 

Тип: Handle

хэндл, через который будет выполнена данная операция.

algNum [in]

Тип: int

Числовое имя аппаратного алгоритмаНомер дескриптора алгоритма электронно-цифровой подписи ECC160.

data [in] 

Тип: byte [ ]

Указатель на массив данныхВходное сообщение для подписи.

sign [out] 

Тип: byte [ ]

Указатель на массив цифровой подписиВыходной буфер, в который будет сохранена электронно-цифровая подпись.

Expand
titleВозвращаемое значение метода

GrdE.OK

нет ошибокGrdE.NeedInitialization

требуется инициализация API (вызов GrdStartup)

GrdE.InvalidHandle

недействительный хэндл

GrdE.InvalidArg

недопустимый параметр при вызове функции

GrdE.NoService

ключ не поддерживает данную функцию

GrdE.AlgoNotFound

алгоритма с указанным числовым именем не существует

GrdE.CRCErrorFunc

ошибка CRC при выполнении функции

GrdE.GPis0

счетчик алгоритма достиг нулевого значения

Expand
titleОписание

Метод GrdSign позволяет вычислить электронно-цифровую подпись (ЭЦП) входного сообщения с помощью аппаратного алгоритма ЭЦП. Микропрограмма внутри электронного ключа считывает дескриптор алгоритма с заданным числовым именем, проверяет отсутствие в нём блокировок и только после этого переходит к выполнению операции.  

Дескриптор алгоритма с заданным в параметре dwAlgoNum номером должен присутствовать в памяти ключа, в противном случае метод возвращает ошибку  вычислять цифровую подпись массива данных при помощи аппаратного алгоритма типа ECC. Вычисление цифровой подписи выполняется алгоритмом с числовым именем, заданным в параметре algNum. Этот алгоритм предварительно должен быть создан, в противном случае возвращается ошибкаGrdE.AlgoNotFound. Если в дескрипторе алгоритма установлен флаг "уменьшение счетчика", то вычитание счетчика алгоритма происходит при каждом вызове GrdSign. При достижении счетчиком нулевого значения, возвращается ошибкаошибка GrdE.GPis0. Если при создании алгоритма или в процессе работы он был переведен в неактивное состояние, возвращается ошибка GrdE.InactiveItem. Ссылка на массив данных указана в параметре data. Возвращаемая цифровая подпись находится в массиве signПри попытке вызвать метод для моделей ключей Stealth II или Stealth III, возвращается ошибка GrdE.NoService.

Сообщение для подписи должно находиться в массиве data. Буфер для ЭЦП должен быть зарезервирован заранее и передан методу через параметр sign. Если длина любого из массивов окажется нулевой, метод возвращает GrdE.InvalidArg. В случае успешного выполнения, в массиве sign будет находится вычисленная ЭЦП от входного сообщения, при этом метод возвращает GrdE.OK. Для алгоритма ECC160 длина массива данных и длина возвращаемой входного сообщения и длина возвращаемой электронно-цифровой подписи должны быть GrdECC160.MESSAGE_SIZE (20 байт) и GrdECC160.DIGEST_SIZE (40 байт)   соответственно.