Downloading  EAP Application to Smartcard


Executable applications are stored in .CAP file whose format is standard. However smartcards are usually protected by keys that are required in order to download code.

Here is an example for downloading CAP file in  JCOP smartcards
, in the free ECLIPSE programming environment, incorporating a JCOP plug in.

Create a repertory (/bin for example) and store in that place an OPENEAPSMARTCARD.CAP file and the two JCOP scripts, LOAD.JCSH and REMOVE.JCSH

Click here to download these scripts.

1- Start the ECLIPSE software

2- Go  to window/openperpective/JCOPdevelopement

3- Go  to window/ShowView/JCOP Shell,  a window shell appears


JCOP SHELL

4- Under the prompt (cm>) enter the command:  /set-var path /bin/
 
that sets the path to our script file

5- Enter the script filename without its extension,  load  in our example. If you reload a CAP file it's necessary to delete the old version by the script named remove

If everything is OK you will get the following data.

Load.jcsh script

cm>  load

Terminal:   PCSCJCTerminal
Status:     Card present, 00000004
Last error: ERROR
--Waiting for card...
ATR=3B E6 00 FF 81 31 FE 45 4A 43 4F 50 32 31 07       ;....1.EJCOP21.
 => 00 A4 04 00 07 A0 00 00 00 03 00 00 00             .............
 (310 msec)
 <= 6F 19 84 08 A0 00 00 00 03 00 00 00 A5 0D 9F 6E    o..............n
    06 40 51 23 05 21 14 9F 65 01 FF 90 00             .@Q#.!..e....
Status: No Error
 => 80 50 00 00 08 21 85 31 B8 0B 19 46 41 00          .P...!.1...FA.
 (160 msec)
 <= 00 00 23 25 00 47 30 90 18 09 FF 01 05 03 15 61    ..#%.G0........a
    79 90 C3 C7 83 11 41 CE CD DF 49 83 90 00          y.....A...I...
Status: No Error
 => 84 82 00 00 10 BA 9B 4A 47 37 8D 1F C7 B0 B7 02    .......JG7......
    30 A1 02 B1 09                                     0....
 (100 msec)
 <= 90 00                                              ..
Status: No Error
 => 80 F2 80 00 02 4F 00 00                            .....O..
 (80 msec)
 <= 08 A0 00 00 00 03 00 00 00 01 9E 90 00             .............
Status: No Error
 => 80 F2 40 00 02 4F 00 00                            ..@..O..
 (61 msec)
 <= 6A 88                                              j.
Status: Reference data not found
 => 80 F2 10 00 02 4F 00 00                            .....O..
 (70 msec)
 <= 6A 86                                              j.
Status: Incorrect parameters (P1,P2)
 => 80 F2 20 00 02 4F 00 00                            .. ..O..
 (210 msec)
 <= 07 A0 00 00 00 62 00 01 01 00 07 A0 00 00 00 62    .....b.........b
    01 01 01 00 07 A0 00 00 00 62 01 02 01 00 07 A0    .........b......
    00 00 00 62 02 01 01 00 07 A0 00 00 00 03 00 00    ...b............
    01 00 08 A0 00 00 01 67 41 30 01 01 00 07 A0 00    .......gA0......
    00 01 32 00 01 01 00 07 A0 00 00 00 03 53 50 01    ..2..........SP.
    00 05 A0 00 00 00 63 01 00 90 00                   ......c....
Status: No Error

Card Manager AID   :  A000000003000000
Card Manager state :  OP_READY

    Load File  :      LOADED (--------) A0000000620001   (java.lang)
    Load File  :      LOADED (--------) A0000000620101   (javacard.framework)
    Load File  :      LOADED (--------) A0000000620102   (javacard.security)
    Load File  :      LOADED (--------) A0000000620201   (javacardx.crypto)
    Load File  :      LOADED (--------) A0000000030000   (visa.openplatform)
    Load File  :      LOADED (--------) A000000167413001 (FIPS 140-2)
    Load File  :      LOADED (--------) A0000001320001   (org.javacardforum.javacard.biometry)
    Load File  :      LOADED (--------) A0000000035350   (Security Domain)
    Load File  :      LOADED (--------) A000000063       (PKCS15)
 => 80 E6 02 00 13 06 11 22 33 44 55 66 08 A0 00 00    ......."3DUf....
    00 03 00 00 00 00 00 00 00                         .........
 (140 msec)
 <= 00 90 00                                           ...
