从eek-for-android 访问时,Javacard 小程序 RPDU 不包含任何数据

2024-04-10

我有一个复杂的 Javacard 小程序,它是为普通智能卡(例如 NXP J3E145,T=1)开发和测试的。现在我必须在手机的 UICC 中使用它并从我的 Android 应用程序访问它。 UICC使用T=0协议。

当我从普通读卡器 (Omnikey 5321) 与 SIM 卡通信时,该小程序工作正常。

然而,当我将其移动到我的手机(Sony Xperia S)并通过seek-for-android API发送APDU时,一些RPDU不包含任何数据部分,只有状态字0x9000并且数据部分丢失!

这些 APDU 失败:

80 04 00 00 00 --> 90 00 (although there should be some data, 200 bytes approx.)
80 01 00 00 00 --> 90 00 (although I expect 18 bytes)

这些 APDU 没问题:

80 05 00 00 00 --> 00 90 00 (one byte as I expected)
80 06 00 00 00 --> <... data of length 20 ...> 90 00 (as I expected)

是否是超时问题(处理时间始终

我的 Android 应用程序代码非常简单:

Channel channel = session.openLogicalChannel(aid);
byte[] resp = channel.transmit(new byte[] {(byte) 0x80, 0x04, 0x00, 0x00, 0x00});

开放移动 API,4.4.2 (19)。

任何帮助都会很好,我花了两天解决这个问题。 请救救我。

Vojta

EDIT我的访问规则:

AID: A000000018308005006563686F00 ___ AllApps:Never
AID: A0000000183080055A6563686F5A ___ Hash:ABFF7159B0530044CD71C6561B0F9D55CBAE8984:Always
AID: A000000018308005596563686F59 ___ Hash: ABFF7159B0530044CD71C6561B0F9D55CBAE8984:Always
AID: A000000018308005586563686F58 ___ AllApps:Always
AID: NO_AID ___ AllApps:Always
AID: A000000018308005006563686F00 ___ AllApps:Never
AID: A0000000183080055A6563686F5A ___ Hash: ABFF7159B0530044CD71C6561B0F9D55CBAE8984:Always
AID: A000000018308005596563686F59 ___ Hash: ABFF7159B0530044CD71C6561B0F9D55CBAE8984:Always
AID: A000000018308005586563686F58 ___ AllApps:Always
AID: NO_AID ___ AllApps:Always

在上面的列表中我只过滤了APDU规则(NFC规则根本没有写下来)。

我的小程序有 AID F06D617073616D2E617070 我的发行人安全域是 A0000000871002FF33FFFF8901010100。

我不认为这些规则会影响我的 APDU,没有带有标头和掩码的真正过滤器...


我在我的小程序中发现了一个错误,这确实导致了整个问题。我的小程序响应状态字 0x911C,但没有数据。然而,SEEK 总是返回 0x9000 而不是 0x911C,因为通过 SEEK 访问时不能使用状态字 0x91XX。下一段是来自 SEEK 论坛的 EduardEtc,它解释了一切:

“ETSI(在 TS 102 221 中)定义了状态字 91XX,以便与 SIMToolKit (CAT) 应用程序一起使用。任何原本将 9000 作为 SW1SW2 发送的卡应用程序都可以返回 91xx,而手机必须解释该值以处理 CAT APDU。因此,手机应用程序将返回 91xx。从未见过 91xx,它被电话的 CAT 处理层替换为 9000。ISO/IEC 7816-4 出于类似目的定义了 SW1SW2=61xx。当时,这包含在标准中以满足 ETSI 的需求,但是,ETSI没有等待 ISO 过程完成并指定了不同的编码。”

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从eek-for-android 访问时,Javacard 小程序 RPDU 不包含任何数据 的相关文章

  • 升级到最新支持库后Android JACK编译器错误

    Android Studio 2 2 3 Windows 10 64位 构建工具版本 25 Android Gradle插件版本2 2 3 升级到最新的支持库 从 23 4 0 到 25 1 0 并更改编译版本 从 23 到 25 后 我收
  • 使用 proguard 混淆文件名

    我正在使用 proguard 和 Android Studio 混淆我的 apk 当我反编译我的apk时 我可以看到很多文件 例如aaa java aab java ETC 但我项目中的所有文件都有原始名称 有没有办法混淆我的项目的文件名
  • 嵌套 XML 布局文件

    android 有没有办法从另一个布局文件引用 xml 布局文件 为了更好地解释 我有一个名为layout1 xml 和layout2 xml 的布局文件 我可以从layout1 xml引用layout2 xml吗 用这个
  • 写入 Android UI Automator 输出控制台

    我正在 Android UI Automator 上编写一个小包装器 通常我们可以在控制台看到测试用例的状态 我可以访问它并添加我自己的消息吗 我努力了System out println 但这没有用 有什么办法可以做到这一点吗 您可以使用
  • Play 商店中的应用描述更新

    我想更新应用程序的描述以及 Play 商店上的屏幕截图 但应用程序保持相同 即相同的版本号 我不想发布新应用程序 因为应用程序中没有任何更改 这可能吗 谷歌也会要求更新应用程序吗 您可以更新描述 也可以更改屏幕截图 您的应用程序将保持不变
  • java.lang.IllegalAccessError:预验证类中的类引用在运行测试项目时解析为意外实现?

    在实施项目工作正常之后 我使用第三方库 zxing 实施了项目 然后在我编写了一个测试项目对我的项目进行单元测试之后 运行测试项目后 主项目 类及其方法没有给出任何信息错误 但如果在主项目的该方法中使用任何 zxing 框架类 则会在运行时
  • Android L,使用 joda.time 库的异常

    该应用程序适用于所有设备 包括 nexus 5 和 nexus 7 在 Android L 预览版上运行相同的应用程序时 应用程序崩溃了 我一直在调试 并且调用 DateTime 构造函数发现了异常 public static String
  • 使用 DataBinding 测试片段时膨胀类 Fragment 时出错

    有人可以帮我解决这个问题吗 在我的测试中 我想检查登录按钮是否显示在起始页上 今天我已经为这个错误苦苦挣扎了一段时间 我不知道应该如何解决它 我在这里错过了什么 也许这个问题与这个问题有些相似 Espresso 测试失败 并显示 java
  • 在光标所在行强制关闭!

    嘿 我正在尝试创建一个应用程序来查找存储在 SQlite 数据库中的 GPS 数据 但我面临一个问题 我构建了一个 DbAdapter 类来创建数据库 现在我尝试使用以下函数从另一个类获取所有数据上的光标 public Cursor fet
  • 在 Android 中加密/解密字符串的简单方法

    我的问题是如何加密String String AndroidId Override public void onCreate Bundle savedInstanceState super onCreate savedInstanceSta
  • Android:WebView/BaseInputConnection 中的退格键

    我在 Android 4 2 中遇到软键盘退格问题 我在 WebView CodeMirror 中有一个自定义编辑器 它使用一个空的
  • 如何在同一设备上运行的 Android 应用程序之间传输文件?

    我正在编写一个与 RESTful 服务交互的 Android 应用程序 该 Web 服务本质上是一个文件系统 并提供元数据以及对文件的 CRUD 访问 我的应用程序检索元数据 并通过ContentProvider 我需要添加与我的应用程序在
  • 双屏 Android Studio 中不显示自动补全

    我刚刚从 Eclipse 切换到 Android Studio IntelliJ 我不明白自动补全是如何工作的 我尝试了 Control Space Control Shift Space 但没有相关建议 不在 Java 文件中 也不在布局
  • 使用 Proguard 通过 Dropbox.com 库混淆 Android 应用程序

    我刚刚创建了一个需要 Dropbox com API 库的 Android 应用程序 我现在尝试在 发布 模式下构建应用程序 并希望在代码上运行混淆器以对其进行混淆 但是 每当我尝试运行 Proguard 时 都会收到以下错误 Progua
  • 文本视图不显示全文

    我正在使用 TableLayout 和 TableRow 创建一个简单的布局 其中包含两个 TextView 这是代码的一部分
  • 通过 Gradle 和 Android Studio 构建和运行应用程序比通过 Eclipse 慢

    我有一个多项目 10 个模块 每次构建大约需要 20 30 秒 当我在 Android Studio 中按 运行 时 每次都必须等待才能重建应用程序 这非常慢 是否可以在 Android Studio 中自动化构建过程 或者您对如何加快此过
  • TabLayout 的不同 tabMode

    我正在使用 ViewPager 和 TabLayout 如果选项卡可以放置在显示 tabMode 上 则它们必须是 app tabMode fixed else app tabMode scrollable 我怎样才能做到这一点 我不明白你
  • Android 从通知刷新 Activity

    我有一个程序 我在其中调用通知 如果您将其下拉 该通知将启动一个新活动 mNotificationManager NotificationManager getSystemService ns int icon R drawable sta
  • 在数组列表中过滤 Filterable 不取消之前的过滤

    我看过过滤器方法文档 其中显示调用过滤器会取消所有先前未执行的过滤请求 并发布一个稍后将执行的新过滤请求 但我收到的实际回调有些不同 在我的实现中 它不会取消先前的过滤器请求并调用publishResults 最近一次搜索条件后的上一次搜索
  • 如何正确处理 ListView 内的 Android EditText 输入?

    在我的应用程序中 我有一个在 a 中添加 删除 编辑记录的活动SortedMap 该活动作为以下活动的延伸实施ListActivity 我已经实现了自定义ArrayAdapter对于收藏品 Every ListView项目 对应于基础记录

随机推荐

  • 如何捕获并打印未知类型的异常

    我有一些程序 每次运行它时 它都会引发异常 我不知道如何检查它到底抛出了什么 所以我的问题是 是否可以捕获异常并打印它 如果它源自std exception你可以通过参考捕捉 try code that could cause except
  • 如何将 FFmpeg 命令行转换为 ffmpeg-python 代码?

    我有这个命令行代码 ffmpeg i 0 mp4 c v libx265 preset fast crf 28 tag v hvc1 c a aac bitexact map metadata 1 out mkv 我想将其转换为Python
  • 在同一个ipa中支持armv6和armv7

    我有一个 XCode 项目 配置如下 项目格式 XCode 3 1 兼容 架构 标准 armv6 armv7 基础 SDK 最新 iOS 当前设置为 iOS 4 2 仅构建活动架构 未选中 有效架构 armv6 armv7 我的问题 生成的
  • 如何在selenium中获取和设置文本编辑器值

    我的网页上有文本编辑器 我需要使用 c 中的 selenium 脚本填充其值 我知道如何为文本框执行此操作 我已经检查了流程在文本框中设置值 https stackoverflow com questions 10557196 using
  • 如何隐藏 optgroup/option 元素?

    有没有办法隐藏option or optgroupHTML 元素 我试过打电话hide 在 jQuery 中 也使用常规 Javascript 来设置style display none 它可以在 Firefox 中运行 但不能在任何其他浏
  • 带有 REST API 的 Ruby on Rails

    我对 Ruby on Rails 很陌生 虽然我喜欢所提供的组织和标准 但我对如何让 Rails 在这种特定情况下为我工作感到有点困惑 我有一个 Web 服务 我想将其与 Rails 应用程序一起使用 直接连接到数据库会很好 并且可以立即为
  • GXT 3.x EditorGrid:逐个单元选择单元格编辑器类型

    无论如何 是否可以逐个单元地定义编辑器类型GXT 3 0 我需要创建一个转置表 列变成行 行变成列 在这种情况下 一列 从普通表的角度来看 将具有不同的编辑器类型 而行将具有相同的编辑器类型 我正在尝试使用以下方法 它似乎工作正常 并允许根
  • 使输入类型=“密码”在移动设备上使用数字键盘

    在我为移动设备设计的网站上 我有一个用于 PIN 码的输入字段 我希望在输入文本时隐藏文本 并且希望当移动设备上的用户想要输入 PIN 码时弹出数字键盘 当类型 数字 时 数字键盘会弹出 但当类型 密码 时 数字键盘不会弹出 并且我无法 或
  • 如何在 Access 开发中使用版本控制?

    我参与更新 Access 解决方案 它有大量的 VBA 大量的查询 少量的表格以及一些用于数据输入和报告生成的表单 它是 Access 的理想候选者 我想更改表设计 VBA 查询和表单 如何使用版本控制跟踪我的更改 我们使用 Subvers
  • C 中的类型转换会变得香蕉吗? [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 看来 C 和我对这里的预期输出存在分歧 I have struct r struct int r i float r f
  • 有没有办法打印到输出控制台? (双猫3)

    有没有办法使用结构化文本打印输出到控制台 例如 VB NET 中的 debug print 双猫3 您可以通过 TwinCAT 代码通过 ADS 命令发送消息 该函数称为ADSLOGSTR https infosys beckhoff co
  • Cordova:意外的机器代码 - 您上传的内容同时包含位代码和本机机器代码

    我正在构建一个 iOS Cordova 应用程序 当我将其上传到 iTunes Connect 时 它返回以下错误 意外的机器代码 您上传的内容同时包含位代码和本机机器代码 当您提供位码时 无需也包含机器代码 要减少上传的大小 请使用 Xc
  • 如何让实体框架更新复杂类型?

    我正在使用实体框架 EF 从存储过程创建复杂类型 最近 存储过程发生了变化 添加了更多返回值 我想更新映射到该存储过程的复杂类型 这可能吗 如果可以 如何实现 我目前正在每次删除我的函数导入和复杂类型存储过程更改 这很可能不是最好的方法 我
  • 何时使用 RedirectToAction 以及何处使用 RedirectToRouteResult?

    Question 在什么情况下 我可以使用RedirectToAction以及在哪里使用RedirectToRouteResult 我有两个如下所示的操作方法 方法 1 public class ActionResultTypesContr
  • 如果我有使用 Google App Script 的缩略图链接,如何在 Google SpreadSheet 中显示缩略图?

    我正在实施 Google Apps 脚本并尝试在 Google Spread Sheet 中显示数据 我能够正确显示文本数据 但我有一个视频的缩略图 URL 我想在电子表格单元格中显示它 即我想显示与我的 java 脚本变量 对象中的 UR
  • 从具有动态外部 IP 的计算机连接到 Azure SQL Server

    我正在尝试将具有动态外部 IP 的本地笔记本电脑连接到我们的 Azure SQL Server 为此 我创建了一个虚拟网络网关并将笔记本电脑连接到该网关 此外 我还向 SQL Server 添加了一个专用端点 之后 我可以使用telnet成
  • 如何在 React 应用程序中使用 Tesseract.js

    我正在使用 React 开发一个应用程序 我希望能够加载图片 然后让 Tesseract js 将其转换为文本 我正在使用react dropzone加载图像文件 我可以使用img标签将图像添加到页面 但是当我尝试使用 Tesseract
  • 如何在 Python 中实现安全的 WebSocket (wss://) 服务器?

    我想提供一个实时流 由于敏感数据必须对其进行安全加密 我已经使用 gevent 和 Gunicorn 作为直接前端成功获得了正常的 WebSocket 流 但现在我需要确保其安全 并且正在寻找其中一个 可以提供安全 WebSocket 连接
  • Mavericks 上的 Rails + MySQL - 库未加载:libmysqlclient.18.dylib

    当我运行 Rails 时 rails s 在我的本地主机 OSX Mavericks 上应用程序 我收到此错误 message Users adam rvm gems ruby 2 0 0 p481 gems mysql2 0 3 16 l
  • 从eek-for-android 访问时,Javacard 小程序 RPDU 不包含任何数据

    我有一个复杂的 Javacard 小程序 它是为普通智能卡 例如 NXP J3E145 T 1 开发和测试的 现在我必须在手机的 UICC 中使用它并从我的 Android 应用程序访问它 UICC使用T 0协议 当我从普通读卡器 Omni