Ubuntu 上的智能卡模拟(Java 卡 - ISO7816)- 指定目标 JCRE

Smart Card Simulation on Ubuntu (Java Card - ISO7816) - specifying target JCRE

我正在尝试模拟 OpenPGP and IsoApplet,然后再在真正的 java 卡上构建和安装。我希望我的模拟环境尽可能接近实际卡。

这里是来自 ATR 数据库的 my card specs。它遵循 Java Card 2.2.2 和 Global Platform 2.1.1 规范。

我正在按照 OpenSC GitHub to simulate a card 上的说明进行操作,支持 vpcsd。这些指令以内置的 jcardsim-3.0.4-SNAPSHOT.jar.

结尾
  1. 如何为 2.2.2 版构建支持 virtualcard/vpcsd 的 jcardsim

  2. 如何在使用 ant-javacard 构建 IsoApplet 时指定目标 Java 卡版本?我的 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

  1. 在什么情况下,我会使用 JDK 编译 .java 文件并在获取 class 文件时针对不同的 JRE 版本,以便转换为特定的 JCDK 版本转换器?我理解使用高 JDK 以获得更好的源代码功能,然后针对特定的 JRE 进行编译,但是当存在针对 JCRE 的额外步骤时则不然。

使用targetsdk 指明目标平台的SDK(或低于目标平台的任何版本)。 ant-javacard根据使用的SDK(jckit参数)自动设置目标class文件版本,此时应该是3.0.5。