java - 在JCIDE调试时安装.cap文件时遇到错误 '6985' '6A88'

标签 java debugging applet ide javacard

我正在使用 JCIDE 来调试它的示例小程序 walletdemo。

我遇到了错误 6985

conditions not satisfied'and 6A88'Referenced data or reference data not found

调试时在 JCVM 上安装 .cap 文件期间。但我不知道出了什么问题,也不知道该怎么办。

以下为部分小程序:

private WalletDemoApplet(byte bArray[], short bOffset, byte bLength)
{
   /* cardid=new byte[MAX_NUM_CARDID];
    key  =new byte[MAX_NUM_KEYS];
    for (byte i = 0; i < MAX_NUM_KEYS; i++)
        key[i] =i;
    for (byte i = 0; i < MAX_NUM_CARDID; i++)
        cardid[i] =i;*/

    balance  = 0;
    integral = 0;


    Key = (DESKey)KeyBuilder.buildKey(KeyBuilder.TYPE_DES, KeyBuilder.LENGTH_DES3_2KEY, false);         
    //cipherDES_ECB_NOPAD = Cipher.getInstance(Cipher.ALG_DES_ECB_NOPAD, false);
    cipherDES_ECB_NOPAD = Cipher.getInstance(Cipher.ALG_DES_CBC_ISO9797_M1, false);
    myRandomS = RandomData.getInstance(RandomData.ALG_SECURE_RANDOM);

    pin = new OwnerPIN(PIN_TRY_LIMIT,   MAX_PIN_SIZE);
    cardID = new byte[10];
    output = new byte[16];
    //input = new byte[16];
    bRand = false;
    ExternalMark=false;
    verifyMark=false;
    byte iLen = bArray[bOffset]; // aid length
    bOffset = (short) (bOffset+iLen+1);
    byte cLen = bArray[bOffset]; // info length
    bOffset = (short) (bOffset+cLen+1);
    byte aLen = bArray[bOffset]; // applet data length
    bOffset = (short)(bOffset+1);        
    byte pinLen = bArray[bOffset];


    // The installation parameters contain the PIN
    // initialization value
    pin.update(bArray, (short)(bOffset+1), pinLen);

    // Initialize key
    bOffset = (short)(bOffset+pinLen+1);
    byte keyLen = bArray[bOffset];
    Key.setKey(bArray, (short)(bOffset+1));

    // Initialize cardID
    bOffset = (short)(bOffset+keyLen+1);
    byte idLen = bArray[bOffset];
    Util.arrayCopy(bArray, (short)(bOffset+1), cardID, (short)0, (short)idLen); 

    register(); 
}
public static void install(byte[] bArray, short bOffset, byte bLength) {
    // GP-compliant JavaCard applet registration
    new WalletDemoApplet(bArray, bOffset, bLength);

}

最佳答案

如果不是算法问题,可能是因为安装时需要安装参数。您可以尝试设置安装参数,例如“08112233445566778810404142434445464748494A4B4C4D4E4F080010203040506070”。

希望能帮到你。

关于java - 在JCIDE调试时安装.cap文件时遇到错误 '6985' '6A88',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29426959/

相关文章:

java - 对具体方法使用具体的 viewResolver

java - 处理大量数据

java - Tomcat 找不到 JSP 页面中编写的文件

java - Eclipse:调试每个循环时的迭代计数

java - Applet 弹出窗口在对话框外有一个悬停的警告图标

java - 使用 JDBC 读取和更新每一行

firefox - 如何调试火狐浏览器插件?

c++ - 如何将 strip 与 split-dwarf 结合使用?

java - 禁用 Java 警告外观并影响 Java Web Start 应用程序

java - 允许 Java Applet 访问网络服务器上的图像