问题标签 [jcop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
139 浏览

smartcard - 如何将日志消息保存到 JCShell 中的文件中?

我正在 JCShell 中执行一些命令(init-update、auth-ext 等)以与 SmartCard 进行通信。我想将所有这些日志消息写入一个文件,这样我就可以操纵它们。

执行此操作的命令/方法是什么?

谢谢

0 投票
2 回答
480 浏览

java - Javacard 中的可共享接口:用例和实现

[语境]

我需要将数据从一个小程序发送到另一个。此外,需要删除并重新安装其中一个小程序。安装后,小程序之间的数据交换需要成为可能。

可共享接口对实现这一点有用吗?

[理论]

一般来说,我想知道可共享接口是一个好主意的情况以及它的主要用途。

[实践]

我从这个答案中举了一个例子,但它不起作用。我想我不明白如何实施。我试图在同一个包中创建两个小程序,一个主,一个从。但是我在6F 00选择奴隶时得到了。我用两个包做了其他测试。但我得到了同样的错误。

0 投票
1 回答
206 浏览

javacard - JCOP Shell 不输出提示

我在 Eclipse 上开发 JCOP 的 Applet。但是突然之间,无论我如何清理并尝试创建新项目,JCOP Shell (JCShell) 都会选择性地省略一些发送命令的输出。我不知道出了什么问题。而且似乎没有任何与我如何设置 JCShell 相关的手册。

是否有任何命令或首选项设置可以使 JCOP Shell 反转为标准设置?

JCOP 壳牌

0 投票
1 回答
591 浏览

smartcard - 如果缓冲区大小 >7,则 Javacard 错误 APDU

我正在尝试使用字节数组设置 CommandAPDU 缓冲区。但是,如果长度>7,则会引发以下错误:

线程“主”java.lang.IllegalArgumentException 中的异常:APDU 无效:长度 = 8,b1 = 1 在 javax.smartcardio.CommandAPDU.parse(CommandAPDU.java:318) 在 javax.smartcardio.CommandAPDU.(CommandAPDU.java:98 ) 在终端.Main.main(Main.java:78)

我的代码:

有人可以帮我吗?

0 投票
1 回答
3890 浏览

smartcard - 首次使用时如何初始化 JCOP java 卡

如何编写这些以初始化 jcop 第一次在芯片上使用 APDU:00A4040010(TK - KEY) APDU:00F00000 (打开初始化)

0 投票
1 回答
232 浏览

smartcard - 如何恢复配置错误的 JCOP 卡

我有一张JCOP卡。已发出错误命令来修改其 ATR。可怕的是这张卡似乎根本没有返回 ATR。现在卡在 Windows 应用程序中响应:

使用

SCARD_SHARE_ 失败...

我在这里找到:

https://www.mail-archive.com/search?l=muscle@lists.musclecard.com&q=subject:%22Re%3A+[肌肉]+How+can+I+use+SCARD_PROTOCOL_RAW+with+IFD_HVERSION_3_0%3F% 22&o=最新&f=1

对于 SCARD_PROTOCOL_RAW,wincard.c 使用的是 IFDControl_v2 而不是 IFDTransmit。

请告诉我是否值得编写一个基于 pcsc-lite 的 linux 应用程序来完成相同的任务?
我想以某种方式发出 2 个命令:
1. 00A4040010 [Transport-Key](打开卡)
2. 00F00000(启动卡)
这些肯定会重置 ATR,这样我才能复活卡!

有人知道重置此类卡的另一种方法吗?

0 投票
1 回答
206 浏览

java - J3D081 个性化全球平台

我从一家中国供应商处购买了 J3D081 智能卡。我只有不兼容的 J3A081 文档。

由于卡处于预个性化阶段,我需要 APDU 序列来将卡定义为 T1。

我能够启动根小程序,但由于我的文档是针对不同芯片的,所以寄存器是错误的。

有人知道如何设置卡以使用全球平台吗?

我想简单地融合卡会使其永久损坏,因为默认状态不适合通信,对吧?

这是一个业余爱好者项目,所以我没有恩智浦的支持。

0 投票
0 回答
338 浏览

smartcard - Java Cards 突然停止响应

我正在开发一个 Java Card 应用程序,突然有两张卡同时停止工作。

这些卡是 J3H081 Java Cards(Java Card 3.0.4,Global Platform 2.2.1),我同时使用 ACR122U 和 ACR1222L 读卡器。

在测试时,我已经使用 GlobalPlatformPro 成功地将 CAP 文件写入卡,但在一个实例中,它在默认应用程序选择阶段返回了一个错误(不幸的是我不再有错误)。

我又尝试了几次写 CAP,然后换到另一张我必须写的卡(不幸的是,我现在只有两张),看看是否是卡问题;GlobalPlatformPro 也报告了该卡的相同问题。

我回到卡应用程序代码并进行了一些更改以查看是否有帮助,当我将应用程序重新加载到卡上时,卡根本没有响应(即 GlobalPlatformPro 报告不存在卡)。

然后我尝试了另一张卡并得到了相同的结果。

我尝试了两种不同的阅读器(如上所述),每个阅读器都在两台不同的机器上,并得到相同的结果。

在 ACR1222L 上,卡只是偶尔在 RF 上注册(即我听到哔声),但操作系统看不到卡。

放置在 ACR122U 上时,卡会发出哔哔声,LED 会变绿一会儿,然后又变回红色,操作系统无法看到卡。如果我将卡留在读卡器上,它会每 20 秒执行一次(好像它检测到卡然后失败)。如果我点击卡片,然后将其拿走,然后再次尝试点击它,它不会发出哔哔声,除非离开约 20 秒。

MIFARE 1K 和 4K 卡继续按预期与两种读卡器一起工作。

在这一点上,我会假设是卡片失败了,但由于两张卡片同时发生,我想知道这是否是我做过的事情。

我的应用程序会这么严重地破坏卡片吗?

编辑

在@MaartenBodewes 的一些帮助和指导下,我发现这些卡片似乎正在“静音”。

我尝试从 Linux 系统上的嵌入式 PN5180 读卡器读取卡片,并进一步了解;该卡将检测到,我可以使用 PN5180 随附的 NFC 库读取 ATR(我假设它在引擎盖下使用 APDU?)。但是,当我尝试向卡发送 APDU 时,我收到一个错误,然后卡在超过 20 秒内再次无法检测到。

根据 Sun“Java Card Applet 开发人员指南”:

有一些情况会导致卡被阻止(或静音),从而阻止进一步使用该卡。例如,当检测到试图破坏卡的安全性时(可能是连续五次以上错误地输入个人识别码 (PIN) 码),卡可能会被阻止。在这种情况下,需要联系发卡行(并且可能需要退回卡)以将 VM 从这种阻塞状态重置。

我在谷歌搜索时发现的其他信息表明,卡片静音可能是暂时的,表面上是为了阻止对卡片的暴力攻击。这种暂时的静音是我相信我正在经历的一部分。

在 Windows 上,我怀疑诸如智能卡即插即用之类的东西会尝试向卡发出 APDU,从而触发静音,这就是该卡不会出现在 Windows 中的原因(尽管禁用 SCPNP 似乎没有帮助)。

此时,我什至无法与 GlobalPlatform 通信以选择应用程序,这在我的任何应用程序代码运行之前。

我一直在进行多次迭代,将应用程序加载到卡上。在失败之前加载的应用程序版本正在运行,并且下一次迭代安装正常,但 GP 未能将其标记为默认值,此后从未执行过。第二张有这个问题的卡上从来没有以前的应用程序,所以不可能是那个,导致它。

根据@MichaelRoland 的一些评论,我阅读了一些关于卡片撕裂的内容,并注意到在交易期间电源故障的上下文中提到的一个事情是 arrayCopyNonAtomic 方法,这是我在我的应用程序的最后一个版本中引入的新方法。但是,我不认为此案涉及电源故障。

尽管该版本的应用程序从未在卡上运行过,但是否有可能简单地在其中安装带有此方法的 CAP 可能会在 GlobalPlatform 中触发类似的事情?

编辑 2

我发现我在加载到卡上的应用程序的 install() 方法中犯了一个错误。在审查时,我有一个大小为 32768 的数组,我(现在)理解它会被截断为零。

我原以为这会失败,但是,我确实在某处读到未处理的异常可能被视为可以锁定卡的安全违规行为。虽然卡似乎只是暂时锁定,所以我不确定它是否/如何被重新触发,或者它是否足以导致这个问题。

这导致了一个问题:该应用程序是否已加载但未能安装(这或多或少是我在 GP 上看到的),并且由于它尚未“安装”,每次我尝试访问它尝试安装的卡时应用程序失败并触发安全违规?

我已经尝试找到有关应用程序安装和初始化过程内部的更详细信息,但还没有多少运气。

0 投票
1 回答
548 浏览

java - JavaCard 3 Eclipse 转换器错误,找不到包 org.globalplatform 的导出文件 globalplatform.exp

我正在使用jcdk 3.0.5u3Eclipse Oxygen3 开发一个简单的 javacard 小程序。如果我使用来自 GlobalPlatform 的简单 API,例如 GPSystem.getCardContentState() 会导致错误。

我尝试将 globalplatform.jar 文件添加到包资源管理GP API v1.1v1.6的 Reference Libraries 部分。我还将 导入"org.globalplatform.*"到代码中。

转换器返回“找不到包 org.globalplatform 的导出文件 global platform.exp”

0 投票
1 回答
402 浏览

applet - JCOP 3 预个性化 secid p60

我想知道如何预个性化 jcop 3 卡我尝试了 JCOP 2 预个性化脚本,但它不起作用并进行了搜索,到目前为止我没有找到任何结果。我尝试了本教程https://re-ws.pl/2017/09/importunderstanding-jcop-pre-personalization/ 它在 jcop 2 中有效,但在 jcop 3 中无效