如您所知int,JavaCard 2.2.x上没有变量.我需要整数变量用于我正在开发的applet.
我想知道如何模拟int变量及其算法使用byte和short变量.
为什么在恩智浦网站上没有关于"JCOP"或J2A040和j3d081这样的术语的搜索结果?我想开始Java Card开发并在市场上找到名为的Java Card
但恩智浦网站上的条款是: - SmartMX,MIFARE DESFire等,或 - P5CC021,P5CC040,P5CC073,P5CC080,P5CC144
为什么市场和制造商使用这些不同的术语?
更新:
如果我购买SmartMX它是否附带操作系统?恩智浦为操作系统或供应商编程?我有能力自己做吗?
我在哪里可以找到每个JCOP OS的详细规范?
在初始化更新命令的响应字段中,密钥分散数据(其包含制造ID和安全域AID的最后两个字节)被返回到Off Card实体.
我想知道这些数据的用途是什么?
我在某地读到,这个密钥多样化数据用于推断Off Card端的基本密钥.我不知道这是对还是错.
如果它是正确的,那么如何使用这种多样化数据在卡片末端导出基本密钥?
请提供你的建议!!
我开始使用GlobalPlatfrom Card规范,我无法弄清楚GLobalPlatform functinalify如何来到JavaCard.是否有任何小程序应安装到卡中以使此卡与GP兼容?或者在制造期间将GP功能作为JRE扩展提供给卡?或者甚至可以使非GP兼容卡与GP兼容?
如您所知,当我们想要使用Java卡进行加密操作时,我们必须使用Cipher对象.我的问题实际上与效率有关.假设我想使用AES密钥执行一些加密和解密操作.
以下哪种策略更好?
Cipher对象并使用单个键初始化它们,但不同的模式(MODE_ENCRYPT和MODE_DECRYPT).然后对于每个操作,我只需要doFinal()在适当的对象上调用方法.Cipher对象,每次调用doFinal()方法之前init(),使用正确的模式对对象执行方法调用.这是一个CAP文件,可能包含恶意软件代码,没有源代码,也没有导出文件.
它是旧平台版本的CAP文件,即GP211.
我在Classic JVM和Dalvik中拥有丰富的Java逆向工程经验.但Java Card是较不受欢迎且更接近的平台.大多数工具用于CLASS/JAR或DEX,而不是CAP.
我找到了几个可以反汇编 CAP文件的工具(包括一些模拟JCOP的虚拟机),但是CAP非常大,使用汇编代码对我来说过于复杂和缓慢.
而且我们不能简单地做"CAP文本字节码 - > Notepad ++ - >一些Java字节码编辑器 - > Java字节码".
CAP字节码和Java字节码之间的差异太大.不仅仅是方法表,它还有大量不同的操作码.
只需反编译Java Card Kit 的converter.jar(它是一个转换CLASS - > CAP的工具),看看转换是一个非常复杂的过程.
我需要一些自动转换器.
同时,我开发了一套智能卡解决方案和"CAP反编译器"将是一个很好的部分.
是的,我打算写.
我计划从一侧在Javassist之上构建它,从第二个构建一些CAP反汇编库,从第三个构建一些标准Java反编译器(-s).
但我应该确定没有类似物.
问题在这里:
地球上是否有一些工具可以将Java Card*.cap转换为Java*.class(或直接反编译*.cap)或不?
我不是要求一个库(我发现了一些库),我要求一个工具.Runnable接口.
(如果你知道这个字节码转换中的一些陷阱,我将不胜感激,如果你将它描述给我.现在我把它看作只是一个复制一个操作码列表到另一个有巨人if...else if...else if...else if...或switch...case...case...case树(和一些misc员工,即转换)访问修饰符,字段等).
有什么办法可以加载. 将java卡中的cap(转换小程序)设计成java,然后将小程序从该.cap(转换小程序)文件安装到智能卡中?
我有一个转换成小程序文件的 .cap 文件,我想在该 .cap 文件中安装小程序。
首先告诉我如何在java中加载.cap文件。
在 java 中,我使用javax.smartcardio包与智能卡和 apdu 命令进行交互,以与安装在智能卡中的小程序进行交互。
我在用:
我想知道ECDSA签名和公钥的数据格式是什么规范(或标准)定义的?
我正在 java 卡上测试 ECDSA 签名。我发现签名和公钥值中有一个TLV格式。
* Public key (TV format)
[Tag=04] [public key value 1] [public key value 2]
04 038A3F59E813995DAB730588CFCBB985F5A1ED90C0D62960AE0B274D 2E6B12672318E0B113DECC0406B62887B6BCB9B1583B1A50779EAB5A
* Signature (TLV format)
[Tag=30] [Length=3C~3E] [Tag=02] [Length=1C~1D] [signature value 1] [Tag=02] [Length=1C~1D] [signature value 2]
303C 021C 7EEB0B2596F74344B3D7B046EA0BD17C4461FC277658CE93509F1674 021C 4F5DBFB30D994664DA80528847A767F0194876B068E5958161797991
303E 021D 0080F20B82D407AE663F010F4990F12073631D653EA1D65DC75EBD4293 021D 00880DB667EF51AEA8E7C9BB012496C7C9ECE3BC5829B82B692B9211C3
303D 021D 00F77447EF326A4A49597D0B839F68F524891F3655DA4561F1AA10EF70 021C 152F7FF18644C5E5C9118736E1F7528F0B10C5FF641C7B7CDF012129
303D 021D 00A2EBCC5C5981341D0726F2E846CC3879C74EFD64D8698589A8CEAB60 021C 6E04FF884A451D7C0737A182BC2DE7F7D3008EE182B46A009BFFC9E8
Run Code Online (Sandbox Code Playgroud)
我认为数据格式是在某些规范或标准中定义的。我只想知道文档名称。
java卡目前的用途是什么?文档要么非常旧,要么非常稀疏。经过一段时间的谷歌搜索,这是我的想法:
eID:用私钥签署文档哈希,由中央机构(政府)颁发 - 签署法律文件
唯一 ID - 通过 ID 进行(人员)识别,受 PIN 保护并受 TLS 保护
java 连接版 Web 应用程序 - 除了 IDE 中的模板应用程序之外,我找不到任何有关此功能的使用文档。当这一层可用时,为什么仍然使用 APDU?难道这个申请不存在吗?
尽管有所有新功能,但我发现它们仅用作中央存储库/提供者的标识?TLS 用于保护卡和后端服务器之间的通信?
谢谢。
我有一个包含 SSD(补充安全域)的 Javacard,我想删除它。通常,当我想从我的卡中删除小程序或包时,我会在成功的相互验证过程后发送以下DELETE APDU命令(不需要 MAC 或数据字段加密,对于DELETE APDU命令就足够了):Security Level == 0
--> 80 E4 00 00 LC 4F <AID Len> <AID>
<-- 90 00
Run Code Online (Sandbox Code Playgroud)
上面的命令适用于普通小程序。但是当我将我的SSD的AID放入其中时,该卡以69 85个状态字响应,这意味着“不满足使用条件”。.
由于在我的卡中启用了委托管理功能,并且 ISD 中加载了公共令牌密钥和收据密钥,我认为上述错误可能是由于未在DELETE APDU命令中使用删除令牌。所以我计算了删除令牌如下:
DeleteToken = RSA_Sign("00 00 LC 4F <SSD AID Len> <SSD AID>", TokenPrivateKey)
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用以下命令删除 SSD:
--> 80 E4 00 00 <LC+Len(DeleteToken)> 4F <SSD AID Len> <SSD …Run Code Online (Sandbox Code Playgroud)