Card |
---|
| Code Block |
---|
| int GRD_API GrdTRU_DecryptQuestion(
HANDLE hGrd,
DWORD dwAlgoNum_GSII64,
DWORD dwAlgoNum_Hash64,
void *pQuestion,
DWORD dwID,
DWORD dwPublic,
void *pHash
); |
Expand |
---|
| hGrd | хэндл, через который будет выполнена данная операция | dwAlgoNum_GSII64 | номер аппаратного алгоритма типа GSII64, который будет использоваться для расшифровывания числа-вопроса | dwAlgoNum_Hash64 | номер аппаратного алгоритма Hash64, который будет использоваться для проверки подлинности числа-вопроса на основании MAC | pQuestion | буфер, содержащий присланное удаленным пользователем число-вопрос. Длина буфера 8 байт | dwID | ID ключа удаленного пользователя, для которого будет произведена операция | dwPublic | численное значение Public Code ключа удаленного пользователя, для которого будет произведена операция | pHash | буфер, содержащий MAC, вычисленный на ключе удаленного пользователя. Длина буфера 8 байт |
|
Expand |
---|
title | Возвращаемое значение функции |
---|
| pQuestion | после выполнения функции в этот буфер возвращается расшифрованное число-вопрос. Длина буфера 8 байт |
Возможные ошибки |
Expand |
---|
| Использование функции GrdTRU_DecryptQuestion позволяет получить число-вопрос в расшифрованном виде и убедиться в том, что оно действительно было сгенерировано на ключе с ID равным dwID и Public Code равным dwPublic. Если число-вопрос расшифровано правильно и проверка подлинности прошла успешно, функция возвращает GrdE_OK. Расшифрованное 8-байтовое число-вопрос помещается в тот же буфер pQuestion, в котором находилось зашифрованное число-вопрос. Расшифрованное число-вопрос необходимо для генерации ответа, поэтому его нужно сохранить для дальнейшего использования. Расшифрование числа-вопроса производится аппаратным алгоритмом типа GSII64 с номером, задаваемым dwAlgoNum_GSII64. На момент расшифровывания этот алгоритм должен быть создан в ключе, находящемся у разработчика. В качестве определителя должен использоваться секретный 128-битовый ключ, который был сгенерирован и прошит в ключ удаленного пользователя при предпродажной подготовке функцией GrdTRU_SetKey для ключа с ID, равным dwID. При использовании GRDUTIL этот ключ берется из базы данных. Проверка подлинности числа-вопроса производится аппаратным алгоритмом типа Hash64 с номером dwAlgoNum_Hash64. На момент проверки этот алгоритм должен быть создан в ключе, находящемся у разработчика. В качестве определителя должен использоваться секретный 128-битовый ключ, который был сгенерирован и прошит в ключ удаленного пользователя при предпродажной подготовке функцией GrdTRU_SetKey для ключа с ID равным dwID. При использовании GRDUTIL этот ключ берется из базы данных. Рабочий ключ, находящийся у разработчика, не обязательно должен быть инициализирован также функцией GrdTRU_SetKey с секретным ключом, таким же как у удаленного пользователя. Все преобразования делаются на заранее запрограммированных алгоритмах, номера которых указываются в параметрах указываемых в dwAlgoNum_GSII64 и dwAlgoNum_Hash64. |
|
Card |
---|
| Code Block |
---|
| public static GrdE GrdTRU_DecryptQuestion(Handle grdHandle, GrdAlgNum algNum_GSII64, GrdAlgNum algNum_HashS3, byte[] question,
uint id, uint publicCode, byte[] hash)
|
Expand |
---|
| grdHandle [in] Тип: Handle Нэндл, через который будет выполнена данная операция. algNum_GSII64 [in] Тип: GrdAlgNum Номер аппаратного алгоритма типа GSII64, который будет использоваться для расшифровывания числа-вопроса. algNum_HashS3 [in] Тип: GrdAlgNum Номер аппаратного алгоритма Hash64, который будет использоваться для проверки подлинности числа-вопроса на основании MAC question [in,out] Тип: byte [ ] Буфер, который содержит присланный удаленным пользователем число-вопрос. id [in] Тип: uint ID ключа удаленного пользователя, для которого будет произведена операция. publicCode [in] Тип: uint Численное значение PublicCode ключа удаленного пользователя, для которого будет произведена операция hash [in] Тип: byte [ ] Буфер, содержащий MAC, вычисленный на ключе удаленного пользователя. Длина буфера 8 байт. |
Expand |
---|
title | Возвращаемое значение метода |
---|
| question | после выполнения функции в этот буфер возвращается расшифрованное число-вопрос. Длина буфера 8 байт |
Возможные ошибки |
Expand |
---|
| Использование метода GrdTRU_DecryptQuestion позволяет получить число-вопрос в расшифрованном виде и убедиться в том, что оно действительно было сгенерировано на ключе с ID равным id и Public Code равным publicCode. Если число-вопрос расшифровано правильно и проверка подлинности прошла успешно, метод возвращает GrdE_.OK. Расшифрованное 8-байтовое число-вопрос помещается в тот же буфер question, в котором находилось зашифрованное число-вопрос. Расшифрованное число-вопрос необходимо для генерации ответа, поэтому его нужно сохранить для дальнейшего использования. Расшифрование числа-вопроса производится аппаратным алгоритмом типа GSII64 с номером, задаваемым dwAlgoNum_ GrdAN.GSII64. На момент расшифровывания этот алгоритм должен быть создан в ключе, находящемся у разработчика. В качестве определителя должен использоваться секретный 128-битовый ключ, который был сгенерирован и прошит в ключ удаленного пользователя при предпродажной подготовке функцией методом GrdTRU_SetKey для ключа с ID, равным dwID id. При использовании GRDUTIL этот ключ берется из базы данных. Проверка подлинности числа-вопроса производится аппаратным алгоритмом типа Hash64 с номером dwAlgoNum_ GrdAN.Hash64. На момент проверки этот алгоритм должен быть создан в ключе, находящемся у разработчика. В качестве определителя должен использоваться секретный 128-битовый ключ, который был сгенерирован и прошит в ключ удаленного пользователя при предпродажной подготовке функцией методом GrdTRU_SetKey для ключа с ID равным dwID id. При использовании GRDUTIL этот ключ берется из базы данных. Рабочий ключ, находящийся у разработчика, не обязательно должен быть инициализирован также функцией методом GrdTRU_SetKey с секретным ключом, таким же как у удаленного пользователя. Все преобразования делаются на заранее запрограммированных алгоритмах, номера которых указываются в параметрах указываемых в параметрах dwAlgoNum_в GrdAN.GSII64 и dwAlgoNum_ GrdAN.Hash64. |
|
Card |
---|
| Code Block |
---|
| public static GrdE GrdTRU_DecryptQuestion(Handle grdHandle, int algoNum_GSII64, int algoNum_HashS3,
byte[] question, int id, int publicCode, byte[] hash) |
Expand |
---|
| grdHandle [in] Тип: Handle Нэндл, через который будет выполнена данная операция. algNum_GSII64 [in] Тип: int Номер аппаратного алгоритма типа GSII64, который будет использоваться для расшифровывания числа-вопроса. algNum_HashS3 [in] Тип: int Номер аппаратного алгоритма Hash64, который будет использоваться для проверки подлинности числа-вопроса на основании MAC question [in,out] Тип: byte [ ] Буфер, который содержит присланный удаленным пользователем число-вопрос. id [in] Тип: int ID ключа удаленного пользователя, для которого будет произведена операция. publicCode [in] Тип: int Численное значение PublicCode ключа удаленного пользователя, для которого будет произведена операция hash [in] Тип: byte [ ] Буфер, содержащий MAC, вычисленный на ключе удаленного пользователя. Длина буфера 8 байт. |
Expand |
---|
title | Возвращаемое значение метода |
---|
| question | после выполнения функции в этот буфер возвращается расшифрованное число-вопрос. Длина буфера 8 байт |
Возможные ошибки |
Expand |
---|
| Использование функции метода GrdTRU_DecryptQuestion позволяет получить число-вопрос в расшифрованном виде и убедиться в том, что оно действительно было сгенерировано на ключе с ID равным dwID id и Public Code равным dwPublic publicCode. Если число-вопрос расшифровано правильно и проверка подлинности прошла успешно, функция метод возвращает GrdE_.OK. Расшифрованное 8-байтовое число-вопрос помещается в тот же буфер pQuestion question, в котором находилось зашифрованное число-вопрос. Расшифрованное число-вопрос необходимо для генерации ответа, поэтому его нужно сохранить для дальнейшего использования. Расшифрование числа-вопроса производится аппаратным алгоритмом типа GSII64 с номером, задаваемым dwAlgoNum_задаваемым GrdAN.GSII64. На момент расшифровывания этот алгоритм должен быть создан в ключе, находящемся у разработчика. В качестве определителя должен использоваться секретный 128-битовый ключ, который был сгенерирован и прошит в ключ удаленного пользователя при предпродажной подготовке функцией методом GrdTRU_SetKey для ключа с ID, равным dwID id. При использовании GRDUTIL этот ключ берется из базы данных. Проверка подлинности числа-вопроса производится аппаратным алгоритмом типа Hash64 с номеромdwAlgoNum_ GrdAN.Hash64. На момент проверки этот алгоритм должен быть создан в ключе, находящемся у разработчика. В качестве определителя должен использоваться секретный 128-битовый ключ, который был сгенерирован и прошит в ключ удаленного пользователя при предпродажной подготовке функцией методом GrdTRU_SetKey для ключа с ID равным dwID id. При использовании GRDUTIL этот ключ берется из базы данных. Рабочий ключ, находящийся у разработчика, не обязательно должен быть инициализирован также функцией методом GrdTRU_SetKey с секретным ключом, таким же как у удаленного пользователя. Все преобразования делаются на заранее запрограммированных алгоритмах, номера которых указываются в параметрах указываемых в параметрах dwAlgoNum_GSII64 и dwAlgoNum_ GrdAN.GSII64 и GrdAN.Hash64. |
|
|