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