Rus Eng
Решения
Технологии
Дискуссии
Компания
 
Rambler's Top100
©Copyright iNetique
info@inetique.ru

Инсталляция апплетов

При изготовлении смарт-карт штатное программное обеспечение записывается в ее ПЗУ. Этот процесс записи еще носит название маскирование. Технология этого процесса может варьироваться между производителями смарт-карт и не охватывается стандартом Java Card.


Апплеты в ПЗУ

В процессе изготовления карты, вместе с JCRE и системными компонентами производитель смарт-карты может поместить в ПЗУ и некоторые апплеты. Инициализация этих апплетов будет произведена во время инициализации JCRE. Подобные апплеты есть апплеты по умолчанию поставляемые с данным конкретным типом смарт-карт.
Поскольку эти апплеты контролируются непосредственно производителем карты, спецификация Java Card позволяет таким апплетам (называемым ROM апплеты) описывать методы на других языках программирования (C, ассемблер). Выполнение таких методов не контролируется системой безопасности, описанной в спецификации Java Card.


Пред-инсталлированные и пост-инсталлированные апплеты.

В общем случае апплеты будут загружаться на карту уже после ее выпуска. Здесь существует две альтернативы. Производитель карты может предзагрузить некоторые апплеты самостоятельно или пользователь может загрузить свои апплеты. Отличие от апплетов по умолчанию состоит в том, что для таких апплетов не допустимы методы на других языках и, следовательно, они будут полностью отвечать требованиям спецификации Java Card по безопасности.

 

Инсталляция апплетов

Как уже отмечалось ранее, единицей загрузки является CAP файл. CAP файл  состоит из классов, образующих пакет. Минимально доопустимый (корректный) апплет есть просто один класс, расширяющий базовый класс javacard.framework.Applet .

При загрузке апплетов инсталлятор читает CAP файл и преобразует его в последовательность команд APDU. Далее, посредством обмена APDU командами с инсталлятором на карте, CAP файл загружается в память смарт-карты и выполняется редактирование связей. Также инсталлятор создает и иинициализирует все данные, используемые JCRE для поддержки апплета. Если апплету необходимо несколько пакетов, то каждый CAP файл должен быть загружен на карту. На последнем шаге инсталлятор создает объект типа апплет и регистрирует его в JCRE. Для этого инсталлятор выполняет метод

public static void install(byte []bArray,short offset,byte length)

Этот метод определяет точку входа для апплета, подобную функции main в Java приложениях. Пользовательский апплет должен содержать реализацию этого метода. Здесь вызывается конструктор апплета. Параметр bArray позволяет задать начальные параметры. Начальные параметры передаются вместе с CAP файлом. Их формат и содержимое определяются разработчиком апплета.

После того, как апплет инициализирован и зарегистрирован, он может быть выбран для исполнения. JCRE определяет исполняемый апплет по его уникальному идентификатору (AID). Апплет может быть зарегистрирован по некоторому AID умолчания, или же параметры инсталляции могут определить свой идентификатор.
Метод install может вызываться более одного раза, таким образом будет создано несколько копий апплета. Копии различаются по своим уникальным AID.
Согласно спецификации Java Card, апплет может быть написан и исполнен  без знания деталей того, как он был загружен.

Процесс загрузки апплета сам по себе является транзакцией. Это означает, что при любых ошибках в загрузке JCRM будет автоматически возвращена к прежнему состоянию.