如何在卡上获取JavaCard版本

 小茜的阳光2011_950 发布于 2022-12-31 15:20

如何从卡中获取Java卡版本?有什么方法可以从卡中获取JC版本。还是应该尝试为每个JC版本选项安装特定的小程序。

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

    我建议您使每个CAP只包含一个简单的类,以扩展 javacard.framework.Applet。您可能希望能够实际安装您的简单小程序并与其实际交换APDU,只是为了确保它确实有效。据我所知,即使未解决所有导入问题,也允许Java Card虚拟机实现上载CAP文件,但是如果您尝试实际使用API​​,则该操作将会失败。

    生成CAP文件后,您可以通过解析生成的CAP文件中的COMPONENT_Import组件来验证它是否确实链接到了预期的JavaCard API包。CAP文件格式在JavaCard虚拟机规范中进行了描述,并且您想要的字段是导入的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)

    考虑到以上信息,我可以指出迈克尔·罗兰德的回答有些误导。调用JCSystem.getVersion()无助于确定是否支持Java Card版本。如果您可以实际调用该API,那么您已经确定该版本受支持。

    2022-12-31 15:22 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有