Install command syntax issue in jcop tool

Hello there, I want to implement pin concept in my applet, as i read about this ,i think i need to Bind the USER_PIN over install command , till now i am using install command like-
install -i a0010203040506070809  -q C9#() a00102030405060708 a0010203040506070809but to pass pin number , i need to update this install command with new one.
Can anybody suggest me the updated install command , with help of that i can pass pin-0102030405 to the install command and use it by below technique
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 lengthmy package id is -a00102030405060708
my applet id is- a0010203040506070809
regards:-
daniel

i think install command invoke the applet in the memory or make a instance in memory which will be active in life time. right?
so i want to pass a password like- 0102030405 with help of install command, it will be the default password , or in future if i will be require then i can change this with new one. As i read, after passing this in install command, i need to use below code to get 0102030405.
following code:-
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 lengthso tell me please what would be the install command?
--- wallet code is like--
public static void install(byte[] bArray, short bOffset, byte bLength){
    // create a Wallet applet instance
    new Wallet(bArray, bOffset, bLength);
  } // end of install method
// constucor code is:-
private Wallet (byte[] bArray,short bOffset,byte bLength){
    // It is good programming practice to allocate
    // all the memory that an applet needs during
    // its lifetime inside the constructor
    pin = new OwnerPIN(PIN_TRY_LIMIT,   MAX_PIN_SIZE);
    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
    // The installation parameters contain the PIN
    // initialization value
    pin.update(bArray, (short)(bOffset+1), aLen);
    register();
  } // end of the constructor
// i want to implement this concept......................Edited by: daniel on Feb 28, 2012 7:17 AM

