Функция(метод) 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 параметр не используется.

    • No labels