Функция(метод) GrdTRU_SetAnswerProperties подготавливает данные для выполнения операции Protect на удаленном ключе при использовании Trusted Remote Update.

int GRD_API GrdTRU_SetAnswerProperties(	
  HANDLE hGrd,
  DWORD dwTRU_Flags,
  DWORD dwReserved,
  DWORD dwWrProt,
  DWORD dwRdProt,
  DWORD dwNumFunc,
  DWORD dwTableLMS,
  DWORD dwGlobalFlags,
  void	*pReserved
);	

hGrd

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

dwTRU_Flags

комбинация флагов GrdTRU_Flags_XXX, указывающих, выполнять ли операции Init и Protect при удаленном программировании. Используются только при полной реорганизации памяти удаленного ключа (изменение количества алгоритмов, защищенных ячеек, адресов аппаратных запретов и т.п.). Иначе параметр должен быть равен 0

GrdTRU_Flags_Init

Выполнять операцию Init перед обновлением памяти ключа

GrdTRU_Flags_Protect

Выполнять операцию Protect после обновления памяти ключа

dwReserved

зарезервировано. Значение должно быть равно 0

dwWrProt

SAM-адрес (в байтах) первого слова UAM-памяти ключа, доступного для записи. Адрес должен быть четным, в противном случае возвращается ошибка GrdE_InvalidArg

dwRdProt

SAM-адрес (в байтах) первого слова UAM-памяти ключа, доступного для чтения. Адрес должен быть четным, в противном случае возвращается ошибка GrdE_InvalidArg

dwNumFunc

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

dwTableLMS

Для сетевых ключей при использовании таблицы лицензий: номер защищенной ячейки, в которой хранится таблица лицензий LMS. Если LMS не используется или ключ локальный, значение должно быть равно 0

dwGlobalFlags

Описание флагов dwGlobalFlags:

GrdGF_ProtectTime

1

Блокировка вызова функции GrdSetTime. Автоматически выставляется при программировании ключа из GrdUtil. Если данный флаг был выставлен, то изменить время микросхемы таймера невозможно без перезаписи маски

GrdGF_HID

2

Ключ работает в HID-режиме

GrdGF_OnlyOneSessKey

4

Единственный сессионный ключ для Guardant API. При установленном флаге будет работоспособна только одна копия приложения, защищенного Guardant API

GrdGF_2ndSessKey

8

Единственный сессионный ключ для автозащиты. При установленном флаге будет работоспособна только одна копия приложения, накрытого автозащитой

pReserved

зарезервировано. Значение должно быть равно NULL

Возможные ошибки

GrdE_SystemDataCorrupted

Системные данные TRU повреждены. (Секретный ключ удаленного программирования отсутствует)

GrdE_NoQuestion

Число-вопрос не было сгенерировано или было перегенерировано до записи числа ответа

GrdE_InvalidData

Неверный формат данных для удаленного программирования

GrdE_QuestionOK

Число-вопрос уже было сгенерировано, ключ ожидает данных для удаленного программирования

GrdE_UpdateNotComplete

Ошибка при записи данных удаленного программирования. Операция не была завершена

GrdE_InvalidHash

Неверное значение MAC (Message Authentication Code)

 

Набор ошибок Guardant API

Функция GrdTRU_ SetAnswerProperties выполняет подготовительные операции для выполнения операций Init и Protect на удаленном ключе при использовании Trusted Remote Update.

Эту функцию необходимо использовать в тех случаях, когда при помощи удаленного программирования планируется полная реорганизация памяти ключа. Полное перепрограммирование памяти выполняется в тех случаях, когда нужно изменить количество защищенных ячеек или алгоритмов, либо полностью изменить структуру памяти ключа.

Функция GrdTRU_SetAnswerProperties вызывается на этапе подготовки данных для удаленного программирования обязательно после вызова функции GrdTRU_DecryptQuestion и перед вызовом функции GrdTRU_EncryptAnswer.

Параметры GrdTRU_SetAnswerProperties по смыслу соответствуют параметрам GrdProtect, поскольку операции Init и Protect при реорганизации памяти ключа в процессе удаленного программирования будут выполняться. По сути, GrdTRU_SetAnswerProperties устанавливает параметры для будущего выполнения операции Init и Protect.

Параметр dwGlobalFlags имеет смысл только для ключей Guardant Sign/Time. Для Guardant Stealth III/Net III параметр не используется.

public static GrdE GrdTRU_SetAnswerProperties(Handle grdHandle, GrdTRU truFlags, uint wrProt, uint rdProt,
	int numAlg, int tableLMS, GrdGF globalFlags)

grdHandle [in] 

Тип: Handle

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

truFlags [in]

Тип: GrdTRU

Комбинация флагов GrdTRU, которая указывает на то, будут ли выполнены операции Init и Protect при удаленном программировании.

