Card |
---|
| Code Block |
---|
| int GRD_API GrdTRU_EncryptAnswer(
HANDLE hGrd,
DWORD dwAddr,
DWORD dwLng,
void *pData,
void *pQuestion,
DWORD dwAlgoNum_GSII64,
DWORD dwAlgoNum_Hash64,
void *pAnswer,
DWORD *pdwAnswerSize
); |
Expand |
---|
| hGrd | хэндл, через который будет выполнена данная операция. В ключ, соответствующий этому хэндлу должен быть записан тот же секретный ключ, что и в удаленном ключе. Также ключ должен содержать алгоритмы GSII64 и HASH64, в качестве определителей которых используется секретный ключ | dwAddr | стартовый адрес (в системе адресации SAM) в памяти удаленного ключа, по которому будет производиться запись данных | dwLng | длина буфера данных, которые должны быть записаны в удаленный ключ | pData | буфер, содержащий данные для записи в удаленный ключ | pQuestion | указатель на буфер, содержащий расшифрованное 64-битное число-вопрос | dwAlgoNum_GSII64 | номер алгоритма типа GSII64, который будет использоваться для зашифрования ответа. Определителем алгоритма должен быть тот же секретный 128-битный ключ, что был записан операцией GrdTRU_SetKey в удаленный ключ | dwAlgoNum_Hash64 | номер алгоритма типа HASH64, который будет использоваться для вычисления хэш-функции для проверки подлинности ответа. Определителем алгоритма должен быть тот же секретный 128-битный ключ, что был записан операцией GrdTRU_SetKey в удаленный ключ | pAnswer | указатель на буфер, в который будет помещен зашифрованный ответ. Под буфер рекомендуется выделять памяти не менее dwLng*3 + 128 байт | pdwAnswerSize | указатель на переменную типа DWORD, которая при вызове должна содержать значение длины буфера pAnswer. После вызова в нее будет записан размер буфера pAnswer, использованный для размещения ответа. Если изначально размер буфера был меньше необходимого, функция возвращает код ошибки GrdE_InvalidArg. В таком случае это значение необходимо использовать в качестве минимального размера при выделении нового буфера |
|
Expand |
---|
title | Возвращаемое значение функции |
---|
| Возможные ошибки GrdE_AlgoNotFound | Аппаратный алгоритм с заданным номером не существует | GrdE_CRCErrorFunc | Ошибка при вызове аппаратного алгоритма | GrdE_InactiveItem | Аппаратный алгоритм деактивирован, обращение к нему невозможно | GrdE_SystemDataCorrupted | Системные данные TRU повреждены. (Секретный ключ удаленного программирования отсутствует) | GrdE_NoQuestion | Число-вопрос не было сгенерировано или было перегенерировано до записи числа ответа | GrdE_InvalidData | Неверный формат данных для удаленного программирования | GrdE_QuestionOK | Число-вопрос уже было сгенерировано, ключ ожидает данных для удаленного программирования | GrdE_UpdateNotComplete | Ошибка при записи данных удаленного программирования. Операция не была завершена | GrdE_InvalidHash | Неверное значение MAC (Message Authentication Code) | | Стандартный набор ошибок |
|
|
Card |
---|
| Code Block |
---|
| public static GrdE GrdTRU_EncryptAnswer(Handle grdHandle, uint addr, byte[] data, byte[] question,
int algNum_GSII64, int algNum_HashS3, out byte[] answer)
|
Expand |
---|
title | Возвращаемое значение метода |
---|
| |
|
Card |
---|
| Code Block |
---|
| public static GrdE GrdTRU_EncryptAnswer(Handle grdHandle, int addr, byte[] data, byte[] question, int algoNum_GSII64,
int algoNum_HashS3, byte[] answer, int[] answerSize) |
Expand |
---|
title | Возвращаемое значение метода |
---|
| |
|
|