Запись маски с использованием writemask API (Sign)

Как записать алгоритм в маску более-менее понятно с приведенных примеров.
А как записать вначале защищенную ячейку в маску (writemask), используя Guardant API?

Re: Запись маски с использованием writemask API (Sign)

Да, собственно, также, как и дескриптор аппаратного алгоритма (дескриптор защищенной ячейки в этом смысле от дескриптора алгоритма ничем не отличается).

Т.о. необходимо в начало маски (первым вызовом по порядку) добавить AddAlgorithm() с типом создаваемой ячейки rs_algo_PI.

Re: Запись маски с использованием writemask API (Sign)

Спасибо. С этим вопросом понятно.
А как записать алгоритм ECC160? В утилите GrdUtil показывает не детерминатор а пару ключей. Как записать эту пару ключей?

Re: Запись маски с использованием writemask API (Sign)

В качестве определителя (determinant) алгоритма ECC160 выступает закрытый ключ (private key). В дескриптор нужно записывать именно его. Открытый ключ (public key) помещается в защищенное приложение.

GrdUtil при этом для удобства хранит и отображает ключевую пару полностью.

Кстати, в этом примере (sample.cpp) есть образец записи ECC160.

(2011-08-05 15:44:16 отредактировано Анатолий)

Re: Запись маски с использованием writemask API (Sign)

Пишу на Delphi. И, наверно, что-то не так сделал так как при добавлении ячеек, алгоритмов переменная обозначающая рост размера   AST { pointer to variables, contains AST size } не увеличивается, а также заглавие маски { pointer to a buffer to return generated mask header } остается пустым.

        AddAlgorithm(
        @abyMask[1],        { pointer to a buffer to return generated mask }
        @abyMaskHeader[1],  { pointer to a buffer to return generated mask header }
                $0000,
        nsafl_ST_III + nsafl_ActivationSrv + nsafl_UpdateSrv + nsafl_InactiveFlag,
        nsafh_ReadSrv + nsafh_ReadPwd,
                rs_algo_PI,
                108,
                0,
        dwActivatePsw,    { activation service password }
        0,    { deactivation service password }
        dwReadPsw,         { read service password }
        dwUpdatePsw,       { update service password }
        NIL,
                NIL,
                NIL,
                NIL,
        $FFFF,    { GP counter of algorithm/PI }
        $FFFF,    { error counter of algorithm/PI }
                @buf_PI_det[1],
        @wMaskSize,      { pointer to variables, contains mask size }
        @wAST_Size,      { pointer to variables, contains AST size }
        @wNumberOfItems); { pointer to variables, contains number of items in mask }

Подскажите в чем может быть проблема?

Re: Запись маски с использованием writemask API (Sign)

Может при инициализации задали некорректный тип ключа?

См. первые два параметра конструктора CWritemask или параметры WriteMaskInit() (в зависимости от версии использованной writemask).

Re: Запись маски с использованием writemask API (Sign)

Алексей Перепелов пишет:

Может при инициализации задали некорректный тип ключа?

См. первые два параметра конструктора CWritemask или параметры WriteMaskInit() (в зависимости от версии использованной writemask).

А можно по подробнее описать эти параметры и их значения?

Re: Запись маски с использованием writemask API (Sign)

В них передаются тип и модель ключа (соответственно), с которым работаем. Сами значения могут быть взяты из структуры TGrdFindInfo, содержащей информацию о найденном ключе после вызова GrdFind().

СWritemask(FindInfo.wType, FindInfo.dwModel,...)

Re: Запись маски с использованием writemask API (Sign)

Возник вопрос на такую же тему.  Запись маски с использованием writemask API.
Сколько алгоритмов/ячеек можно добавить в маску с помощью writemask AddAlgorithm ?
У меня получается не более 2-х. Алгоритмы, добавленные 3-м, 4-м и далее по счету при последующем обращении к ним выдают "Для данного алгоритма/ячейки не предусмотрен данный вид сервиса". Первые два работают.

Re: Запись маски с использованием writemask API (Sign)

kamerer пишет:

Возник вопрос на такую же тему.  Запись маски с использованием writemask API.
Сколько алгоритмов/ячеек можно добавить в маску с помощью writemask AddAlgorithm ?
У меня получается не более 2-х. Алгоритмы, добавленные 3-м, 4-м и далее по счету при последующем обращении к ним выдают "Для данного алгоритма/ячейки не предусмотрен данный вид сервиса". Первые два работают.

Ответ отправил Вам на почту.

Re: Запись маски с использованием writemask API (Sign)

А каким образом записать пользовательские поля (не алгоритмы) в ключ?

Re: Запись маски с использованием writemask API (Sign)

Здравствуйте.

vityusha пишет:

А каким образом записать пользовательские поля (не алгоритмы) в ключ?

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