Моделирование смарт-карт в Ubuntu (Java Card - ISO7816) - указание целевого JCRE - PullRequest
1 голос
/ 02 марта 2020

Я пытаюсь смоделировать OpenPGP и IsoApplet перед сборкой и установкой на настоящий javacard. Я бы хотел, чтобы моя среда моделирования максимально соответствовала реальной карте.

Вот характеристики моей карты из базы данных ATR. Он соответствует спецификациям Java Card 2.2.2 и Global Platform 2.1.1.

Я следую инструкциям на OpenS C GitHub для имитации карты с поддержкой vpcsd , Эти инструкции заканчиваются встроенной jcardsim-3.0.4-SNAPSHOT.jar.

  1. Как мне собрать jcardsim с поддержкой virtualcard / vpcsd для версии 2.2.2?

  2. Как мне указать целевую версию карты Java при создании IsoApplet с ant-javacard? Влияет ли мой JDK на то, что я могу выбрать?

Моя среда

Linux 5.3.0-40-generic #32-Ubuntu x86_64 GNU/Linux
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.242-b08, mixed mode)
javac 1.8.0_242

Меня немного смущает страница управления версиями ant-javacard wiki: https://github.com/martinpaljak/ant-javacard/wiki/Version-compatibility

В каких случаях я буду компилировать java файлы с использованием JDK и нацеливаться на другую версию JRE при получении файлов классов, чтобы преобразовать в указанную c версию JCDK с помощью конвертера? Я понимаю использование высокого JDK для улучшения возможностей исходного кода, а затем компиляцию для указанного c JRE, но не тогда, когда есть дополнительный шаг нацеливания на JCRE.

1 Ответ

2 голосов
/ 04 марта 2020

Используйте targetsdk, чтобы указать SDK вашей целевой платформы (или что-либо ниже, чем ваша целевая платформа). ant-javacard устанавливает версию файла целевого класса автоматически на основе используемого SDK (параметр jckit), который должен быть 3.0.5.

...