Java 如何找到小程序支持的APDU列表?

Java 如何找到小程序支持的APDU列表?,java,applet,smartcard,javacard,apdu,Java,Applet,Smartcard,Javacard,Apdu,我的新javacard上有一个小程序的帮助列表。每个小程序的用途是什么?以及如何获得每个人支持的APDU命令列表?我是否需要下载applet的.cap文件的java源代码?我的另一个问题:每次援助后的“PR”参数和“LC”参数是什么 没有显示支持的APDU列表的功能。 您有: 源代码并查看整个过程方法 小程序或应用程序的文档 小程序支持特定规范,如pkcs11/15或iso命令 从小程序实例帮助列表中,请注意,您在上面的帖子中显示的列表只包含可执行加载文件和安全域,但没有实际的小程序实例帮助,您

我的新javacard上有一个小程序的帮助列表。每个小程序的用途是什么?以及如何获得每个人支持的APDU命令列表?我是否需要下载applet的.cap文件的java源代码?我的另一个问题:每次援助后的“PR”参数和“LC”参数是什么


没有显示支持的APDU列表的功能。 您有:

源代码并查看整个过程方法 小程序或应用程序的文档 小程序支持特定规范,如pkcs11/15或iso命令
从小程序实例帮助列表中,请注意,您在上面的帖子中显示的列表只包含可执行加载文件和安全域,但没有实际的小程序实例帮助,您可以通过将帮助拆分为RID和PIX部分来查找已注册的应用程序提供程序和应用程序类型

例如,A00004,看起来像是摆脱了万事达卡。加上PIX为10 10,这将是一个基于支付系统EMV规范的主卡信用/借记应用程序

所以你可以对所有的辅助工具进行这样的猜测,找出它们可能代表的应用。谷歌将为你提供许多帮助。或者,您也可以询问通过RID找到的注册应用程序提供商,在给定的帮助后面隐藏了什么应用程序

作为下一步,您需要了解某个应用程序使用什么协议,即使用什么命令流以及小程序理解什么APDU命令。对于示例Master Card信用卡/借记卡应用程序,这将在支付系统的EMV规范中定义,您可以从中免费获得。对于其他应用程序,您需要找到数据表、用户手册、规范或该应用程序的源代码。例如,您可以通过询问应用程序提供商或在web上搜索特定的帮助来获取此类信息

PR参数表示根据可执行加载文件/安全域的全局平台的权限。0x00表示无权限,0x9E表示安全域、卡锁定权限、卡终止权限、卡重置权限、持卡人验证方法管理权限

参数LC表示根据可执行加载文件/安全域的全局平台的生命周期状态。对于发卡机构安全域,LC表示卡的生命周期状态1,表示OP_就绪。对于可执行加载文件,LC表示加载文件生命周期状态,该状态始终为1加载


请注意,上面显示的gpj-list的列表输出表明,除了该卡上安装和选择的ISD开放式应用程序之外,没有其他应用程序。

迈克尔·罗兰的答案包含了大量有用的信息。通过它的帮助了解小程序是什么,并了解它实现的规范,这将是确定接受哪些命令的最快和最好的方法


作为练习,您可以选择有问题的小程序并发送包含不同CLA/INS字节的多个APDU组合。分析响应可能会让您了解哪些命令被处理,哪些命令被拒绝。典型的小程序将返回6E00或6D00到未知指令,并返回已知指令的一些其他代码。

好的回答,但PKCS11没有为智能卡接口指定任何内容。除非你信仰宗教,否则也没有iso命令这样的东西。成功实现PKCS15的ISO/IEC 7816-15对于通用卡来说是一个很好的提示,尽管它也没有完全指定APDU格式,如果我没记错的话。谢谢亲爱的Micheal给你非常好的回答:作为一个新问题:请注意,gpj的列表输出-上面显示的列表表明,除了ISD的开放式安装和可选卡之外,没有其他应用程序。您能告诉我应用程序和安全域/可执行文件之间的区别吗?什么是ISD?ThankyouISD=发卡机构安全域;关于可选/已安装的小程序/可执行加载文件等,我建议您阅读Java卡平台规范,其中有几个章节对此进行了说明;关于安全域和可执行加载文件/模块/小程序,我建议您熟悉全球平台卡规范,从他们的网站上获取,他们也有一些比规范更容易理解的好白皮书。亲爱的Michael,我很抱歉使用此评论。但是你能看看这个问题吗?这是:谢谢你只是一个提示:你知道你可以从cmd.exe窗口复制和粘贴文本吗?纯文本比屏幕截图更可取,因为它允许索引内容。是的,亲爱的Robert,但我认为这更清楚: