微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Javacard J2A040不支持javacardos的glabalplatform吗?

如何解决Javacard J2A040不支持javacardos的glabalplatform吗?

因为这是我第一次将globalplatform与javacardos(JCIDE)一起使用,所以我注意到在输入的代码中,我无法下载applet:

private void processGetCardStatus(APDU apdu) { 
        byte[] buffer = apdu.getBuffer();           
        short le = apdu.setoutgoing();
        
        if ( le < (byte)1 )
           ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);
        
        apdu.setoutgoingLength( (byte)1);
        buffer[0] = (byte)GPSystem.getCardState();
        
        apdu.sendBytes((short)0,(short)1);
    }

使用PyApduTool下载Cap文件给我一个错误

Download Cap error: Download cap file Failed. Send: 80 E8 00 00 F0 C4 82 04 29 01 00 1B DE CA FF ED 02 02 04 00 01 05 01 02 03 04 05 0B 6D 6F 6E 70 61 63 6B 61 67 65 32 02 00 21 00 1B 00 21 00 0A 00 1E 00 7E 00 14 02 AE 00 0A 00 60 00 00 01 19 09 6E 00 00 00 00 00 00 03 01 00 04 00 1E 03 03 01 07 A0 00 00 00 62 01 01 07 01 06 A0 00 00 01 51 00 00 01 07 A0 00 00 00 62 00 01 03 00 0A 01 06 01 02 03 04 05 00 00 64 06 00 14 00 00 00 80 03 03 00 02 04 04 00 00 00 7D FF FF 00 70 00 85 07 02 AE 00 05 43 18 8C 00 18 18 10 40 04 8D 00 05 87 00 18 8F 00 03 3D 06 10 08 8C 00 04 87 01 19 1E 25 29 04 1E 16 04 41 04 41 31 19 1E 25 29 05 1E 16 05 41 04 41 31 19 1E 25 29 06 19 1E 04 41 AD 00 03 16 06 8D 00 06 3B 18 8F 00 03 3D 06 10 08 8C 00 04 87 01 AD 01 19 1E 04 41 16 06 8B 00 07 18 8B 00,Recv: 6A 80.

但是当我在上面的代码中注释该行时,我可以下载CAP文件

//buffer[0] = (byte)GPSystem.getCardState();

我使用GlobalPlatform API 1.7,我的卡是基于J2A040,Jcop 2.4.1,JC 2.2.2,GP 2.1.1。,T = 1,SCP02

我拥有的代码之上

import org.globalplatform.GPSystem;

问题出在哪里,它来自API版本吗?

感谢您的回复

解决方法

问题已解决。这是因为在JCIDE Javacardos上,我需要添加jar容器,方法是选择包,单击右键,属性,Libray Option,然后单击按钮Add Jar Container,然后选择Global Platform 2.1.1

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。