wrProt [in]

Тип: uint

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

rdProt [in]

Тип: uint

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

numAlg [in]

Тип: int

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

tableLMS [in]

Тип: int

Для сетевых ключей при использовании таблицы лицензий: номер защищенной ячейки, в которой хранится таблица лицензий LMS.

globalFlags [in]

Тип: GrdGF

Содержание флагов GrdGF

Возможные ошибки

GrdE.SystemDataCorrupted

Системные данные TRU повреждены. (Секретный ключ удаленного программирования отсутствует)

GrdE.NoQuestion

Число-вопрос не было сгенерировано или было перегенерировано до записи числа ответа

GrdE.InvalidData

Неверный формат данных для удаленного программирования

GrdE.QuestionOK

Число-вопрос уже было сгенерировано, ключ ожидает данных для удаленного программирования

GrdE.UpdateNotComplete

Ошибка при записи данных удаленного программирования. Операция не была завершена

GrdE.InvalidHash

Неверное значение MAC (Message Authentication Code)

 

Набор ошибок Guardant API


Метод GrdTRU_ SetAnswerProperties выполняет подготовительные операции для выполнения операций Init и Protect на удаленном ключе при использовании Trusted Remote Update.

Этот метод необходимо использовать в тех случаях, когда при помощи удаленного программирования планируется полная реорганизация памяти ключа. Полное перепрограммирование памяти выполняется в тех случаях, когда нужно изменить количество защищенных ячеек или алгоритмов, либо полностью изменить структуру памяти ключа.

Метод GrdTRU_SetAnswerProperties вызывается на этапе подготовки данных для удаленного программирования обязательно после вызова метода GrdTRU_DecryptQuestion и перед вызовом метода GrdTRU_EncryptAnswer.

Параметры GrdTRU_SetAnswerProperties по смыслу соответствуют параметрам GrdProtect, поскольку операции Init и Protect при реорганизации памяти ключа в процессе удаленного программирования будут выполняться. По сути, GrdTRU_SetAnswerProperties устанавливает параметры для будущего выполнения операции Init и Protect.

Параметр globalFlags имеет смысл только для ключей Guardant Sign/Time. Для Guardant Stealth III/Net III параметр не используется.

public static GrdE GrdTRU_SetAnswerProperties(Handle grdHandle, GrdTRU truFlags, int wrProt, int rdProt,
	int numFunc, int tableLMS, GrdGF globalFlags)

grdHandle [in] 

Тип: Handle

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

truFlags [in]

Тип: GrdTRU

Комбинация флагов GrdTRU, которая указывает на то, будут ли выполнены операции Init и Protect при удаленном программировании.

wrProt [in]

Тип: int

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

rdProt [in]

Тип: int

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

numFunc [in]

Тип: int

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

tableLMS [in]

Тип: int

Для сетевых ключей при использовании таблицы лицензий: номер защищенной ячейки, в которой хранится таблица лицензий LMS.

globalFlags [in]

Тип: GrdGF

Содержание флагов GrdGF

Возможные ошибки

GrdE.SystemDataCorrupted

Системные данные TRU повреждены. (Секретный ключ удаленного программирования отсутствует)

GrdE.NoQuestion

Число-вопрос не было сгенерировано или было перегенерировано до записи числа ответа

GrdE.InvalidData

Неверный формат данных для удаленного программирования

GrdE.QuestionOK

Число-вопрос уже было сгенерировано, ключ ожидает данных для удаленного программирования

GrdE.UpdateNotComplete

Ошибка при записи данных удаленного программирования. Операция не была завершена

GrdE.InvalidHash

Неверное значение MAC (Message Authentication Code)

 

Набор ошибок Guardant API


Метод GrdTRU_ SetAnswerProperties выполняет подготовительные операции для выполнения операций Init и Protect на удаленном ключе при использовании Trusted Remote Update.

Этот метод необходимо использовать в тех случаях, когда при помощи удаленного программирования планируется полная реорганизация памяти ключа. Полное перепрограммирование памяти выполняется в тех случаях, когда нужно изменить количество защищенных ячеек или алгоритмов, либо полностью изменить структуру памяти ключа.

Метод GrdTRU_SetAnswerProperties вызывается на этапе подготовки данных для удаленного программирования обязательно после вызова метода GrdTRU_DecryptQuestion и перед вызовом метода GrdTRU_EncryptAnswer.

Параметры GrdTRU_SetAnswerProperties по смыслу соответствуют параметрам GrdProtect, поскольку операции Init и Protect при реорганизации памяти ключа в процессе удаленного программирования будут выполняться. По сути, GrdTRU_SetAnswerProperties устанавливает параметры для будущего выполнения операции Init и Protect.

Параметр globalFlags имеет смысл только для ключей Guardant Sign/Time. Для Guardant Stealth III/Net III параметр не используется.