Функция GrdTRU_GenerateQuestionEx генерирует зашифрованное число-вопрос для удаленного программирования, использующего технологию Trusted Remote Update с возможностью использования новых алгоритмов (AES128 и SHA256). Эту функцию необходимо использовать для ключей Guardant Code.
Deck of Cards |
---|
|
Wiki Markup |
---|
{dojo-tabs:theme=tundra|id=1}
{dojo-tab:title=C|selected=true}
*C*
int GRD_API GrdTRU_GenerateQuestionEx(
HANDLE hGrd,
DWORD dwLngQuestion,
void *pQuestion,
DWORD *pdwID,
DWORD *pdwPublic,
DWORD dwLngHash,
void *pHash,
DWORD dwReserved,
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} | Входные параметры | hGrd | хэндл, через который будет выполнена данная операция | dwLngQuestion | размер буферу, куда будет помещен сгенерированный вопрос. | pQuestion | буфер, куда будет помещен сгенерированный вопрос. | pdwID | буфер, куда будет помещено значение ID ключа, для которого сгенерирован вопрос. | pdwPublic | буфер, куда будет помещено численное значение Public code ключа, для которого сгенерирован вопрос. | dwLngHash | размер буфера, куда будет помещено значение MAC (Message Authentication Code - кода аутентификации сообщения) для верификации вопроса. | pHash | буфер, куда будет помещено значение MAC (Message Authentication Code - кода аутентификации сообщения) для верификации вопроса. | dwReserved | зарезервировано, должно быть равно 0 | pReserved | зарезервировано, должно быть равно NULL |
|
|
| Выходные параметрыВозвращаемое значение функции |
| GrdE_SystemDataCorrupted | Системные данные TRU повреждены. (Секретный ключ удаленного программирования отсутствует) | | GrdE_NoQuestion | Число-вопрос не было сгенерировано или было перегенерировано до записи числа ответа | | GrdE_InvalidData | Неверный формат данных для удаленного программирования | | GrdE_QuestionOK | Число-вопрос уже было сгенерировано, ключ ожидает данных для удаленного программирования | | GrdE_UpdateNotComplete | Ошибка при записи данных удаленного программирования. Операция не была завершена | | GrdE_InvalidHash | Неверное значение MAC (Message Authentication Code) | | | Стандартный набор ошибок | |
|
|
Card |
---|
| Code Block |
---|
| public static GrdE GrdTRU_GenerateQuestionEx(Handle grdHandle,out byte[] question, out uint id, out uint publicCode, out byte[] hash)
|
Expand |
---|
title | Возвращаемое значение метода |
---|
| |
|
Card |
---|
| Expand |
---|
title | Возвращаемое значение метода |
---|
| |
|
|
Expand |
---|
|
Функция GrdTRU_GenerateQuestionEx генерирует зашифрованное число-вопрос и инициализирует процесс для удаленного программирования, использующего технологию Trusted Remote Update. Функция GrdTRU_GenerateQuestionEx вызывается на компьютере удаленного пользователя и генерирует число-вопрос pQuestion, защищенное от подделки кодом аутентификации сообщения (MAC) pHash. MAC вырабатывается аппаратным алгоритмом на секретном ключе, который должен быть предварительно записан при помощи функции GrdTRU_SetKey. MAC используется для того, чтобы нельзя было подделать число-вопрос, ID или Public Code электронного ключа. После того, как число-вопрос сгенерировано, конечный пользователь должен передать разработчику все сгенерированные функцией GrdTRU_GenerateQuestionEx данные: собственно число-вопрос pQuestion, ID ключа pdwID, Public code pdwPublic и MAC pHash. С момента генерации числа-вопроса ключ переходит в состояние ожидания числа-ответа. |
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\" |