Guardant Code SDK

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

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

Весь процесс работы с ключами семейства Code детально документирован, во многих случаях приведены пошаговые инструкции.

Guardant Code API

Интерфейс прикладного программирования электронных ключей с загружаемым кодом можно разделить на внутренний и внешний.

Внутренний Guardant Code API

Внутренний Guardant Code API позволяет задействовать сервисы микропрограммы ключа, обращаясь к ним из загружаемого кода. Большинство функций Guardant Code API аналогичны функциям основного Guardant API:

Однако есть ряд интересных возможностей, которые присущи именно API ключей семейства Code — в частности, можно управлять светодиодом ключа.

Внешний Guardant Code API

Внешний Guardant Code API составляют всего несколько функций, которые позволяют загружать предварительно подготовленный код во Flash-память ключа и исполнять его из защищенного приложения. Однако, что касается загрузки кода в ключ, то удобнее и быстрее выполнять эту процедуру при помощи редактора памяти.

Средства разработки, примеры и документация

В качестве языка программирования для загружаемого кода используется язык C, а точнее его подмножество, основой для которого является стандарт ANSI C.

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

Для компиляции загружаемого кода применяются компилятор и линкер GCC, стандартная библиотека С для встраиваемых систем newlib, утилита make и несколько сервисных утилит. Примеры и makefile для работы с загружаемым кодом, входящие в комплект разработчика, рассчитаны на использование компилятора GCC и инструментария WinARM, как на самый доступный вариант. В качестве альтернативы можно использовать и другие языки программирования высокого уровня, для которых есть компилятор ARM7.

Специально подготовленные конфигурационные файлы и скрипты, входящие в состав примеров, позволяют легко скомпилировать произвольный код на языке C для загрузки его в ключ Guardant Code.

Каждый пример состоит из двух частей:

  • Проект Visual Studio 2005 .NET, который демонстрирует использование внутреннего Guardant Code API (инициализация и запуск загруженного кода);
  • Пример для загрузки кода в ключ, который содержит проект GCC-ARM в виде исходного кода на C и makefile.

Обработка и загрузка кода в ключ

После подготовки код необходимо загрузить в ключ. Для этого используется утилита GrdUtil.exe. Редактор памяти предоставляет удобный сервис для работы с загружаемым кодом, в том числе автоматическое преобразование из Bin-файла в формат, пригодный для записи в ключ (GCEXE), и, собственно, запись GCEXE во Flash-память.

В GrdUtil.exe реализована эффективная схема подготовки кода для записи в электронный ключ и безопасной передачи обновлений загружаемого кода конечным пользователям. Преобразование кода в формат GCEXE производится утилитой автоматически при записи данных в ключ, не требуя от разработчиков никаких дополнительных действий для ее реализации.