首页 > TAG信息列表 > javacard

Java Card客户端-服务器共享接口返回6F00

我试图使用可共享接口,使用Eclipse 3.7 SDK在Java卡2.2.2中创建一个简单的客户端和服务器小程序.调用方法JCSystem.getAppletShareableInterfaceObject时,它将引发异常,因此返回SW设置为6F00. 这是客户端应用程序代码(Test_Client.java): package client; import server.Test_

Android-NFC SWP小程序选择返回6999

我的SIM卡上安装了一个简单的JavaCard小程序.我尝试使用Omnikey 5121 CL阅读器和支持NFC的Sony Xperia L通过NFC / SWP(单线协议)与我的Applet通信. 问题是我无法选择小程序-作为状态字,我得到6999.LED灯亮起,所以我认为读取器和SIM卡之间存在某些通信.而且,我也不能选择我的安全域

Java / Java卡中“ Switch Case”和“ If … else ..”的区别

请查看以下Java Card程序.它们在逻辑上看似平等,但在实践中却有不同的输出: 使用switch … case的简单传入APDU命令分析器: package testPack; import javacard.framework.APDU; import javacard.framework.Applet; import javacard.framework.ISO7816; import javacard.framework.

RSA Encrytion间歇性地在JavaCard上引发异常

我编写了一个程序,使用Java卡上的RSA公钥对10个字节的随机数进行加密.每当卡收到该APDU命令时都会生成一个随机数,并且由于我的applet中相关的密码对象块大小为2048位,因此我在此10字节随机数的末尾附加了242字节的0x00,使其变为256字节长度. 问题在于,有时响应是值为05的Crypto Ex

在Java卡中将整数的二进制表示形式转换为ASCII

我想将以二进制格式表示的整数的任意长度转换为ASCII形式. 一个示例是整数33023,十六进制字节为0x80ff.我想将0x80ff表示为33023的ASCII格式,其十六进制表示形式为0x3333303233. 我正在无法识别String类型的Java Card环境中工作,因此我将不得不通过二进制操作手动进行转换. 解决此

将小程序安装到Java卡的APDU命令的顺序是什么?

我有一个.CAP文件(applet),我想将其安装到我的Java卡中. 我知道我可以使用GPShell或apdutool(来自JCDK)之类的工具来执行此操作,但是我想自己复制安装过程. 令人困惑的是,在GP标准中,安装过程是:APDU命令INSTALL [for load],然后是多个LOAD命令,再接着是INSTALL [for install]命令.

如何使用Java Card apdu从智能卡写入和读取数据

