1

我正在尝试使用 Windows Phone 8.1 中的新 Windows.Devices.SmartCards 命名空间从智能卡中提取 ATR(我正在使用 Silverlight)。

我正在调用 GetAnswerToResetAsync 方法,它以 COM 对象响应,该对象转换为 14 字节数组(在我的情况下)。我们使用 Android 的开发人员使用称为 GetHistoricalBytes 的东西,这会产生 20 个数字的 ATR。

有没有其他人有过这种方法的经验,有没有人知道我们应该从中得到什么信息。我还预计有效载荷会更大,所以我寻求的信息可能不在此调用中。我查看了 GetIdAsync,但这响应卡不支持此功能。

4

1 回答 1

0

Android + getHistoricalBytes() 建议您使用的是非接触式智能卡(ISO/IEC 14443 Type A)。在非接触式接口上,智能卡没有 ATR(因为没有像接触式接口那样的重置过程)。取而代之的是,当读卡器以防冲突顺序选择卡片时,卡片有一个 ATS(选择答案)。ATS 和 ATR 具有结构相似性,但传递的信息不同。

您在 Windows 上获得的 ATR 取决于您访问卡的方式:

  • 如果您通过接触接口访问卡片,您将获得卡片的真实 ATR。根据卡的不同,您可以通过读取基本文件 EF.ATR 在非接触式界面上查询相同的信息。

  • 如果您通过非接触式接口访问卡,您可能会获得由 PC/SC 层生成的模拟 ATR。对于 ISO/IEC 14443-4 A 类非接触式智能卡,模拟的 ATR 应包含从字节 4 开始的 ATS 的历史字节。(您可以在 PC/SC 规范的第 3 部分中找到映射描述)

于 2014-12-30T09:32:41.053 回答