...
Кроме того, диалог предоставляет дополнительные сервисы, упрощающие работу с загружаемым кодом.
Expand |
---|
title | Импорт загружаемого кода из Bin-файла |
---|
|
По нажатию кнопки Импортировать код из Bin-файла, находящейся в правой верхней части страницы Настройки загружаемого кода, появляется диалог выбора Bin-файла из нужного проекта. При импорте GrdUtil.exe считывает из файла имя_проекта.bmap настройки, описывающие использование памяти ключа загружаемым кодом. После этого в диалоге отображаются: Индикатор состояния | Назначение | Используемая RAM | Индикация выделенной для загружаемого кода оперативной памяти ключа, ее начального и конечного адреса | Используемая Flash | Индикация выделенной для загружаемого кода Flash-памяти ключа, ее начального и конечного адреса, а также номера ячейки, хранящей дескриптор загружаемого кода |
Свободная память обозначается зеленым цветом, используемая – синим. Адресация дается в шестнадцатеричном формате. |
Expand |
---|
title | Преобразование бинарного кода в формат GCEXE |
---|
|
По соображениям конфиденциальности загружаемый код не должен передаваться «наружу» в открытом виде. Поэтому в GrdUtil.exe реализована эффективная схема подготовки кода для записи в электронный ключ и безопасной передачи обновлений загружаемого кода конечным пользователям. GrdUtil.exe автоматически преобразует бинарный код в файл формата GCEXE, содержащий: - Зашифрованный на AES исходный код
- Зашифрованный на открытом ключе ECC160 №#1 сеансовый ключ AES, использовавшийся ранее для шифрования кода
- ЭЦП файла, полученную на закрытом ключе ECC160 №#2
При этом в дескрипторе (ячейке) загружаемого кода хранится «ответная часть» ключей ECC, используемых при преобразовании бинарного кода: - Закрытый ключ ECC160 №#1 для шифрования
- Открытый ключ ECC160 №#2 для ЭЦП
Что позволяет электронному ключу при обращении к загруженному коду успешно его проверять, расшифровывать и выполнять.
Info |
---|
| Преобразование кода в формат GCEXE производится утилитой GrdUtil.exe автоматически при записи образа в ключ (либо нажатии на кнопку Экспортировать GCEXE), не требуя от разработчиков никаких действий для ее реализации, кроме настройки ключевых пар ECC160. |
|
Expand |
---|
title | Настройки шифрования загружаемого кода |
---|
|
По нажатию кнопки Настройки шифрования загружаемого кода появляется диалог для работы с ключевыми парами: Диалог предназначен для генерации, импорта и экспорта ключевых пар асимметричного алгоритма ECC160, которые используются при преобразовании бинарного кода в формат GCEXE (см. предыдущий пункт).
В верхней части диалога отображаются закрытый (слева) и открытый (справа) ключи ECC160 №#2 для цифровой подписи зашифрованного кода. В нижней части диалога находится ключевая пара (закрытый ключ – слева, открытый – справа) ECC160 №#1 для шифрования бинарного кода. Кроме того, диалог дополнен кнопками, позволяющими генерировать новые ключевые пары, экспортировать их во внешний файл для использования в приложении и импортировать ключевые файлы из других проектов.
|
Expand |
---|
title | Экспорт файла GCEXE. Обновление кода у пользователя |
---|
|
Экспорт GCEXE во внешний файл может потребоваться в случае, когда разработчику необходимо обновить загружаемый код в электронном ключе, находящемся у конечного пользователя. В такой ситуации разработчику следует придерживаться следующей схемы действий: - На этапе разработки приложения должен быть предусмотрен механизм обновления загружаемого кода из приложения. Такой механизм реализуется при помощи функции Guardant API GrdCodeLoad.
- После внесения необходимых изменений новая версия загружаемого кода компилируется в бинарный файл, который импортируется в GrdUtil.exe (см. Импорт загружаемого кода из Bin-файла).
- Для правильной работы обновленного загружаемого кода в удаленном ключе должны использоваться те же ключевые пары, которые применялись при программировании ключа в первый раз (см. Настройки шифрования загружаемого кода).
- При нажатии на кнопку [Экспортировать GCEXE] происходит формирование и выгрузка GCEXE во внешний файл.
- Если необходимо сделать обновление кода зависимым от ключа (к примеру, при подготовке платных обновлений), то следует указать десятичный ID ключа конечного пользователя в диалоге, который возникает по нажатию кнопки [Экспортировать GCEXE].
- Сохраненный в формате GCEXE загружаемый код передается конечному пользователю, который производит обновление содержимого ключа способом, предусмотренным разработчиком на первом шаге.
|
...