问题标签 [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.
javacard - 被操纵的 CAP 文件是否会在安装过程中破坏 Java Card?
我有一张可以正常工作的 Java 卡:
我编写了一个简单的程序来在接收到每个命令时返回 APDU 缓冲区:
将上述程序转换为.cap
文件后,我用WinRAR打开 cap 文件并更改.CAP文件的一个字节,如下所示:
(我替换0x78
而不是在class.cap0x07
的第九次再见)。
点击放大 :
现在我尝试安装这个新的 cap 文件。但不仅安装失败,而且我无法再列出我卡的内容:
我的问题:
这个新生成的 CAP 文件在我的智能卡上发生了什么?有没有人知道原始文件和操作文件中的字节码和这个字节的含义?这是对安装操纵文件的良好逻辑响应吗?
注1:
我也尝试在我的 JCOP 卡上安装这个新的cap文件。安装再次失败,但卡静音约 15 分钟,而不是上述错误。(必须在读卡器中大约 15 分钟才能再次激活!)
笔记2:
我试图更改此文件的第 10 个字节而不是第 9 个字节。所以我换成0x01
了0x45
. 之后我成功安装了新的 CAP 文件!卡不应该在字节码验证后检测到这种操作并阻止安装吗?
smartcard - JCOP 卡中的安全盒
11-12页
安全盒概念在 JCOP 2.4.2 R3 中实现。Secure Box 是一种允许运行未经认证的第三方本地代码并确保该代码不会损害、影响或操纵 JCOP 2.4.2 R3 操作系统或操作系统执行的任何小程序的结构。硬件 MMU 确保安全盒中的其他代码和/或驻留在硬件上的数据的本机代码已在硬件评估中获得认证
我有一些描述的卡,我也想有使用安全盒的经验!在Java Card v3.0.1 Specifications、Global Platform v2.2.1 card specification和JCOP v2.4.2 r3 Administrator Manual中搜索没有帮助。上述文件中几乎没有关于 Secure Box 的内容。
所以 :
有人知道如何在 JCOP 卡中使用安全盒吗?我们可以在 Secure Box 中上传什么样的程序/代码?这些程序是用 Java Card 语言编写的并且也是 CAP 文件的形式吗?或者那些是用 C++ 或汇编编写的?
如何上传并安装在卡上?而这个安全盒有什么优势呢?
javacard - 这张卡到底有多少内存?(EEPROM 和 ObjectDeletion 游戏!)
我编写了一个简单的程序来检查requestObjectDeletion()
方法功能和我的卡的可用内存。
我的小程序响应以下五种不同类型的 APDU 命令:
- 选择 APDU 命令:响应:
0X9000
- 命令:
XX 00 XX XX XX [...]
响应:以字节为单位返回可用内存。 - 命令:
XX 01 XX XX XX [...]
响应:创建一个包含 2000 个元素(即 2000 字节)的本地字节数组。 - 命令:
XX 02 XX XX XX [...]
响应:请求对象删除方法 - 其他命令: 响应:
0x9000
为了返回可用内存,我编写了一个方法,该方法使用无限while
循环创建大量带有100
元素的字节数组并counter
同时增加 a。捕获Not enough memory
异常时,方法返回counter *100
(即调用此方法之前的空闲内存)
好的,这是程序:
现在,有一个问题。这是当我向卡发送一些 APDU 命令时OpenSC-Tool的输出:
命令0
返回0xE358
(=58200)。所以调用这个方法之前的内存是58200
字节。
命令1
返回0x0000
,这意味着现在可用内存小于100
字节。
命令2
返回0x9000
,所以 requestObjectDeletion 调用成功。
命令再次3
返回0xE358
,这意味着requestObjectDeletion
运行成功。
命令4
返回0x9000
,所以 requestObjectDeletion 调用成功。
命令5
返回,因此现在创建了0x9000
一个带有元素的字节数组。2000
现在我希望卡的可用内存等于0xE358 - 2000 = 0xDB88
但在下一个命令中:
命令6
返回0xDD18
!即我们0xDD18 + 2000 = 0xE4E8
的卡中有字节存储空间!
这可能是谁?0xE4E8 - 0xE358
为什么卡在第一个命令中看不到这 400 个字节 ( )?
java - 使 java 卡应用程序类似于 RB 5.0 的资源
我正在制作java应用程序,其主要功能是在java卡36k上写入数据,所以我需要资源,关于java卡的教程,诸如此类的东西。?我没有制作java卡应用程序的经验,所以请给我任何有用的资源..
我正在制作像 RB 5.0 这样的应用程序,如果你能给我这个应用程序的 src 代码会更好:)
java - Javacard - 签名和验证
我正在尝试在卡上签署一条消息并在卡外验证它。
结果总是错误的。
我可能会错误地获取模数和指数。有任何想法吗?
Java小程序代码:
…………
Java主机代码:
创建公钥的代码:
验证消息的代码:
更新:Java小程序签名方法
smartcard - JCOP 2.4.2 Java Card 上的 ECDSA 算法
我想在 Java Card (JCOP 2.4.2) 上实现 ECDSA 算法。这是我的源代码:
我正在使用此脚本脚本代码运行此源代码:
当我要求/send 0046000000
签署纯文本消息时,我会收到响应代码6F00
。
你能帮我看看这有什么问题吗?
如何在 JCOP 卡上正确实现此算法?
smartcard - pro.javacard.gp.GPException:严格警告:检测到未融合的 JCOP
尝试使用以下命令列出智能卡的内容时
得到以下异常:
搜索时,我知道那张卡不是预先个性化的。我的问题是什么是智能卡预个性化?谁来做这种预预音化?是供应商吗?
javacard - 读取 JavaCard Classic 上的 TLV 编码数据
我想阅读 Java 卡上的 TLV 编码证书(NXP JCOP J3D081、JCOP 版本 2.4.2、Java 卡版本 3.0.1 Classic)。
成功创建了 cap 文件,但是当我尝试在卡上安装它时,出现 gpshell 错误:
load() 返回 0x80206A80(6A80:错误数据/命令数据中的值不正确。)
我使用 JCDK 3.0.3 中的罐子,这通常适用于椭圆曲线等。TLV 的东西有什么不同?
使用的小程序代码(不使用 BERTLV 东西时安装良好):
我使用以下 ant build.xml 创建了 cap 文件:
使用的 build.properties:
所以怀疑上限是用 api_connected.jar 编译的,但是从工具包中删除文件并没有改变任何东西。
任何帮助,将不胜感激。在此先感谢,托马斯
smartcard - 生成ECC密钥对时获取CryptoException.ILLEGAL_VALUE
我使用 JCOP 卡生成ECC密钥对。我可以创建ECPrivateKey
, ECPublicKey
, KeyPair
w/o 任何问题,但它会 CryptoException.ILLEGAL_VALUE
在genKeyPair()
. 我的卡或我的操作出了什么问题?我不知道。你能告诉我我在哪里犯了错误吗?非常感激!
顺便说一句,我发现 JCALgTest 也遇到了同样的问题,请在这里查看测试报告。
这是我的代码。
smartcard - 发送 Select + Transport Key 后的 JCOP 0x6A82
您好,我有一张未融合的 JCOP 卡
从我的供应商那里,我得到了 TK 和打开卡片的命令
当我发送到卡时
[00:a4:04:00:10:40:41:42:43:44:45:46:47:48:49:4a:4b:4c:4d:4e:4f]
我有[6a:82] (File not found)
如何个性化?