我已经编写了一个applet,并将其安装在智能卡中.但是我不知道如何读写数据到智能卡? private void readName(APDU apdu) throws ISOException { byte[] apduBuffer = apdu.getBuffer(); for (byte i=0; i<userName.length; i++) { apduBuffer[5+i] = userName[(

java – 在JCIDE中调试时安装.cap文件时出现错误’6985”6A88′

我正在使用JCIDE调试其示例applet- walletdemo. 我装错了6985 conditions not satisfied’and 6A88’Referenced data or reference data not found 在调试时在JCVM上安装.cap文件期间.但我不知道什么是错的,怎么办. 以下是applet的一部分: private WalletDemoApplet(byte bA

在充气城堡上验证javacard签名ALG_ECDSA_SHA

我的问题看起来像这样:我在javaCard上生成一个签名(jcdk 2.2.2),当我想在终端上使用BouncyCastle验证它时,签名并不总是被验证 – 3,66中的1(平均100次尝试)签名是经核实,其余部分归还假.当我验证卡上的签名时,它总是返回true,但是在终端上它通常返回false,但有时是真的.因为终端有

瞬态存储器中的Java卡对象实例

我正在开发一个Java Card applet(用于Java Card 2.2.1),它需要一些临时对象来处理APDU命令.我对正确的内存管理有疑问. 我花了很多时间研究这些问题,但是我没有在一些Java卡API上找到任何澄清或良好的示例代码.我有两个主要问题: >如何创建瞬态对象数组(我的意思是RAM中的自定义对象

Android与SIM javacard 2.x applet交互

我已经开始了一个项目,我必须通过APDU接口或OTA接口发送命令,从我的android项目到手机SIM卡上的JavaCard小程序.我有AID和一些突击队员开始测试Android应用程序,但我不知道如何选择卡上的小程序,以及如何在Android上发送命令. 从搜索我发现这Seek for Android.但我已经读过我需要获

Elliptic Curve Diffie Hellman如何与Java结合使用JavaCard?

我正在尝试使用Elliptic Curve Diffie Hellman来处理JavaCard(版本2.2.1). 在JavaCard上,我现在有以下代码: byte temp[] = new byte[100]; byte secret[] = new byte[100]; byte size = buf[ISO7816.OFFSET_LC]; Util.arrayCopy(buf, ISO7816.OFFSET_CDATA, temp, (byte) 0, size

c# – 验证Java Card签名

我正在NXP J3D081卡上编写Java Card 3.0.2应用程序.我有使用ALG_ECDSA_SHA_256签名和验证签名.我的测试应用程序已将密钥写入卡中.如果我签署了32个字节的数据并将签名传回卡,则验证代码会成功验证签名.如果我使用私钥在Bouncy Castle中签署32个字节并传递给卡上的验证,则它会成功

如何使用Java Card中的Sim Toolkit启动带有URL的浏览器

如果技术上可行的话,我的工作给了我一份研究工作 Launch Browser with specific URL from SIM Application Toolkit using Java Card 2.2.1. 我尝试使用sim.toolkit库中的ProactiveHandler.启动浏览器的确切代码看起来像这样 我的测试小程序只是在屏幕上显示菜单项,当我点击它时

从seek-for-android访问时,Javacard applet RPDU不包含任何数据

我有一个复杂的Javacard小程序,它是为普通智能卡开发和测试的(例如NXP J3E145,T = 1).现在我必须在移动电话的UICC中使用它并从我的Android应用程序访问它. UICC使用T = 0协议. 当我从普通读卡器(Omnikey 5321)与SIM卡通信时,小程序正常工作. 但是,当我将它移动到我的手机(Sony Xpe

java – 比较带符号的十六进制数

我必须在java卡中使用int,但由于卡本身不支持整数,我使用byte []代替. 为了用十六进制格式表示数字,我检查第一位,如果它是1 – 负,如果它是0 – 正(二进制).因此,如果前导位小于8则为正,否则为负(十六进制). 最高人数:7FFFFFFF 最低人数:80000000 现在我想知道我是否想要比较一个

android – SIM上JavaCard applet的可靠时间源

我有一个JavaCard小程序在智能手机上使用Gemalto SIM卡.我想创建一个有效的指定日期和时间的电子钱包. 我知道使用经典的智能卡是不可能的,因为没有电池,所以智能卡内部没有时钟.但是,使用SIM卡可能是:当连接到网络时,SIM卡必须能够访问网络时间(不是本地系统时间,用户可以更改),并

哪些对象在Java Card中持久存在,何时?

这个问题是双重的,但希望尽管有自己的长度,但不应该无理由地回答.尽管如此,请尽量回答其中的一部分,并且对于让它如此详尽而言感到遗憾! >哪些对象持久存在?哪些物体是短暂的? >什么时候对象持续存在? 对于第一部分,该问题适用于: >存储在Applet中的对象>传递存储在Applet中的对象>仅存

在Java Card中进行递归编程时捕获内存异常

虽然Java Card不推荐使用递归编程风格,但我想对Fibonacci算法进行一些测试.我编写了一个函数来计算Fibonacci的大整数套件(由字节数组表示). 我的代码如下: public static byte[] fibonacci(byte[] n) { if (isLEThan1(n)) { return n; } else { retur

Java Card中的内存分配

我有一张Java Card智能卡,我想评估可用的EEPROM. 为此,我使用函数JCSystem.getAvailableMemory(JCSystem.MEMORY_TYPE_PERSISTENT).由于此函数的返回值很短,没有分配任何数据,我得到值0x7FFF.为了解决这个问题,我用这种方式创建字节数组:新字节[(短)0x7FFF]来推断可用的持久内存. 如

在Java Card上将byte []转换为short []的快速方法

我想在Java Card上优化SHA-3算法.我需要一个消耗更少内存的快速算法,这样可以轻松地将byte []转换为short [](或short []转换为byte []).我目前的实现如下: private short[] byteToShort(byte[] b,int len) { short len_conv = (short)(len/2); for ( short x = 0; x < le

如何验证Java卡上的证书有效性?

我知道如何使用Java验证证书,但由于java卡API的限制(没有java.io/其他类,只允许使用javacard API Object Throwable),我不知道如何在Java卡上执行此操作. 我没有找到任何javacard兼容的证书库.我错过了什么吗? 我需要验证证书是否由CA签名,以及我需要验证证书的有效性.解决方法:通常