gpt4 book ai didi

安卓 HCE : are there rules for AID?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:53:18 29 4
gpt4 key购买 nike

我正在尝试使用 ACR122 NFC 阅读器来选择在一个使用 Android 主机卡仿真的 Nexus 5。但是,小型 AID 不是认可。

我的目标是使用三字节长的 AID,就像我在 DESfire 卡中所做的那样。我的第一个目标只是能够执行 SELECT 命令。

我的测试应用使用以下 AID 配置:

<host-apdu-service xmlns:android="http://schemas.android.com/apk/res/android"
android:description="@string/service_descr"
android:requireDeviceUnlock="false" >

<aid-group
android:category="other"
android:description="@string/aid_descr" >
<aid-filter android:name="A0A1A2" />
<aid-filter android:name="B0B1B2B3" />
<aid-filter android:name="C0C1C2C3C4" />
<aid-filter android:name="D0D1D2D3D4D5" />
<aid-filter android:name="E0E1E2E3E4E5E6" />
</aid-group>

</host-apdu-service>

如果我运行以下 APDU:

00 a4 04 00 03 a0 a1 a2 00
00 a4 04 00 04 b0 b1 b2 b3 00
00 a4 04 00 05 c0 c1 c2 c3 c4 00
00 a4 04 00 06 d0 d1 d2 d3 d4 d5 00
00 a4 04 00 07 e0 e1 e2 e3 e4 e5 e6 00

我总是得到以下回复:

=> 00 a4 04 00 03 a0 a1 a2 00 
<= 6f 00
=> 00 a4 04 00 04 b0 b1 b2 b3 00
<= 6a 82
=> 00 a4 04 00 05 c0 c1 c2 c3 c4 00
<= 90 00
=> 00 a4 04 00 06 d0 d1 d2 d3 d4 d5 00
<= 90 00
=> 00 a4 04 00 07 e0 e1 e2 e3 e4 e5 e6 00
<= 90 00

那么,只有长度大于 5 个字节的 AID 才能在 Android 上运行?还是我做错了什么?

最佳答案

智能卡应用程序标识符 (AID) 的规则在 ISO/IEC 7816-4 中定义。 AID 最多可包含 16 个字节。根据前 4 位,AID 被分为不同的组。 ISO/IEC 7816-4 中定义的最相关组是:

  • 'A'开头的AID:国际注册的AID
  • 'D'开头的AIDs:国家注册的AIDs
  • 'F' 开头的 AID:专有 AID(无需注册)

对于(国际)国家注册的 AID,AID 分为两部分,一个 5 字节的强制性 RID(注册应用程序提供商标识符)和一个可选的最多 11 个字节的 PIX(专有应用程序标识符扩展)。

对于专有 AID (F...),ISO/IEC 7816-4 没有明确规定任何最小长度要求。

除此之外,当涉及 HCE 和从 NFC Controller 到安全元件或应用处理器的卡仿真通信路由时,还有 NFC 论坛 NCI 规范。此规范要求 AID(用于基于 AID 的路由条目)在 5 到 16 字节之间。顺便提一句。同样的限制适用于遵循 Java Card 规范的智能卡。

对于 Android,硬编码要求在 SELECT 命令中接收的 AID 至少包含 5 个字节:

关于安卓 HCE : are there rules for AID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27533193/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com