Similar Messages

  • JCOP tools plugin is unable to upload the applet

    Greetings.
    I have installed Eclipse 3.3 and JCOP tools (activated). We got ready Java Card applet and my task is to upload it into the Java Card. Firstly I want test it on a simulator.
    The applet compiled successfully and the .CAP file is created. But when upload -d "blah blah blah .cap" command is executed either by me or by jcshell, it returns immediately and I don't actually see any data transmitted to the card (in this case simulator). After the card-info command is executed I see this:
    Card Manager AID : A000000003000000
    Card Manager state : OP_READY
    Load File : LOADED (--------) A0000000035350 (Security Domain)
    Module : A000000003535041
    Load File : LOADED (--------) 01020304054F5449
    Module : 0102030405
    The last file has AID of my applet. But I know it is not there (on the card). When I run install command it does not return. I get nothing. JCOP tools seems to be busy and working but no response... neither error code nor exception.
    I'm stuck with this issue three days already. Could anybody help me?
    Thank you in advance.
    Best regards, Greg
    Software engineer at OTI
    Edited by: neutrino on Oct 31, 2007 6:01 AM

    Hi.
    It is advised to install Eclipse 3.1.2, jdk 1.4.2 for JCOP tools plug-in 3.1.1.b/3.1.2.
    Also, regarding the usage of JCOP shell, write:
    /mode trace=on
    before uploading of your cap file to trace all the APDUs.
    Best regards,
    Eve
    Edited by: Ieva on Oct 31, 2007 6:38 AM

  • Using JCOP tools under Linux

    Hello.
    I looked through the older web sites of IBM regarding the usage of JCOP tools under Linux.
    I am interested in following questions:
    1. Is there any separate distributon version of JCOP tools for Linux?
    2. Can sample JCOP tools 3.1.2 plugin (for Windows) be used under Linux. What has to be modified? Also what additional tools have to be installed an used for communication with real cards through PC/SC readers.
    3. Is JCOP simulation option available under Linux?
    I'll appreciate any help.
    Best regards,
    newbie

    newbie2007 wrote:Hello.
    I looked through the older web sites of IBM regarding the usage of JCOP tools under Linux.
    I am interested in following questions:
    1. Is there any separate distributon version of JCOP tools for Linux?
    2. Can sample JCOP tools 3.1.2 plugin (for Windows) be used under Linux. What has to be modified? Also what additional tools have to be installed an used for communication with real cards through PC/SC readers.
    3. Is JCOP simulation option available under Linux?
    I'll appreciate any help.
    Best regards,
    newbieEverything should work, except for the target pack and the non-existent Linux Pegoda driver.1. The is no seperate Linux distribution. You just need a Linux distribution for Eclipse.JCOP Tools plugin should work under Linux, except for the target pack and the non-existent Pegoda driver for Linux.1. There is no seperate Linux distribution. You just need the Linux distribution for Eclipse.
    2. Prior to JCOP Tools 3.1.2 the last time something was mentioned about Linux was in the release notes of 3.1.1b . In version 3.2.0 IBM added a linux_support page to the JCOP Tools user guide (see release notes and linux_support page below).
    3. There shouldn't be any problems with the generic simulation. The target pack runs only with Windows though.
    h1. Release Notes
    h2. Version
    JCOP Tools 3.1.1.b (Bärlach)
    h2. What's new?
    h3. 3.1.1.b
    <ul><li>New simulation (fixed static obj/arr bug, fixed instance field token bug).</li>
    <li>Applet privileges can now be specified in the launch configuration dialog.</li>
    <li>The "exportmap" feature is now available.</li>
    <li>The JCOP Performance Test Demo ("JCOP Factor") is now included.</li>
    <li>Minor bug fixes.</li>
    </ul>
    h2. Known problems
    <ul><li>Simulations do not run (Linux, MacOS X)
         The Eclipse update manager does not set the execute permission bits for the simulations. You need to manually <code>chmod 755</code> those files in ECLIPSE/plugins/com.ibm.bluez.jcop.eclipse_3.1.1.x/simuls/
    </li>
    <li>PC/SC Support (Linux)
         JCOP Tools only works with pcsc-lite 1.2.0.
    </li>
    </ul>
    h2. Frequently Asked Questions
    Please refer to the online FAQ at http://www.zurich.ibm.com/jcop/download/eclipse/faq/.
    h2. Bug Reports
    Please send bug reports to [email protected]. Make sure you include the following:
    <ul><li>Problem description</li>
    <li>Steps to reproduce</li>
    <li>Eclipse version and build number (Help > About)</li>
    <li>JCOP Tools version (Help > About; click on BlueZ icon)</li>
    </ul>
    h2. Using JCOP Tools with Linux (>= 3.2.0)
    h3. ___
    Overview
    The current JCOP Tools release now also offer a version for the popular Linux
    operating system. Both the Windows and Linux verson provide more or less the same
    functionality, and JCOP application development can thus fully succeed on Linux systems.
    Nevertheless, installation of the JCOP Tools differ between Windows and Linux
    where the Linux version does not provide a simple installer as in case of Windows.
    Additionally, the Linux version expects a properly setup Muscle PCSC installation
    as soon as you want to use them together with physical, real cards. As Muscle
    PCSC is still not shipped with most Linux distributions, you must download and
    install them separately from the JCOP Tools.
    h3. ___     
    Contents
    h3. ___
    Software Requirements
    Linux distribution
    The JCOP Tools simulation has been developed on a Fedora Core 6 system, but should also work in case of
    many other recent Linux distributions.
    Java Development Kit
    The JCOP Tools have been developed and tested with the Sun JDK 1.4.2_13-b06
    for Linux. Your success with other Development Kits may vary as there are
    partly subtle differences across the different devlopment kits.
    PCSC
    The JCOP Tools use PCSC to talk with real cards on Linux. Most distributions
    do not ship with Linux PCSC by default (Fedora Core 6 does), you must thus download it fromhttp://www.linuxnet.com
    and install it by yourself. If you are used to software installation under Linux,
    and are not afraid of compiling and installing software packages, this should
    not be a hard problem. You have to download both the base PCSC package
    (including PCSC daemon and client libraries) and separately the driver
    for the reader you want to use. The PCSC package contains a test program
    which should tell you whether your installation is set up correctly and
    communicating with a card works. The JCOP Tools have been reported to
    work together with Muscle PCSC version 1.3.1-7.
    JPCSC
    The JCOP Tools are shipped with JPCSC which you can also download athttp://www.linuxnet.com. JPCSC
    is a JNI library which offers Java applications the access to PC/SC functions
    by mapping their requests to an underlying native PC/SC implementation. The JCOP
    Tools - mostly written in Java - thus depend on JPCSC to communicate with real cards
    on Linux. JPCSC depends on a properly installed and setup PC/SC environment.
    Especially, the JAVA_LIBRARY_PATH should list the directories where the
    PC/SC client libraries and the native JPCSC library libjpcsc.so ( downloadable as binary from
    Windows Binary Download Here )
    are installed, the CLASSPATH variable should list th___
    Miscellaneous
    What should work
    As soon as you setup your system correctly, there should only be minor differences
    between using JCOP Tools on Windows or on Linux. Emulating a real JCOP,
    debugging, shell, cap-file conersion should all be possible as in case of Windows.
    What is missing
    No drivers or tools are currently available for using JCOP30's in contactless
    mode. If you need such support, please contact directly NXP
    at for further assistance.
    Copyright 2001,2007 IBM Corp. All rights reserved.
    Edited by: lexdabear on Sep 28, 2007 4:13 PM (I hate the new edit)

  • Java card cap file install error in jcop tools

    When i try to run java card applet in real java card it gives this error.i used jcop tools and java version 1.5  and eclipse 3.2.when i run the applet in simulater it works fine.i saw some document it says allocate memory for the installation process.i don't know how to do that.
    /term "winscard:4|SCM Microsystems Inc. SCL010 Contactless Reader 0"
    --Opening terminal
    >  /card -a a000000003000000 -c com.ibm.jc.CardManager
    resetCard with timeout: 0 (ms)
    --Waiting for card...
    ATR=3B 8A 80 01 4A 43 4F 50 33 31 56 32 33 32 7A       ;...JCOP31V232z
    ATR: T=0, T=1, Hist="JCOP31V232"
    => 00 A4 04 00 08 A0 00 00 00 03 00 00 00 00          ..............
    (23807 usec)
    <= 6F 65 84 08 A0 00 00 00 03 00 00 00 A5 59 9F 65    oe...........Y.e
        01 FF 9F 6E 06 47 91 73 51 2E 00 73 4A 06 07 2A    ...n.G.sQ..sJ..*
        86 48 86 FC 6B 01 60 0C 06 0A 2A 86 48 86 FC 6B    .H..k.`...*.H..k
        02 02 01 01 63 09 06 07 2A 86 48 86 FC 6B 03 64    ....c...*.H..k.d
        0B 06 09 2A 86 48 86 FC 6B 04 02 15 65 0B 06 09    ...*.H..k...e...
        2B 85 10 86 48 64 02 01 03 66 0C 06 0A 2B 06 01    +...Hd...f...+..
        04 01 2A 02 6E 01 02 90 00                         ..*.n....
    Status: No Error
    cm>  set-key 255/1/DES-ECB/404142434445464748494a4b4c4d4e4f 255/2/DES-ECB/404142434445464748494a4b4c4d4e4f 255/3/DES-ECB/404142434445464748494a4b4c4d4e4f
    cm>  init-update 255
    => 80 50 00 00 08 AC B1 90 01 BF 2D 24 A0 00          .P........-$..
    (49906 usec)
    <= 00 00 91 18 01 39 93 95 05 59 FF 02 00 2C BE 39    .....9...Y...,.9
        5E A5 07 55 87 B8 C3 A8 A6 93 66 2B 90 00          ^..U......f+..
    Status: No Error
    cm>  ext-auth plain
    => 84 82 00 00 10 0C AE 50 3E C8 7E 1D 92 29 E2 59    .......P>.~..).Y
        08 D9 DA 02 16                                     .....
    (57276 usec)
    <= 90 00                                              ..
    Status: No Error
    cm>  delete 060504030201
    => 80 E4 00 00 08 4F 06 06 05 04 03 02 01 00          .....O........
    (40041 usec)
    <= 6A 88                                              j.
    Status: Reference data not found
    jcshell: Error code: 6a88 (Reference data not found)
    jcshell: Wrong response APDU: 6A88
    Ignoring expected error
    cm>  delete 010203040506
    => 80 E4 00 00 08 4F 06 01 02 03 04 05 06 00          .....O........
    (17392 usec)
    <= 6A 88                                              j.
    Status: Reference data not found
    jcshell: Error code: 6a88 (Reference data not found)
    jcshell: Wrong response APDU: 6A88
    Ignoring expected error
    cm>  upload -d -b 250 "Cap File location"
    => 80 E6 02 00 13 06 01 02 03 04 05 06 08 A0 00 00    ................
        00 03 00 00 00 00 00 00 00                         .........
    (32303 usec)
    <= 00 90 00                                           ...
    Status: No Error
    => 80 E8 00 00 FA C4 81 F2 01 00 23 DE CA FF ED 02    ..........#.....
        02 04 00 01 06 01 02 03 04 05 06 12 68 6D 73 2F    ............hms/
        6A 61 76 61 63 61 72 64 2F 68 65 6C 6C 6F 02 00    javacard/hello..
        21 00 23 00 21 00 0A 00 0B 00 1E 00 0E 00 3D 00    !.#.!.........=.
        0A 00 0B 00 00 00 4D 01 BE 00 00 00 00 00 00 01    ......M.........
        01 00 04 00 0B 01 02 01 07 A0 00 00 00 62 01 01    .............b..
        03 00 0A 01 06 06 05 04 03 02 01 00 08 06 00 0E    ................
        00 00 00 80 03 00 FF 00 07 01 00 00 00 1C 07 00    ................
        3D 00 01 10 18 8C 00 05 7A 05 30 8F 00 00 3D 8C    =.......z.0...=.
        00 01 18 1D 04 41 18 1D 25 8B 00 02 7A 02 21 18    .....A..%...z.!.
        8B 00 03 60 03 7A 19 8B 00 04 2D 1A 04 25 73 00    ...`.z....-..%s.
        09 00 00 00 00 00 0F 11 6D 00 8D 00 06 7A 08 00    ........m....z..
        0A 00 00 00 00 00 00 00 00 00 00 05 00 1E 00 07    ................
        01 00 02 00 06 00 00 01 03 80 03 02 03 80 03 03    ................
        03 80 0A 01 06 80 03 00 06 80 07 01 09 00 0B 00    ................
        00 00 07 05 06 04 0A 07 07 13 0B 00 4D 01 00 00    ............M...
    (764519 usec)
    <= 6A 80                                              j.
    Status: Wrong data
    jcshell: Error code: 6a80 (Wrong data)
    jcshell: Wrong response APDU: 6A80
    Unexpected error; aborting execution

    Thanks ReNa
    i am using nxp jcop 31 contact-less card.and it will support for java card 2.2.1 and global-platform card specification 2.1.1 .so i am using nxp jcop training 2007 tools and it has java card 2.2.1 and global-platform card specification 2.1.1.Inside my project there are three jar files these are jc221.jar and gp211.jar and bio10.jar
    i will appreciate your help
    Thanks

  • JCOP Tools Problem Error code: 6985 (Conditions of use not satisfied)

    I have a problem with the JCOP tools. I am developing a very simple applet which does nothing at all. It is a "hello world" type applet so that I can get something working. It compiles ok, however as soon as I try to run it under the emulator I get an error.
    Status: Conditions of use not satisfied jcshell: Error code: 6985 (Conditions of use not satisfied) jcshell: Wrong response APDU: 6985
    This always happens when the jcshell issues the install command.
    The install command is:
    install -i 1234567890 -t -l -d -m -p -s -b -e -q C9#(1234567890) 1234567890 1234567890
    I must be doing something very basic incorrectly. I have tried searching the forums and internet and I haven't found anything. Any help would be appreciated.
    The code is this:
    package pt.microfil.test;
    import javacard.framework.*;
    import javacard.framework.ISO7816;
    import javacard.framework.ISOException;
    import javacard.framework.APDU;
    public class testcard extends Applet {
         final static byte CLASS = (byte) 0x80; // Class of the APDU commands
         final static byte INS_READ = (byte) 0x02; // instruction for the READ APDU command
         // this is the text string which will send back from the ICC to the IFD
         final static byte[] text = {(byte) 'e', (byte) 't', (byte) 's', (byte) ' ',
         (byte) 'g', (byte) 'e', (byte) 'h', (byte) 't', (byte) 's', (byte) ' ',
         (byte) 'd', (byte) 'e', (byte) 's', (byte) ' ',
         (byte) 'G', (byte) 'l', (byte) 'u', (byte) 'm', (byte) 'p'};
         public static void install(byte[] bArray, short bOffset, byte bLength) {
              // GP-compliant JavaCard applet registration
              //new testcard().register(bArray, (short) (bOffset + 1), bArray[bOffset]);
              new testcard().register();
         public static void install() {
              new testcard().register();
         public void process(APDU apdu) {
              byte[] cmd_apdu = apdu.getBuffer(); // the cmd_apdu variable is used because of performance reasons
              if (cmd_apdu[ISO7816.OFFSET_CLA] == CLASS) {  // it is the rigth class
              switch(cmd_apdu[ISO7816.OFFSET_INS]) {      // check the instruction byte
              case INS_READ: // it is a READ instruction
              // check if P1=P2=0
              if ((cmd_apdu[ISO7816.OFFSET_P1] != 0) || (cmd_apdu[ISO7816.OFFSET_P2] != 0)) {
              ISOException.throwIt(ISO7816.SW_WRONG_P1P2);
              } // if
              // check if P3=length of the text field
              short le = (short)(cmd_apdu[ISO7816.OFFSET_LC] & 0x00FF); // calculate Le (expected length)
              short len_text = (short)text.length; // the len_text variable is used because of performance reasons
              if (le != len_text) {
              ISOException.throwIt((short)(ISO7816.SW_CORRECT_LENGTH_00 + len_text)); // give the expected length back to the IFD
              } // if
              apdu.setOutgoing(); // set transmission to outgoing data
              apdu.setOutgoingLength((short)len_text); // set the number of bytes to send to the IFD
              apdu.sendBytesLong(text, (short)0, (short)len_text);
              break;
              default : // the instruction in the command apdu is not supported
              ISOException.throwIt(ISO7816.SW_INS_NOT_SUPPORTED);
              } // switch
              } // if
              else {         // the class in the command apdu is not supported
              ISOException.throwIt(ISO7816.SW_CLA_NOT_SUPPORTED);
    }

    i also found this error and i change the package name and applet id.it is not changing.now i got same error.
    cm>  install -i 6d796170702e617070  -q C9#() 6d797061636b616765 6d796170702e617070
    jcshell: Error code: 6985 (Conditions of use not satisfied)
    jcshell: Wrong response APDU: 6985
    Unexpected error; aborting execution
    how can i solve the problem??

  • JCOP Tools don't detect Omnikey Cardman 3121 reader in activation

    Hello,
    I am trying to activate the JCOP Tools in my MacOS X, but my reader isn't detected by Eclipse / JCOP Tools.
    I have installed pcsc lite 1.4.4, and used pcsctest to check if the reader is working, and it seems to be ok:
    xxx:~ tuxed$ pcsctest
    MUSCLE PC/SC Lite Test Program
    Testing SCardEstablishContext    : Command successful.
    Testing SCardGetStatusChange
    Please insert a working reader   : Command successful.
    Testing SCardListReaders         : Command successful.
    Reader 01: OMNIKEY CardMan 3x21 0 0
    Enter the reader number          : 01
    Waiting for card insertion        
                                     : Command successful.
    Testing SCardConnect             : Command successful.
    Testing SCardStatus              : Command successful.
    Current Reader Name              : OMNIKEY CardMan 3x21 0 0
    Current Reader State             : 34
    Current Reader Protocol          : 0
    Current Reader ATR Size          : b
    Current Reader ATR Value         : 3B 67 00 00 29 20 00 6F 78 90 00
    Testing SCardDisconnect          : Command successful.
    Testing SCardReleaseContext      : Command successful.
    PC/SC Test Completed Successfully !Can anyone give me any clue to solve the problem?
    Thanks in advance :)

    I don't know about MacOS, but you can check the info about Linux:
    http://forum.java.sun.com/thread.jspa?forumID=23&threadID=5221167
    PC/SC Support (Linux)
    JCOP Tools only works with pcsc-lite 1.2.0.

  • Unknown Error with JCop Tools 3.1.2

    Hello All ,
    I am using Eclipse program to create a javacard applet...
    But there is a unknown Problem appears to me ..I don't know how to solve it.
    First of All ,
    My OS is Windows 7 x64 bit
    My java version is : 1.6
    My Eclipse version is : 3.2
    My Smart Card Reader is : Omnikey ,CardMan 5321
    So First of All , i added the plugin "JCOP tools 3.1.2" to the Eclipse program , and i activated the tools successfully.
    and i created a new javacard project by using Basic Javacard template
    Now when i want to Run ,
    SO i when i set the Run options to Card Reader , and set the card reader to "OmniKey"
    like this image:
    [Image 1|http://img85.imageshack.us/img85/1158/runx.jpg]
    -By the way , i don't understand where "Philps Pegoda Reader" came from?? -
    Then when i press Run , the Eclipse program will be closed and this error appears:
    [Error Image|http://img135.imageshack.us/img135/2926/errorevs.jpg]
    I am not sure what is the problem ... so please some one help me here...
    Thank you for your time
    Edited by: ahmed30 on May 25, 2010 8:44 AM

    Hi,
    The pegoda reader is the default reader that has hard coded support (like JCOP engineering sample cards). I would say this is because NXP was founded by Phillips.
    I cannot help you with the second issue. I have only used JCOP 3.1.2 for a short time (quite a while ago now) and reverted to 3.1.1.b as 3.1.2 did not add any new features and from memory did not work properly on my WIndows XP machine (32-bit). I can confirm that 3.1.1 works on XP 64-bit under a 32-bit JVM.
    Is the issue when running against a card or the simulator or both?
    You could try running the jcop.exe executable in the plugins\com.ibm.bluez.jcop.eclipse_<version>\simuls\nJCOP\win32\x86 directory from a command prompt to see if it is an issue with Eclipse/Java or the JCOP simulator.
    Cheers,
    Shane

  • JCOP Tools 3.1.1b: Debugger does not break, what am I doing wrong?

    Hey everybody
    I'm desperately trying to debug applets using the JCOP Tools 3.1.1b but when I start the applet in debug mode, the debugger does not break on the breakpoints I set. You might know the little ticks that appear on top of each breakpoint bullet in the editor. The strange thing is that these ticks do not even appear.
    I tried various versions of eclipse (3.1.0, 3.1.1, 3.1.2) and WinXP as wells as Linux. Does anybody else have the same problem or even a solution?
    Thanks
    Jonas

    hello,
    here are few steps you should check:
    - when you start the debug session JCOPShell will load the applet into the simulator. You have to first make sure the applet is loaded with debug info. JCOPShell should do that by default, but check on the trace that "upload" command is called with the -d option:
    upload -d "G:\glut-wks\JC\bin\helloworld\helloworld.cap" - then JCOPShell will install the applet with the "install" command. At that stage only the install function (and of course the constructor of the Applet) will be called. So breakpoints located in other part of the code won't break. Check the trace because if install is not called no applet code will be running.
    - after installation, applet must be first selected to get any of its code running. Use "/select |appletname". If you have a breakpoint at the beginning of the "process" method, it should break. if the Applet is not selected all future APDU will go to the cardmanager, and applet code won't be running.
    hope this help :)
    E.

  • JCOP Tools 3.1.1.b and other Cards

    Hello
    At the moment I'am working at my degree dissertation. A little part of this dissertation is to write a cardlet on a javacard.
    I have got the JCOP Tools 3.1.1.b for Eclipse, but JavaCards of other      producers: Safenet Model 330J, GemSafeXpresso 32 k and cyberflex Access e-gate 32K(Schlumberger / Axalto).
    At the moment i don't know how to bring my java card applet on the card.
    In the JCOP Tools i can only choose the preconfigured Type "JCOP Engeneering Sample". Is there a way to become more preconfigured card types? Or anyone knows the custom type settings for any of the cards?

    I am on a similiar assignment in my office and not an expert but after a couple of weeks of research i have found a few things.
    1. Its better to get JCOP20,JCOP30 or JCOP41 cards for compatibility reason and avoiding over work
    2. Buy a PC/SC compliant Smart Card Reader for compatibility reasons.
    i have already ordered these.
    Secondly check this link for loader application, code is fine but cap file version was the issue.
    http://forum.java.sun.com/thread.jspa?forumID=23&threadID=702955
    i havnot got the real cards but i believe that JCOP tools will be able to uplaod the application on it without the need of above code. As running simulations we have option of Install in the ide.
    Any ways some expert guy on the forum will answer you shortly -:)
    Bilal

  • JCOP Tools init-update problem

    Hello, everybody!!!
    I wanna simulate CardManager authentication behaviour and have some problems... Below i show you excerpts from my applet and the process of sending INITIALIZE UPDATE command to it using JCOP Shell.
    If somebody has an idea to deal with this issue, please help.
    Here's the definition of key i've used:
    byte[] secKey = new byte[] {
          (byte)0x40, (byte)0x41, (byte)0x42, (byte)0x43,
          (byte)0x44, (byte)0x45, (byte)0x46, (byte)0x47
    };This is done inside the constructor (secKey declared as a class field).
    Next, i've added method to process INITIALIZE UPDATE command:
       private boolean processInitUpdate(APDU apdu) {
          byte[] buffer = apdu.getBuffer();
          if((buffer[ISO7816.OFFSET_CLA] != 0x80) &&
                (buffer[ISO7816.OFFSET_INS] != 0x50))
             return false;
          byte challengeLen = buffer[ISO7816.OFFSET_LC];
          byte dataRead = (byte)apdu.setIncomingAndReceive();
          if((challengeLen != 0x08) || (dataRead != 0x08)) {
             ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);
          // Encrypted cryptogram buffer
          byte[] cryptogram = new byte[8];
          DESKey des_key = (DESKey)KeyBuilder.buildKey(
                KeyBuilder.TYPE_DES, KeyBuilder.LENGTH_DES, false);
          des_key.setKey(secKey, (short)0);
          Cipher cipher = Cipher.getInstance(Cipher.ALG_DES_ECB_NOPAD, false);
          cipher.init(des_key, Cipher.MODE_ENCRYPT);
          // Encrypt the incoming challenge
          cipher.doFinal(buffer, ISO7816.OFFSET_CDATA, (byte)8, cryptogram, (byte)0);
          // Output data
          byte[] keyDeriviation = new byte[] {
                (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
                (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00
          byte[] keyInfo = new byte[] {
                (byte)0xff, (byte)0x02
          // TODO generate random
          byte[] challenge = new byte[] {
                (byte)0x11, (byte)0x22, (byte)0x33, (byte)0x44,
                (byte)0x55, (byte)0x66, (byte)0x77, (byte)0x88
          // Calculate total length of the data to be sent
          short totalLen = (short)(keyDeriviation.length + keyInfo.length +
                                   cryptogram.length + challenge.length);
          apdu.setOutgoing();
          apdu.setOutgoingLength(totalLen);
          apdu.sendBytesLong(keyDeriviation, (short)0, (short)keyDeriviation.length);
          apdu.sendBytesLong(keyInfo, (short)0, (short)keyInfo.length);
          apdu.sendBytesLong(challenge, (short)0, (short)challenge.length);
          apdu.sendBytesLong(cryptogram, (short)0, (short)cryptogram.length);
          return true;
       }This method returns true if command has been processed successfully.
    I've used GlobalPlatform specification to properly parse command APDU and to generate response APDU.
    Then i use JCOP Tools for Eclipse shell. I select above applet and define keys as follows:
    set-key 255/1/DES-ECB/4041424344454647
    set-key 255/2/DES-ECB/4041424344454647
    set-key 255/3/DES-ECB/4041424344454647Then i use init-update command:
    init-update 255Shell generates the following APDU command sequence:
    80 50 00 00 08 C3 17 13 59 C6 0F ED ED 00We can see the challenge, generated by simulator: C3 17 13 59 C6 0F ED ED.
    I got the response:
    00 00 00 00 00 00 00 00 00 00 FF 02 11 22 33 44 55 66 77 88 4D 4C E8 7E 6A 04 B1 43 90 00It seems everything all right, but shell shows an error:
    Status: No Error
    jcshell: Error code: -5 (Authentication failed)
    jcshell: Wrong response APDU: 00000000000000000000FF0211223344556677884D4CE87E6A04B1439000I think I set keys inside the shell incorrectly. I use triple-DES, but code uses simple DES. However, i use equal keysets for triple-DES so it's the same as DES.
    What's wrong?
    Thank you.

    Hello everybody, again!
    At last, I solved my problem. The issue was I incorrectly generated card cryptogram data. Cryptogram must be constructed using full triple DES algorithm. After that JCOP shell processes init-update 255 successfully.
    Below I'll present working code for processing INITIALIZE UPDATE command in JCOP tools, maybe this will be helpful for somebody.
       private boolean processInitUpdate(APDU apdu) {
          byte[] buffer = apdu.getBuffer();
          // Whether this INITIALIZE UPDATE command?
          if((buffer[ISO7816.OFFSET_CLA] != 0x80) &&
                (buffer[ISO7816.OFFSET_INS] != 0x50))
             return false;
          byte challengeLen = buffer[ISO7816.OFFSET_LC];
          byte dataRead = (byte)apdu.setIncomingAndReceive();
          if((challengeLen != 0x08) || (dataRead != 0x08)) {
             ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);
          // TODO generate random
          // Card challange
          byte[] challenge = new byte[] {
                (byte)0x11, (byte)0x22, (byte)0x33, (byte)0x44,
                (byte)0x55, (byte)0x66, (byte)0x77, (byte)0x88
          // DES Secure Channel Encryption Key (S-ENC) generation
          // Deriviation data array
          byte[] derivData = new byte[16];
          // Secure Channel Encryption Key data array
          byte[] s_enc_key = new byte[16];
          // The construction of deriviation data
          Util.arrayCopy(buffer, (short)(ISO7816.OFFSET_CDATA + 4), derivData, (short)12, (short)4);
          Util.arrayCopy(challenge, (short)0, derivData, (short)8, (short)4);
          Util.arrayCopy(buffer, ISO7816.OFFSET_CDATA, derivData, (short)4, (short)4);
          Util.arrayCopy(challenge, (short)4, derivData, (short)0, (short)4);
          // Construct and initialize Cipher with des_key
          DESKey des_key = (DESKey)KeyBuilder.buildKey(
                KeyBuilder.TYPE_DES, KeyBuilder.LENGTH_DES3_2KEY, false);
          des_key.setKey(secKey, (short)0);
          Cipher cipher = Cipher.getInstance(Cipher.ALG_DES_ECB_NOPAD, false);
          cipher.init(des_key, Cipher.MODE_ENCRYPT);
          // Generate session S-ENC key
          cipher.doFinal(derivData, (byte)0, (byte)derivData.length, s_enc_key, (byte)0);
          // Card Authentication Cryptogram generation
          // Cryptogram data array
          byte[] cryptogram = new byte[8];
          // Initial vector data
          byte[] initVector = new byte[] {
                (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
                (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00
          // Construct and initialize Cipher with s_enc_key
          des_key.setKey(s_enc_key, (short)0);
          cipher = Cipher.getInstance(Cipher.ALG_DES_CBC_NOPAD, false);
          cipher.init(des_key, Cipher.MODE_ENCRYPT, initVector, (short)0, (short)initVector.length);
          // Extract host challenge from input buffer
          byte[] hostChallenge = new byte[8];
          Util.arrayCopy(buffer, ISO7816.OFFSET_CDATA, hostChallenge, (short)0, (short)hostChallenge.length);
          // Step 1: Encrypt host challenge using ICV of binary zeroes
          byte[] inputData = xorOperation(initVector, hostChallenge);
          cipher.doFinal(inputData, (short)0, (short)inputData.length, cryptogram, (short)0);
          // Step 2: Encrypt card challenge using results of the previous operation
          inputData = xorOperation(cryptogram, challenge);
          cipher.doFinal(inputData, (short)0, (short)inputData.length, cryptogram, (short)0);
          // Step 3: Encrypt DES padding data using results of the previous operation
          byte[] pad = new byte[] {
                (byte)0x80, (byte)0x00, (byte)0x00, (byte)0x00,
                (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00
          inputData = xorOperation(cryptogram, pad);
          cipher.doFinal(inputData, (short)0, (short)inputData.length, cryptogram, (short)0);
          // Generate output
          byte[] keyDeriviation = new byte[] {
                (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
                (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00
          byte[] keyInfo = new byte[] {
                (byte)0xff, (byte)0x01
          // Calculate total length of the data to be sent
          short totalLen = (short)(keyDeriviation.length + keyInfo.length +
                                   cryptogram.length + challenge.length);
          apdu.setOutgoing();
          apdu.setOutgoingLength(totalLen);
          apdu.sendBytesLong(keyDeriviation, (short)0, (short)keyDeriviation.length);
          apdu.sendBytesLong(keyInfo, (short)0, (short)keyInfo.length);
          apdu.sendBytesLong(challenge, (short)0, (short)challenge.length);
          apdu.sendBytesLong(cryptogram, (short)0, (short)cryptogram.length);
          return true;
       private byte[] xorOperation(byte[] op1, byte[] op2) {
          byte[] res = new byte[8];
          if((op1.length != 8) || (op2.length != 8)) return null;
          for(byte i = 0; i < res.length; i++) {
             res[i] = (byte)(op1[i] ^ op2);
    return res;
    Regards, Eugene.

  • JCOP tools under linux - no readers detected for activation

    [eclipse 3.1.2, pcsc-lite 1.4, redhat el3]
    I just downloaded the JCOP tools as described in the following post:
    http://forum.java.sun.com/thread.jspa?forumID=23&threadID=722788
    I found that it would not install under linux, because win32 has been specified in the site and feature manifest files. When I removed these entries, it installed OK.
    Now, when I attempt to activate using my "engineering sample" card, the activation wizard notifies me that no PC/SC readers were detected. I'm puzzled by this, since pcsc-lite (1.4) is working well on my system, and I can see the reader & card being detected in pcscd's log. I have also been careful to ensure that eclipse knows about the shared library paths and I've even included jpcsc.jar as an extra library.
    If anyone else has JCOP tools working under linux, I'd appreciate any insights that might help. My issue may be simply that I have downloaded a custom windows distribution (tools.zip) - hence the manifest hack - perhaps there is a linux one?

    Could be the pcsc-lite 1.4 version the problem?
    http://forum.java.sun.com/thread.jspa?forumID=23&threadID=688560PC/SC Support (Linux)
    JCOP Tools only works with pcsc-lite 1.2.0.

  • JCOP tools and walllet example

    Hi,
    I'm trying to execute the well known (not for me ;-)) Wallet example with JCOP tools 3.1.1 but I have some problems.
    The first is related to install parameters: searching into other threads I was able to install the applet using 0102030405 parameter (even if it's not clear for me the meaning of this parameter, the install method accepts 3 parameters, bArray, bOffset and bLength).
    Here the install APDU trace:
    cm> install -i 77616c6c65742e617070 -q C9#(0102030405) 6578616d706c6573 77616c6c65742e617070
    => 80 E6 0C 00 2A 08 65 78 61 6D 70 6C 65 73 0A 77 ....*.examples.w
    61 6C 6C 65 74 2E 61 70 70 0A 77 61 6C 6C 65 74 allet.app.wallet
    2E 61 70 70 01 00 07 C9 05 01 02 03 04 05 00 00 .app............
    (2002 usec)
    <= 90 00 ..
    Status: No Error
    cm> card-info
    => 80 F2 80 00 02 4F 00 00 .....O..
    (471848 nsec)
    <= 08 A0 00 00 00 03 00 00 00 01 9E 90 00 .............
    Status: No Error
    => 80 F2 40 00 02 4F 00 00 [email protected]..
    (521854 nsec)
    <= 0A 77 61 6C 6C 65 74 2E 61 70 70 07 00 90 00 .wallet.app....
    Status: No Error
    => 80 F2 10 00 02 4F 00 00 .....O..
    (762666 nsec)
    <= 07 A0 00 00 00 03 53 50 01 00 01 08 A0 00 00 00 ......SP........
    03 53 50 41 08 65 78 61 6D 70 6C 65 73 01 00 01 .SPA.examples...
    0A 77 61 6C 6C 65 74 2E 61 70 70 90 00 .wallet.app..
    Status: No Error
    Card Manager AID : A000000003000000
    Card Manager state : OP_READY
    Application: SELECTABLE (--------) "wallet.app"
    Load File : LOADED (--------) A0000000035350 (Security Domain)
    Module : A000000003535041
    Load File : LOADED (--------) "examples"
    Module : "wallet.app"
    After that I'm not able to select the applet, here the APDU trace:
    cm> /select |wallet.app
    => 00 A4 04 00 0A 77 61 6C 6C 65 74 2E 61 70 70 00 .....wallet.app.
    (334400 nsec)
    <= 6E 00 n.
    Status: CLA value not supported
    jcshell: Error code: 6e00 (CLA value not supported)
    jcshell: Wrong response APDU: 6E00
    Any help would be very appreciated.
    Dariush.

    Dariush, whether this pin data or not is defined inside an applet. As for Wallet it must be pin value. But I saw several implementations of Wallet applet with different initialize parameters processing.
    Consider this code:
       private Wallet(byte[] bArray, short bOffset, byte bLength) {
          pin = new OwnerPIN(PIN_TRY_LIMIT, MAX_PIN_SIZE);
          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
          pin.update(bArray, (short) (bOffset + 1), aLen);
          register();
       public static void install(byte[] bArray, short bOffset, byte bLength) {
          new Wallet(bArray, bOffset, bLength);
       }Think of bArray data array as installation parameters (like command-line params in main method of the Java application); some of them you defined using C9 tag in JCOP Shell. Look at the comments in Wallet constructor and you will understand what data is passed. aLen variable denotes the length of parameters you passed through C9 tag.
    You can make a breakpoint on the first line in the constructor and then inspect what bArray actually contains.
    bOffset - is the offset in bArray, bLength - length of the installation params.
    Regards, Eugene

  • Jcop tool (jcshell ) vs gpshell *mutual_authentication() returns 0x80302000

    I think that jcop tool and gpshell are two technique to upload applet inside the card , M i right? or these both are any real big difference????????
    In Jcop i used following command to upload a cap file inside the java card
    cm>  /terminal "PCSC|SCM Microsystems Inc. SCL010 Contactless Reader 0"
    --Opening terminal
    <div class="jive-quote"> /card -a a000000003000000 -c com.ibm.jc.CardManager</div>
    cm>  set-key 255/1/DES-ECB/404142434445464748494a4b4c4d4e4f 255/2/DES-ECB/404142434445464748494a4b4c4d4e4f 255/3/DES-ECB/404142434445464748494a4b4c4d4e4f
    cm>  init-update 255
    cm>  ext-auth plain
    Status: No Error
    cm>  delete a0010203040506070809
                                               j.
    cm>  delete a00102030405060708
                                              j.
    cm>  upload "C:\Documents and Settings\amit pathak\workspace\jcop\bin\jcop\javacard\jcop.cap"
    cm>  install -i a0010203040506070809 -q C9#() a00102030405060708 a0010203040506070809
    Status: No Error
    cm>  card-info
    => 80 F2 80 00 02 4F 00 00                            .....O..
    (8301 usec)
    <= 08 A0 00 00 00 03 00 00 00 01 9E 90 00             .............
    Status: No Error
    => 80 F2 40 00 02 4F 00 00                            [email protected]..
    (279151 usec)
    <= 07 A0 00 00 02 47 10 01 07 00 0A A0 01 02 03 04    .....G..........
        05 06 07 08 09 07 00 90 00                         .........
    Status: No Error
    => 80 F2 10 00 02 4F 00 00                            .....O..
    (24089 usec)
    <= 07 A0 00 00 00 03 53 50 01 00 01 08 A0 00 00 00    ......SP........
        03 53 50 41 08 44 65 6D 6F 49 4C 4A 41 01 00 01    .SPA.DemoILJA...
        07 A0 00 00 02 47 10 01 09 A0 01 02 03 04 05 06    .....G..........
        07 08 01 00 01 0A A0 01 02 03 04 05 06 07 08 09    ................
        90 00                                              ..
    Status: No Error
    Card Manager AID   :  A000000003000000
    Card Manager state :  OP_READY
        Application:  SELECTABLE (--------) A0000002471001 
        Application:  SELECTABLE (--------) A0010203040506070809
        Load File  :      LOADED (--------) A0000000035350   (Security Domain)
         Module    :                        A000000003535041
        Load File  :      LOADED (--------) "DemoILJA"     
         Module    :                        A0000002471001
        Load File  :      LOADED (--------) A00102030405060708
         Module    :                        A0010203040506070809
    cm>  \select a0010203040506070809
    jcshell: Backslash only in quotes allowed
    cm>  /select a0010203040506070809
    => 00 A4 04 00 0A A0 01 02 03 04 05 06 07 08 09 00    ................
    (5891 usec)
    <= 90 00                                              ..
    Status: No Error
    cm>  /send 8002000003
    => 80 02 00 00 03                                     .....
    (6023 usec)
    <= 01 02 03 90 00                                     .....
    Status: No Error
    basically jcop tool automatically write these commands on the shell when uploading cap file in the card...
    when i try gpshell to upload cap file i got this error like:-
    D:\amit pathak\all in one (java)\GPShell-1.4.4\GPShell-1.4.4>GPShell.exe list.tx
    t
    mode_201
    enable_trace
    establish_context
    card_connect
    select -AID a0000000030000
    Command --> 00A4040007A0000000030000
    Wrapped command --> 00A4040007A0000000030000
    Response <-- 6F198408A000000003000000A50D9F6E064051420422009F6501FF9000
    open_sc -security 1 -keyind 0 -keyver 0 -mac_key 404142434445464748494a4b4c4d4e4
    f -enc_key 404142434445464748494a4b4c4d4e4f // Open secure channel
    Command --> 805000000894918FD9BC6C5F8700
    Wrapped command --> 805000000894918FD9BC6C5F8700
    Response <-- 00004330001341906809FF02005D6C4BE624901F1DB57E450CE1976E9000
    *mutual_authentication() returns 0x80302000 (The verification of the card cryptog*
    ram failed.)why it is happening ? i am able to use the commands of jcop and gpshell , but i dont know about command meaning !!! could anybody give me some links where i can learn more about jcop and gpshell, about why it used, about it associated commands and their meaning..
    Edited by: rohit pathak on May 8, 2012 9:13 PM

    D:\amit pathak\all in one (java)\GPShell-1.4.4\GPShell-1.4.4>GPShell.exe list.tx
    t
    mode_201
    enable_trace
    establish_context
    card_connect
    select -AID a0000000030000
    Command --> 00A4040007A0000000030000
    Wrapped command --> 00A4040007A0000000030000
    Response <-- 6F198408A000000003000000A50D9F6E064051420422009F6501FF9000
    open_sc -security 1 -keyind 0 -keyver 0 -mac_key 404142434445464748494a4b4c4d4e4
    f -enc_key 404142434445464748494a4b4c4d4e4f // Open secure channel
    Command --> 805000000894918FD9BC6C5F8700
    Wrapped command --> 805000000894918FD9BC6C5F8700
    Response <-- 00004330001341906809FF02005D6C4BE624901F1DB57E450CE1976E9000
    *mutual_authentication() returns 0x80302000 (The verification of the card cryptog*
    ram failed.)why it is happening ? You may have the wrong GP version (mode_201 sets the operation to OpenPlatform 2.0.1). You could try mode_211.
    i am able to use the commands of jcop and gpshell , but i dont know about command meaning !!! could anybody give me some links where i can learn more about jcop and gpshell, about why it used, about it associated commands and their meaning..The GP card spec describes all of the card management commands. You may also need to read some of the JCVM spec for Java Card to understand the format of the load command as well.
    Shane

  • Instructions for Downloading and Activating the JCOP Tools

    In response to my question:
    I refer to JCOP Tools available on Eclipse.
    If the plug-in free for download?
    If it is not, kindly provide a proper hyperlink from which those interested can place their order.Listed below is the reply from IBM. Can anyone who has successfully obtained the activation code this way confirm whether you need to foot the postage?
    Cheers!!!!
    There is no charge for the JCOP Tools. The tools are provided as-is with no warranty or support. Instructions for downloading and activating the tools follow.
    Please note that because our Java Card operating system is now available for more than one silicon vendor, IBM will no longer act as a distributor for sample cards. If you require a sample card, you must now approach the silicon vendors directly . Our current silicon partners are Philips Semiconductor, Samsung and Sharp. In addition you may be able to obtain JCOP sample cards from suppliers on this list http://www.zurich.ibm.com/jcop/order/cards.html
    JCOP Tools are subject to US Government Export Controls, and therefore each install has to be activated individually to ensure compliance. Please follow the instructions below for each copy of the tools that need to be activated.
    Prerequisites:
       1. If you do not already have a Java Runtime Environment (JRE) installed, download and install a JRE or JDK. You can do so from this website (http://java.sun.com/j2se/1.4.2/download.html). Please note that we recommend the use of JRE version 1.4.2.
       2. If you do not already have the open source software development environment Eclipse installed, download and install Eclipse (http://www.eclipse.org/), You can do so from this website(http://www.eclipse.org/downloads/index.php). JCOP Tools require Eclipse 3.1
    To download the tools and start install:
       1. Download the current Update Site image from here (http://www.zurich.ibm.com/jcop/download/eclipse/image/tools.zip)
       2. Unzip the downloaded file to a location of your choice
       3. Start the Eclipse IDE
       4. From the menu bar click on Help > Software Updates > Find and Install
       5. In the Install/Update Dialog select Search for new features to install
       6. Click Next
       7. Click on New Archived Site . . . and browse to the location chosen in step 2
       8. Select the file tools.zip
       9. Click Open then OK then Finish
      10. Eclipse Update Manager will start to install the plug-in, continue with the install as needed.
    For an activation code please send me ([email protected]) the following information:
       1. Your full postal address  - the serial number will be sent via International Courier for US Export control reasons.
       2. Your contact telephone number
       3. The serial number of your JCOP tools install
       4. Your planned usage/reason for needing the JCOP tools
       5. If a student, a copy (fax or digital photo) of your student ID
    For the serial number (item 3 above):
       1. Ensure you have downloaded and installed the JCOP Tools
       2. Start the Eclipse IDE
       3. From the menu bar click on File > New > Project
       4. In the New Project Dialog expand the Java Card folder
       5. Select Java Card Project
       6. Click Next
       7. You should now see the JCOP Licensing Wizard
       8. Click Next
       9. Select Verify an Activation Code
      10. Click Next
      11. The Serial Number should appear on the next page, above the Activation Code entry fields.
      12. Once you have that number click on Cancel then Abort (Note: the Java Card project choice will be disabled until the next time you restart Eclipse)

    For those who are interested to use the JCOP simulator for a start, I have checked that the plug-in and feature files (in tools.zip) for Eclipse are still available at IBM site, please download and install yourself.
    I still keep a copy of user guide for JCOP tools (version 3.1.1a) and the contents are still relevant to Version 3.1.1b simulator in tools.zip.
    If you are interested to have a copy of such document, kindly drop me an email to [email protected]

  • Howto generata a openplatform.exp within JCOP Tools?

    Hi Guys,
    I am trying to compile and load the coolkey applet (http://directory.fedoraproject.org/wiki/BuildCoolKeyApplet) into a Cyberflex 64k card.
    The cap files need to be transformed with a byte code verifier before the card can load them.
    The byte code verfifier needs all .exp files from all incuded libraries. Thus I need the openplatform.exp file.
    I tried the one from http://www.globalplatform.org/specifications/archived/card-tech-201.zip but i am ending up with an error on install_for_install.
    I think maybee the JCOP tools have a slightly different version and I would like to have an openplatform.ext out of my build environment which is used for the applet.
    Can anybody tell me how I can generate such an exp file from the global platorm stuff included in the JCOP tools?
    Regards,
    Fabian

    Hi,
    I am using the one from http://www.trusted-logic.com/down.php
    If I call without arguments it looks like this:
    java -jar captransf.jar  -s -noint  coolkey.cap
    Cannot find export file for imported package a0:0:0:0:62:0:1
    Please provide the correct export file on the command lineTo get the muscle applet working (which does not use openplatform) I've used this line with success:
    java -jar captransf.jar -s -noint "api21\javacard\framework\javacard\framework.exp" "api21\javacard\security\javacard\security.exp"  "api21\java\lang\javacard\lang.exp"  "api21\javacardx\crypto\javacard\crypto.exp" musclecard.exp  musclecard.cap???

Maybe you are looking for