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
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)