Page 1 of 5
Including new Packages
Posted: Fri Sep 11, 2015 7:43 pm
by JorgeGomes
Hello All,
I'm using the
JCIDE tool to create a Mobile SIM card applet. I've noticed the tool STK doesn't has this packages:
import sim.toolkit.*;
import sim.access.*;
When I build the Package, the
JCIDE reports the errors:
C:\WORKSP~1\SOSREC~1\src\SOSREC~1\appsosrecoveryv2.java:31: error: package sim.toolkit does not exist
import sim.toolkit.*;
^
C:\WORKSP~1\SOSREC~1\src\SOSREC~1\appsosrecoveryv2.java:32: error: package sim.access does not exist
import sim.access.*;
I need help to know how to include this packages to create Mobile SIM cards related applets.
Thanks
Regards
Re: Including new Packages
Posted: Fri Sep 11, 2015 11:33 pm
by UNKNwYSHSA
I have a test to create an javacard applet use
JCIDE.
1 (Optional step), unzip the jar to %JCKIT_INSTALL_DIR%\SDK\Tools\JCIDE\apis\jc222, this is for the code auto-complete;
2 JCIDE main menu -> Build -> Property -> Local
JCKit configurations:
A Add sim.jar to the -classpath item in "java.exe option";
B Add stk export file dir path to -exportpath item in "
JCKit Option";
3 I found the hello world code in the ToolkitInterface.java; Copy the code as my helloStk code; Code as following:
Code: Select all
package helloStk;
import javacard.framework.*;
import sim.toolkit.*;
//
// The HelloWorld class is a simple Toolkit applet, which may be used as an
// example to show how such an applet will be installed and registered and
// how it will be triggered.
//
public class helloStk extends Applet implements ToolkitInterface,ToolkitConstants {
// data fields
private static final byte CMD_QUALIFIER = (byte)0x80;
private byte[] menuEntry = {'S','e','r','v','i','c','e','1'};
private byte[] textBuf = {'H','e','l','l','o',' ','w','o','r','l','d',' ','!'};
private ToolkitRegistry reg;
//
// Constructor of applet
//
public helloStk() {
// get a Registry object...
// ...and initialize it according to the applet characteristics
reg.initMenuEntry(menuEntry, (short)0, (short)menuEntry.length, PRO_CMD_DISPLAY_TEXT, false, (byte) 0, (short) 0);
}
//
// Install method
// *param bArray the array containing installation parameters
// *param bOffset the starting offset in bArray
// *param bLength the length in bytes of the parameter data in bArray
//
public static void install(byte bArray[], short bOffset, byte bLength) throws ISOException {
// create and register applet
helloStk HelloWorldApplet = new helloStk();
HelloWorldApplet.register();
}
//
// Process toolkit events
// *param event the type of event to be processed
// *exception ToolkitException
//
public void processToolkit(byte event) throws ToolkitException {
// get the ProactiveHandler system instance
ProactiveHandler proHdlr = ProactiveHandler.getTheHandler();
if (event == EVENT_MENU_SELECTION) {
// prepare a Display Text command
proHdlr.init((byte) PRO_CMD_DISPLAY_TEXT, (byte)CMD_QUALIFIER, (byte)0x02);
proHdlr.appendTLV((byte)(TAG_TEXT_STRING | TAG_SET_CR), textBuf,
(short)0, (short)textBuf.length);
proHdlr.send();
}
}
@Override
public void process(APDU apdu) throws ISOException {
// TODO Auto-generated method stub
}
}
4 Build the project, that's OK.
You can have a test of this applet on your card, it's run normal or not? Wait your message.
Re: Including new Packages
Posted: Sat Sep 12, 2015 10:33 am
by JorgeGomes
Hi
Thanks for your answer. Although, I don't have the sim.jar package in my folder C:\JavaCardKit\JDK\lib, neither into C:\JCDK222\lib nor C:\JC_CLASSIC_HOME\lib.
I noticed that you get it from a open_source\javacard\sim-tools library. Could you give me the web link to download it?
Thanks
Re: Including new Packages
Posted: Sun Sep 13, 2015 10:01 am
by JorgeGomes
Hello,
I've found the package from
https://github.com/Shadytel/sim-tools repository. I downloaded it and configured the
JCIDE. Further your described information, I've to add C:\open_source\javacard\sim-tools\javacard\lib\sim.jar into the menu "Local Javac Option" classpath, as depicted in the follow picture:
http://goo.gl/3UGk7aThe build worked properly without errors. But, when I debug it there is an error when is loading the package onto the card via the Card Manager.
The Install Command for Load (80 E6 02 00 12 ...) worked properly. But the Load command Pack (80 E8 00 00 ...) failed with the SW 6A 88 (Referenced data or reference data not found):
http://goo.gl/3qck3BLoad Command Pack:
>> 80 E8 00 00 FF C4 82 01 C1 01 00 18 DE CA FF ED 02 02 04 00 01 05 11 22 33 44 55 08 68 65 6C 6C 6F 53 74 6B 02 00 21 00 18 00 21 00 0A 00 28 00 32 00 1A 00 D1 00 0A 00 14 00 00 00 92 03 19 00 00 00 00 00 00 03 01 00 04 00 28 03 03 01 07 A0 00 00 00 62 01 01 06 02 10 A0 00 00 00 09 00 03 FF FF FF FF 89 10 71 00 02 00 01 07 A0 00 00 00 62 00 01 03 00 0A 01 06 11 22 33 44 55 66 00 99 06 00 1A 00 00 43 80 03 03 00 03 07 02 00 00 00 CE 00 A8 80 02 00 81 01 01 08 81 00 00 07 00 D1 00 08 10 18 8C 00 03 18 10 08 90 0B 3D 03 10 53 38 3D 04 10 65 38 3D 05 10 72 38 3D 06 10 76 38 3D 07 10 69 38 3D 08 10 63 38 3D 10 06 10 65 38 3D 10 07 10 31 38 87 00 18 10 0D 90 0B 3D 03 10 48 38 3D 04 10 65 38 3D 05 10 6C 38 3D 06 10 6C 38 3D 07 10 6F 38 3D 08 10 20 38 3D 10 06 10 77 38 3D 10 07 01
Do you know what could be the problem? I really appreciate your golden support.
Thanks
Re: Including new Packages
Posted: Tue Sep 15, 2015 5:42 am
by UNKNwYSHSA
I cannot saw the image you sent.
Re: Including new Packages
Posted: Tue Sep 15, 2015 6:01 am
by UNKNwYSHSA
What's the type of your card? Telecom card?
Re: Including new Packages
Posted: Wed Sep 16, 2015 4:51 pm
by JorgeGomes
Hello UNKNwYSHSA,
I have change the images by its link. Try to see them.
My intentions is to use telecomm cards. But, the problems I described is when I run the build option in the
JCIDE tool. I couldn't overcome this step. I followed instructions but this step failed. Have you get success?
Thanks
Re: Including new Packages
Posted: Sat Sep 19, 2015 12:53 pm
by UNKNwYSHSA
You met problem on the load step when debugging?
I think the reason is the
JCIDE debugger can't support SIM card functions debug. You can try the CAP on your real SIM card, waiting for your test result. And sorry for my later reply,
Re: Including new Packages
Posted: Sat Sep 19, 2015 1:11 pm
by UNKNwYSHSA
I don not has one SIM card, so i can't do the test.
I just hope my method can help you to solve this problem.
So waiting you reply.
Re: Including new Packages
Posted: Sun Sep 20, 2015 10:20 am
by JorgeGomes
Hello
I've tried to download the generated cap without success. It was expected cause I didn't configured nothing related to the card keys (ENC, KEK and MAC), and the reported error from
pyApdutool was:
~Connect successful.
Select CardManager begin...
Select CardManager successful.
Disconnect successful.
Connect successful.
Download Cap begin...
Download Cap error: Check Card Cryptogram failed.
Could you give a tip how and where I can configure the card keys? These cards that I've using have Secure Domain AID A0 00 00 00 03 00 00 00, the same that the
JCIDE is using by default. If I need change it, how I can do it?
Thanks
Regards