当前位置: 首页 > 知识库问答 >
问题:

使用APDU将CAP文件上传到智能卡

法烨烨
2023-03-14

我正在尝试将小程序(.cap文件)安装到智能卡中。我读到可以使用APDU完成。我使用Netbeans创建了我的小程序,它的助手是//aid/9AE9BE4D27/53。

首先构建apdu,选择安装程序小程序:

0x00 0xA4 0x04 0x00 0X09 0xA0 0x00 0x00 0x00 0x62 0x03 0x01 0x08 0x01 0x7F

然后构建将创建我的小程序的apdu(遵循此结构):

标题:0x80 0xb8 0x00 0x00

lc-aid:

aid:

le: 0x7F;

我开发了一个应用程序,可以使用通道将apdu命令发送到一张真正的卡。传输(新命令apdu(apdu)。我想如果我发送正确的安装命令,我的。cap文件应安装在卡中。

有了这些信息,谁能帮我建立正确的apdu,将我的cap文件安装到真正的卡上?

非常感谢。

共有3个答案

韦俊英
2023-03-14

要安装小程序并将其个人化到卡中,需要相互验证,包括内部验证命令和外部验证。详情请阅读EMV CPS或全球平台。

如果你正在使用模拟器,你也可以很容易地安装一个小程序。我使用了JAVACos,它非常简单,它支持JC和GP库。使用JAVACos的库在eclipse中开发了小程序,并使用scrypt使用JAVACos模拟器模拟小程序进行小程序测试

徐凌
2023-03-14

是的,如果您发送的是正确的命令APDUs,那么您将能够安装它,但如果是全局平台卡,您将需要首先创建安全通道,然后您可能会发送InstallForLoad和后续的load/install命令。步骤顺序如下:

  • 选择卡管理器
  • 使用SCP01/SCO02验证您的卡,以您的卡支持的为准
  • 发送InstallForInstall命令
  • 发送加载命令
  • 发送InstallForInstall命令

每个命令都应该以0x9000结尾,这意味着命令执行成功。

但是由于你是初学者,所以你应该使用一些工具,比如GPShell来加载你的应用程序。将文件封装到卡上,然后尝试分析安装后出现的APDU。

殳俊晤
2023-03-14

如果卡使用的是全球平台,那么就没那么简单了,您需要针对卡管理器进行身份验证。然后发送多个命令来加载。cap文件(因为APDU可能只包含255字节的有效负载-GP不使用扩展长度)。然后发出INSTALL for INSTALL命令来实例化小程序(使用实例辅助)。

对你来说幸运的是,有一些开源库是建立在javax.smartcardio之上的。我仍然建议通读一下全球平台的基础知识,尽管这些文档可以免费在线获得。

http://sourceforge.net/projects/gpj/

 类似资料:
  • 我使用Java卡开发工具包(Java卡3.0.2运行时)创建了一个小程序,我使用生成脚本APDU,然后我想用生成的APDU脚本文件运行,将小程序上传到通过USB连接到我的计算机的真正读卡器上的真正智能卡中。我运行以下命令: 但我犯了一个错误: 有可能实现我想要的目标吗?

  • 我使用ACR122U-A9读取智能卡,通过以下APDU,我可以获取UID和ATS: 使用NXP TagInfo应用程序(android),我可以看到一个包含我所需数据的十六进制表。使用什么APDU命令可以检索这些数据? 六边形表如下所示: [0000]中是我想要检索的数据。

  • 我已经使用了无需太多努力即可从智能卡读取序列号。然而现在我被指派在空白卡片上创建MF(没有它序列号就无法读取)。我正在根据ISO7816指南创建APDU命令,但无法创建正确的APDU命令,因为我的十六进制值被转换为错误的字节。 我有两个问题 1:命令APDU中的数据采用了错误的字节(标记为*)。 2: SW1和SW2返回为6A 80,这意味着数据栏中的参数是不正确的(我猜是因为负值,而将十六进制格

  • 问题内容: 实际上,我正在使用带有Angular 2编码的接口的Spring REST API。 我的问题是我无法使用Angular 2上传文件。 我在Java中的Webresources是: 当我通过带有Auth标头等的URL请求调用它时(它具有适用于Chrome的Advanced Rest Client扩展),它完全可以正常工作 证明:(在这种情况下,一切正常) Spring配置文件和Pom依

  • 问题内容: 尝试将文件上传到S3存储桶时遇到问题。一切正常,除了我的文件参数似乎不合适。我正在使用Amazon S3 SDK从Node.js上载到S3。 这些是我的路线设置: 这是items.upload()函数: 将param 设置为类似字符串的效果很好。根据doc,param必须获取 (缓冲区,类型数组,Blob,字符串,ReadableStream)对象数据。 但是,上传文件对象失败,并显示

  • 问题内容: 是否可以使用http put方法将本地文件上传到保管箱?我正在上传文件,但没有文件?(“字节”:0) 如何向文件添加内容? 我的代码如下: 我的文件已成功上传,但没有内容?它是空的!该文档对我来说有点困惑:https : //www.dropbox.com/developers/core/docs#files_put 问题答案: @smarx:我正在发送一个空的HTTP PUT请求,最