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]

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

dwDataLng [in]

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

pData [in]

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

dwSignResultLng [in]

длина выходного буфера для электронно-цифровой подписи (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. Буфер для ЭЦП должен быть зарезервирован заранее, а его длина передана функции через параметр dwSignResultLng. Если один из указателей равен NULL или неверно заданы длины входного сообщения и выходного буфера ЭЦП, функция возвращает GrdE_InvalidArg. В случае успешного выполнения, по адресу pSignResult будет находится вычисленная ЭЦП от входного сообщения, при этом функция возвращает GrdE_OK. Для алгоритма ECC160 длина ECC160 длина входного сообщения и длина возвращаемой электронно-цифровой подписи должны быть GrdECC160_MESSAGE_SIZE  и GrdECC160_DIGEST_SIZE  соответственно.

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

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

data [in] 

Тип: byte [ ]

Входное сообщение для подписи.

digestSign [out] 

Тип: byte [ ]

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

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.

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

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

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

data [in] 

Тип: byte [ ]

Входное сообщение для подписи.

sign [out] 

Тип: byte [ ]

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

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.

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

...