Status: No Error
 => 80 E8 00 00 FF
 ...
 <= 00 90 00                                           ...
Status: No Error
Load report:
  16824 bytes loaded in 49.4 seconds
  effective code size on card:
      + package AID       6
      + applet AIDs       14
      + classes           192
      + methods           10664
      + statics           3381
      + exports           0
     ------------------------------
        overall           14257  bytes
 => 80 E6 0C 00 1D 06 11 22 33 44 55 66 07 11 22 33    ......."3DUf.."3
    44 55 66 01 07 11 22 33 44 55 66 01 01 00 02 C9    DUf..."3DUf.....
    00 00 00                                           ...
 (6820 msec)
 <= 00 90 00                                           ...
Status: No Error
 => 80 F2 80 00 02 4F 00 00                            .....O..
 (80 msec)
 <= 08 A0 00 00 00 03 00 00 00 01 9E 90 00             .............
Status: No Error
 => 80 F2 40 00 02 4F 00 00                            ..@..O..
 (80 msec)
 <= 07 11 22 33 44 55 66 01 07 00 90 00                .."3DUf.....
Status: No Error
 => 80 F2 10 00 02 4F 00 00                            .....O..
 (60 msec)
 <= 6A 86                                              j.
Status: Incorrect parameters (P1,P2)
 => 80 F2 20 00 02 4F 00 00                            .. ..O..
 (231 msec)
 <= 07 A0 00 00 00 62 00 01 01 00 07 A0 00 00 00 62    .....b.........b
    01 01 01 00 07 A0 00 00 00 62 01 02 01 00 07 A0    .........b......
    00 00 00 62 02 01 01 00 07 A0 00 00 00 03 00 00    ...b............
    01 00 08 A0 00 00 01 67 41 30 01 01 00 07 A0 00    .......gA0......
    00 01 32 00 01 01 00 07 A0 00 00 00 03 53 50 01    ..2..........SP.
    00 05 A0 00 00 00 63 01 00 06 11 22 33 44 55 66    ......c...."3DUf
    01 00 90 00                                        ....
Status: No Error

Card Manager AID   :  A000000003000000
Card Manager state :  OP_READY


remove.jcsh script

cm>  remove

Terminal:   PCSCJCTerminal
Status:     Card present, 00000004
Last error: ERROR
--Waiting for card...
ATR=3B E6 00 FF 81 31 FE 45 4A 43 4F 50 32 31 07       ;....1.EJCOP21.
 => 00 A4 04 00 07 A0 00 00 00 03 00 00 00             .............
 (641 msec)
 <= 6F 19 84 08 A0 00 00 00 03 00 00 00 A5 0D 9F 6E    o..............n
    06 40 51 23 05 21 14 9F 65 01 FF 90 00             .@Q#.!..e....
