Функция GrdVerifySign проверяет электронную цифровую подпись блока байт при помощи аппаратного алгоритма ECC160.
Wiki Markup |
---|
{dojo-tabs:theme=tundra|id=1}
{dojo-tab:title=C|selected=true}
*C*
int GRD_API GrdVerifySign(
HANDLE hGrd,
DWORD dwAlgoType,
DWORD dwPublicKeyLng,
void *pPublicKey,
DWORD dwDataLng,
void *pData,
DWORD dwSignLng,
void *pSign,
void *pReserved
);
{dojo-tab}
{dojo-tab:title=C#|selected=true}
*C#*
{dojo-tab}
{dojo-tab:title=Visual Basic (Declaration)}
*Visual Basic*
{dojo-tab}
{dojo-tab:title=Visual C++}
*Visual C++*
{dojo-tab}
{dojo-tabs} |
Expand |
---|
|
hGrd | хэндл, через который будет выполнена данная операция | dwAlgoType | тип программного алгоритма (см. GrdVSC_XXXXX) | dwPublicKeyLng | длина открытого ключа | pPublicKey | указатель на открытый ключ | dwDataLng | длина массива данных (20 байтов для ECC160) | pData | указатель на массив данных | dwSignLng | длина массива цифровой подписи (40 байтов для ECC160) | pSign | указатель на массив цифровой подписи | pReserved | зарезервировано |
|
Expand |
---|
|
GrdE_OK | нет ошибок | GrdE_NeedInitialization | требуется инициализация API (вызов GrdStartup) | GrdE_InvalidHandle | недействительный хэндл | GrdE_InvalidArg | недопустимый параметр при вызове функции | GrdE_InvalidPublicKey | недействительный открытый ключ | GrdE_InvalidDigitalSign | недействительная цифровая подпись |
|
Expand |
---|
|
Функция GrdVerifySign осуществляет проверку цифровой подписи массива данных. Реализация функции полностью программная. Проверка цифровой подписи производится алгоритмом, заданным в параметре dwAlgoType. Типы допустимых программных алгоритмов определены константами GrdVSC_XXXXX. Длина открытого ключа (в байтах) pPublicKey задаётся параметром dwPublicKeyLng и зависит от типа программного алгоритма. Длины массива данных (в байтах) pData и цифровой подписи (в байтах) pSign задаются параметрами dwDataLng и dwSignLng соответственно.
Для алгоритма ECC160 тип програмного алгоритма должен быть GrdVSC_ECC160.
Длина открытого ключа должна быть GrdECC160_PUBLIC_KEY_SIZE (40 байт). Длина массива данных и длина цифровой подписи должны быть GrdECC160_MESSAGE_SIZE (20 байт) и GrdECC160_DIGEST_SIZE (40 байт) соответственно.
|
Expand |
---|
|
Пример для используемого средства разработки см. в директории: "\%Program Files%\Guardant\Guardant 6\%PublicCode%\Samples\x86\Win32\General Guardant API\" или "\%Program Files%\Guardant\Guardant 6\%Public Code%\Samples\x64\Win64\General Guardant API\" |