Versions Compared

Key

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

...

Deck of Cards
id001
Card
defaulttrue
labelC
Code Block
languagecpp
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
titleПараметры функции

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
labelC#
Code Block
languagec#
public static GrdE GrdTRU_EncryptAnswer(Handle grdHandle, uint addr, byte[] data, byte[] question,
	int algNum_GSII64, int algNum_HashS3, out byte[] answer)
Expand
titleПараметры метода

grdHandle [in] 

Тип: Handle

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

addr [in]

Тип: uint

Стартовый адрес (в системе адресации SAM) в памяти удаленного ключа, по которому будет производиться запись данных.

data [in]

Тип: byte [ ]

Буфер, в котором содержатся данные для записи в удаленный ключ

question [in]

Тип: byte [ ]

Указатель на буфер, содержащий расшифрованное 64-битное число-вопрос.

algNum_GSII64 [in]

Тип: int

Номер алгоритма типа GSII64, который будет использоваться для шифрования ответа.

algNum_HashS3 [in]

Тип: int

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

answer [out]

byte [ ]

Указатель на буфер, в который будет помещен зашифрованный ответ.

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

 

Card
labelJava
Code Block
languagejava
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Параметры метода

 

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

 

...