You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

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

    int GRD_API  GrdSign(
      HANDLE hGrd,			
      DWORD	dwAlgoNum,		
      DWORD	dwDataLng,		
      void	*pData,			
      DWORD	dwSignResultLng,
      void	*pSignResult,	
      void	*pReserved
       );	

    hGrd

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

    dwAlgoNum

    числовое имя аппаратного алгоритма типа ECC Algorithm

    dwDataLng

    длина массива данных (20 байтов для ECC160)

    pData

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

    dwSignResultLng

    длина массива цифровой подписи (40 байтов для ECC160)

    pSignResult

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

    pReserved

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

    GrdE_OK

    нет ошибок

    GrdE_NeedInitialization

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

    GrdE_InvalidHandle

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

    GrdE_InvalidArg

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

    GrdE_NoService

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

    GrdE_AlgoNotFound

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

    GrdE_CRCErrorFunc

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

    GrdE_GPis0

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

    public static GrdE GrdSign(Handle grdHandle, GrdAlgNum algNum, byte[] data, out byte[] digestSign)
    

    grdHandle [in] 

    Тип: Handle

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

    algNum [in]

    Тип: GrdAlgNum

    Числовое имя аппаратного алгоритма.

    data [in] 

    Тип: byte [ ]

    Указатель на массив данных.

    digestSign [out] 

    Тип: byte [ ]

    Указатель на массив цифровой подписи.

    GrdE_OK

    нет ошибок

    GrdE_NeedInitialization

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

    GrdE_InvalidHandle

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

    GrdE_InvalidArg

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

    GrdE_NoService

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

    GrdE_AlgoNotFound

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

    GrdE_CRCErrorFunc

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

    GrdE_GPis0

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

     public static GrdE GrdSign(Handle grdHandle, int algNum, byte[] data, byte[] sign)

    grdHandle [in] 

    Тип: Handle

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

    algNum [in]

    Тип: int

    Числовое имя аппаратного алгоритма.

    data [in] 

    Тип: byte [ ]

    Указатель на массив данных.

    sign [out] 

    Тип: byte [ ]

    Указатель на массив цифровой подписи.

    GrdE_OK

    нет ошибок

    GrdE_NeedInitialization

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

    GrdE_InvalidHandle

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

    GrdE_InvalidArg

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

    GrdE_NoService

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

    GrdE_AlgoNotFound

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

    GrdE_CRCErrorFunc

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

    GrdE_GPis0

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

    Функция GrdSign позволяет вычислять цифровую подпись массива данных при помощи аппаратного алгоритма типа ECC. Вычисление цифровой подписи производится алгоритмом с числовым именем, заданным в параметре dwAlgoNum. Этот алгоритм предварительно должен быть создан.

    Если в дескрипторе алгоритма установлен флаг nsafl_GP_dec (уменьшение счетчика), вычитание счетчика GP происходит при каждом вызове GrdSign.

    Длина массива данных (в байтах) pData задается параметром dwDataLng и зависит от типа алгоритма.

    Длина возвращаемой цифровой подписи (в байтах) pSignResult также зависит от типа алгоритма и задаётся параметром dwSignResultLng.

    Для алгоритма ECC160 длина массива данных и длина возвращаемой цифровой подписи должны быть GrdECC160_MESSAGE_SIZE (20 байт) и GrdECC160_DIGEST_SIZE (40 байт) соответственно.

    • No labels