Status: No Error
 => 80 50 00 00 08 08 2E A6 60 AB 81 4D CA 00          .P......`..M..
 (160 msec)
 <= 00 00 23 25 00 47 30 90 18 09 FF 01 C3 9B 8D 5C    ..#%.G0........\
    77 4E E6 4B 4F 89 C0 85 EC CA D8 EA 90 00          wN.KO.........
Status: No Error
 => 84 82 00 00 10 4F A0 A1 A0 5B 95 45 FD 46 19 E7    .....O...[.E.F..
    2A DF C4 D4 EB                                     *....
 (100 msec)
 <= 90 00                                              ..
Status: No Error
 => 80 F2 80 00 02 4F 00 00                            .....O..
 (80 msec)
 <= 08 A0 00 00 00 03 00 00 00 01 9E 90 00             .............
Status: No Error
 => 80 F2 40 00 02 4F 00 00                            ..@..O..
 (80 msec)
 <= 07 11 22 33 44 55 66 01 07 00 90 00                .."3DUf.....
Status: No Error
 => 80 F2 10 00 02 4F 00 00                            .....O..
 (61 msec)
 <= 6A 86                                              j.
Status: Incorrect parameters (P1,P2)
 => 80 F2 20 00 02 4F 00 00                            .. ..O..
 (230 msec)
 <= 07 A0 00 00 00 62 00 01 01 00 07 A0 00 00 00 62    .....b.........b
    01 01 01 00 07 A0 00 00 00 62 01 02 01 00 07 A0    .........b......
    00 00 00 62 02 01 01 00 07 A0 00 00 00 03 00 00    ...b............
    01 00 08 A0 00 00 01 67 41 30 01 01 00 07 A0 00    .......gA0......
    00 01 32 00 01 01 00 07 A0 00 00 00 03 53 50 01    ..2..........SP.
    00 05 A0 00 00 00 63 01 00 06 11 22 33 44 55 66    ......c...."3DUf
    01 00 90 00                                        ....
Status: No Error

Card Manager AID   :  A000000003000000
Card Manager state :  OP_READY

    Application:  SELECTABLE (--------) 11223344556601 
    Load File  :      LOADED (--------) A0000000620001   (java.lang)
    Load File  :      LOADED (--------) A0000000620101   (javacard.framework)
    Load File  :      LOADED (--------) A0000000620102   (javacard.security)
    Load File  :      LOADED (--------) A0000000620201   (javacardx.crypto)
    Load File  :      LOADED (--------) A0000000030000   (visa.openplatform)
    Load File  :      LOADED (--------) A000000167413001 (FIPS 140-2)
    Load File  :      LOADED (--------) A0000001320001   (org.javacardforum.javacard.biometry)
    Load File  :      LOADED (--------) A0000000035350   (Security Domain)
    Load File  :      LOADED (--------) A000000063       (PKCS15)
    Load File  :      LOADED (--------) 112233445566   
 => 80 E4 00 00 09 4F 07 11 22 33 44 55 66 01 00       .....O.."3DUf..
 (921 msec)
 <= 00 90 00                                           ...
Status: No Error
 => 80 E4 00 00 08 4F 06 11 22 33 44 55 66 00          .....O.."3DUf.
 (341 msec)
 <= 00 90 00                                           ...
Status: No Error
 => 80 F2 80 00 02 4F 00 00                            .....O..
 (80 msec)
 <= 08 A0 00 00 00 03 00 00 00 01 9E 90 00             .............
Status: No Error
 => 80 F2 40 00 02 4F 00 00                            ..@..O..
 (70 msec)
 <= 6A 88                                              j.
Status: Reference data not found
 => 80 F2 10 00 02 4F 00 00                            .....O..
 (60 msec)
 <= 6A 86                                              j.
Status: Incorrect parameters (P1,P2)
 => 80 F2 20 00 02 4F 00 00                            .. ..O..
 (210 msec)
 <= 07 A0 00 00 00 62 00 01 01 00 07 A0 00 00 00 62    .....b.........b
    01 01 01 00 07 A0 00 00 00 62 01 02 01 00 07 A0    .........b......
    00 00 00 62 02 01 01 00 07 A0 00 00 00 03 00 00    ...b............
    01 00 08 A0 00 00 01 67 41 30 01 01 00 07 A0 00    .......gA0......
    00 01 32 00 01 01 00 07 A0 00 00 00 03 53 50 01    ..2..........SP.
    00 05 A0 00 00 00 63 01 00 90 00                   ......c....
Status: No Error

Card Manager AID   :  A000000003000000
Card Manager state :  OP_READY

    Load File  :      LOADED (--------) A0000000620001   (java.lang)
    Load File  :      LOADED (--------) A0000000620101   (javacard.framework)
    Load File  :      LOADED (--------) A0000000620102   (javacard.security)
    Load File  :      LOADED (--------) A0000000620201   (javacardx.crypto)
    Load File  :      LOADED (--------) A0000000030000   (visa.openplatform)
    Load File  :      LOADED (--------) A000000167413001 (FIPS 140-2)
    Load File  :      LOADED (--------) A0000001320001   (org.javacardforum.javacard.biometry)
    Load File  :      LOADED (--------) A0000000035350   (Security Domain)
    Load File  :      LOADED (--------) A000000063       (PKCS15)