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_EncryptAnswerEx(
HANDLE  hGrd,
DWORD   dwAddr,
DWORD   dwLng,
void    *pData,
DWORD   dwLngQuestion,
void    *pQuestion,
DWORD   dwAlgoNum_Encrypt,
DWORD   dwAlgoNum_Hash,
void    *pAnswer,
DWORD   *pdwAnswerSize,
DWORD   dwMode,
DWORD   dwReserved,
void    *pReserved 
);	
Expand
titleПараметры функции

hGrd

хэндл, через который будет выполнена данная операция. В ключ, соответствующий этому хэндлу должен быть записан тот же секретный ключ, что и в удаленном ключе. Также ключ должен содержать алгоритмы GSII64 (AES128) и HASH64 (SHA256), в качестве определителей которых используется секретный ключ

dwAddr

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

dwLng

длина буфера данных, которые должны быть записаны в удаленный ключ

pData

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

dwLngQuestion

размер присланного удаленным пользователем параметра число-вопрос

pQuestion

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

dwAlgoNum_Encrypt

номер алгоритма типа GSII64(AES128), который будет использоваться для зашифрования ответа. Определителем алгоритма должен быть тот же секретный 128-битный ключ, что был записан операцией GrdTRU_SetKey в удаленный ключ

dwAlgoNum_Hash

номер алгоритма типа HASH64(SHA256), который будет использоваться для вычисления хэш-функции для проверки подлинности ответа. Определителем алгоритма должен быть тот же секретный 128-битный ключ, что был записан операцией GrdTRU_SetKey в удаленный ключ

pAnswer

указатель на буфер, в который будет помещен зашифрованный ответ. Под буфер рекомендуется выделять памяти не менее dwLng*3 + 128 байт

pdwAnswerSize

указатель на переменную типа DWORD, которая при вызове должна содержать значение длины буфера pAnswer. После вызова в нее будет записан размер буфера pAnswer, использованный для размещения ответа. Если изначально размер буфера был меньше необходимого, функция возвращает код ошибки GrdE_InvalidArg. В таком случае это значение необходимо использовать в качестве минимального размера при выделении нового буфера

dwMode

константа определяющая режим работы:

GrdTRU_CryptMode_GSII64

шифрование на базе GSII64 ( 8 байт), хеш на базе GSII64 (8 байт)

GrdTRU_CryptMode_AES128SHA256

шифрование на базе AES128(16 байт), хеш на базе SHA256(32 байт)

dwReserved

не используется. Параметр должен быть равен 0.

pReserved

не используется. Параметр должен быть равен NULL.

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_EncryptAnswerEx(Handle grdHandle, uint addr, byte[] data, byte[] question,
	GrdAlgNum algNumEncrypt,GrdAlgNum algNumHash, out byte[] answer, GrdTRU truMode)

Expand
titleПараметры метода

 

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

 

Card
labelJava
Code Block
languagejava
 public static GrdE GrdTRU_EncryptAnswerEx(Handle grdHandle, int addr, byte[] data, byte[] question, int algoNum_Encrypt,
	int algoNum_Hash, byte[] answer, int[] answerSize, GrdTRU truMode)
Expand
titleПараметры метода

 

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

 

...