繁体   English   中英

如何向 ISO7816 智能卡发送几个任意字节?

[英]How to send few arbitrary bytes to a ISO7816 smart card?

我有一个可以充当 ISO7816 智能卡的可编程设备(Galaxy Watch),我还有另一个可以充当卡终端的可编程设备(Android 智能手机)。 不需要任何智能卡功能,因为它应该被使用,我需要做的就是从手机发送和接收几个字节到手表。

我有一个在手表上注册 AID 的工作实现。 电话正在发送一个 A4(选择文件)指令,命令 P1=04 和 P2=00,并且在数据字段中注册了 AID。 然后手表会收到一个回调,并可以用任意数据对其进行响应。 这工作正常。

我的问题是:如何扩展它以便能够向手表发送一些任意字节的自定义信息? 我有太多不同的信息对象,无法为每个对象注册一个单独的 AID。 我可以以某种方式向该 A4 或任何其他命令添加一些任意字节吗?

我的答案基于基于主机的卡仿真概述

您似乎已经扩展了 HostApduService 并实现了 processCommandApdu() function 接收在您的“应用程序”的 scope 中发送的所有 APDU(即您想通过 AID 访问的内容)。

现在您必须决定如何 model 并根据 ISO7816 封装“少量任意字节的自定义信息”(请参阅此处了解阅读 ISO 7816 的一个不错的入口点;在这里您可以选择

  • 您将通过 READ / UPDATE / APPEND RECORD 访问的面向记录的文件
  • 您将通过 READ / UPDATE BINARY 访问的透明文件
  • 您将通过 GET / PUT DATA 访问的对象

一旦您决定了数据组织,您必须启用上述 processCommandApdu() 来解码相应的 APDU 并读取/写入“自定义信息的几个任意字节”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM