version - 如何在卡上获取 JavaCard 版本

标签 version javacard

如何从卡中获取java卡版本?
有什么办法可以从卡中获取JC的版本。
或者我应该尝试安装特定于每个 JC 版本选项的小程序。

最佳答案

确定“白色”智能卡支持的 JavaCard API 版本的唯一完全证明方法是为每个 JavaCard 版本构建单独的 CAP 文件。

我建议你让每个 CAP 只包含一个简单的扩展类 javacard.framework.Applet .您可能希望能够实际安装您的简单小程序并实际与其交换 APDU,以确保它确实有效;据我所知,即使并非所有导入都已解析,Java Card 虚拟机实现也可以上传 CAP 文件,但如果您尝试实际使用 API,则应该会失败。

生成 CAP 文件后,您可以通过解析生成的 CAP 文件中的 COMPONENT_Import 组件来验证它是否确实链接到预期的 JavaCard API 包。 JavaCard 虚拟机规范中描述了 CAP 文件格式,您需要的字段是导入的 JavaCard 包的 package_info。

我已经包含了一个 AID 列表 - package_version_major.package_version_minor (package_name) 信息。该列表可能不完整。

Java 卡 2.1.1 : A0000000620201 - 1.1 (javacardx.crypto)

Java 卡 2.1.1 : A0000000620101 - 1.0 (javacard.framework)

Java 卡 2.1.1 : A0000000620001 - 1.0 (java.lang)

Java 卡 2.1.1 : A0000000620102 - 1.1 (javacard.security)

Java 卡 2.2.1 : A0000000620201 - 1.2 (javacardx.crypto)

Java 卡 2.2.1 : A0000000620101 - 1.2 (javacard.framework)

Java 卡 2.2.1 : A0000000620002 - 1.0 (java.io)

Java 卡 2.2.1 : A0000000620001 - 1.0 (java.lang)

Java 卡 2.2.1 : A0000000620003 - 1.0 (java.rmi)

Java 卡 2.2.1 : A0000000620102 - 1.2 (javacard.security)

Java 卡 2.2.1 : A000000062010101 - 1.0 (javacard.framework.service)

Java 卡 2.2.2 : A0000000620209 - 1.0 (javacardx.apdu)

Java 卡 2.2.2 : A0000000620202 - 1.2 (javacardx.biometry)

Java 卡 2.2.2 : A0000000620201 - 1.3 (javacardx.crypto)

Java 卡 2.2.2 : A0000000620203 - 1.0 (javacardx.external)

Java 卡 2.2.2 : A0000000620101 - 1.3 (javacard.framework)

Java 卡 2.2.2 : A0000000620002 - 1.0 (java.io)

Java 卡 2.2.2 : A0000000620001 - 1.0 (java.lang)

Java 卡 2.2.2 : A000000062020802 - 1.0 (javacardx.framework.math)

Java 卡 2.2.2 : A0000000620003 - 1.0 (java.rmi)

Java 卡 2.2.2 : A0000000620102 - 1.3 (javacard.security)

Java 卡 2.2.2 : A000000062010101 - 1.0 (javacard.framework.service)

Java 卡 2.2.2 : A000000062020803 - 1.0 (javacardx.framework.tlv)

Java 卡 2.2.2 : A000000062020801 - 1.0 (javacardx.framework.util)

Java 卡 3.0.1 : A0000000620209 - 1.0 (javacardx.apdu)

Java 卡 3.0.1 : A0000000620202 - 1.2 (javacardx.biometry)

Java 卡 3.0.1 : A0000000620201 - 1.4 (javacardx.crypto)

Java 卡 3.0.1 : A0000000620203 - 1.0 (javacardx.external)

Java 卡 3.0.1 : A0000000620101 - 1.4 (javacard.framework)

Java 卡 3.0.1 : A00000006202080101 - 1.0 (javacardx.framework.util.intx)

Java 卡 3.0.1 : A0000000620002 - 1.0 (java.io)

Java 卡 3.0.1 : A0000000620001 - 1.0 (java.lang)

Java 卡 3.0.1 : A000000062020802 - 1.0 (javacardx.framework.math)

Java 卡 3.0.1 : A0000000620003 - 1.0 (java.rmi)

Java 卡 3.0.1 : A0000000620102 - 1.4 (javacard.security)

Java 卡 3.0.1 : A000000062010101 - 1.0 (javacard.framework.service)

Java 卡 3.0.1 : A000000062020803 - 1.0 (javacardx.framework.tlv)

Java 卡 3.0.1 : A000000062020801 - 1.0 (javacardx.framework.util)

Java 卡 3.0.4 : A0000000620209 - 1.0 (javacardx.apdu)

Java 卡 3.0.4 : A0000000620202 - 1.2 (javacardx.biometry)

Java 卡 3.0.4 : A0000000620201 - 1.4 (javacardx.crypto)

Java 卡 3.0.4 : A0000000620203 - 1.0 (javacardx.external)

Java 卡 3.0.4 : A0000000620101 - 1.5 (javacard.framework)

Java 卡 3.0.4 : A00000006202080101 - 1.0 (javacardx.framework.util.intx)

Java 卡 3.0.4 : A0000000620002 - 1.0 (java.io)

Java 卡 3.0.4 : A0000000620001 - 1.0 (java.lang)

Java 卡 3.0.4 : A000000062020802 - 1.0 (javacardx.framework.math)

Java 卡 3.0.4 : A0000000620003 - 1.0 (java.rmi)

Java 卡 3.0.4 : A0000000620102 - 1.5 (javacard.security)

Java 卡 3.0.4 : A000000062010101 - 1.0 (javacard.framework.service)

Java 卡 3.0.4 : A000000062020804 - 1.0 (javacardx.framework.string)

Java 卡 3.0.4 : A000000062020803 - 1.0 (javacardx.framework.tlv)

Java 卡 3.0.4 : A000000062020801 - 1.0 (javacardx.framework.util)

考虑到以上信息,我要指出来自 Michael Roland 的答案有点误导。调用 JCSystem.getVersion()无助于确定是否支持 Java Card 版本;如果您已经到了可以实际调用 API 的地步,那么您已经确定支持该版本。

关于version - 如何在卡上获取 JavaCard 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25031338/

相关文章:

android - 选择的 Titanium SDK "3.1.0.GA"无效

c++ - C++ 标准库不是向后兼容的吗?

获取sql年版本的SQL查询

python-3.x - 如何在python=3.6中安装torch==0.3.1

JavaCard 存储( secret )数据

applet - 使用 javacard Shareable 类在作为客户端和服务器的两个小程序之间共享具有不同包的接口(interface)?

c# - Monotouch 自动增量内部版本号及版本号

javacard - Java 卡 APDU 错误

javacard - 有什么方法可以通知主机在Java Card中执行方法的开始时间和结束时间吗?

reverse-engineering - 将 Java Applet CAP 文件转换为 *.class 以进行反编译