javacard - How to send the APDU command to get a success response? -


i have method in javacard applet:

 public void process(apdu apdu)   {   byte[] buf = apdu.getbuffer() ;     switch(buf[iso7816.offset_ins])      {     case 0x40:                util.arraycopy(hello,(byte)0,buf,iso7816.offset_cdata,(byte)5);                apdu.setoutgoingandsend(iso7816.offset_cdata,(byte)5);                break;      default:  isoexception.throwit(iso7816.sw_wrong_ins) ;      } } 

here hello :

 private final static byte[] hello =  {0x48, 0x65, 0x6c, 0x6c, 0x6f };  

and sending command in script follows:

 powerup;  // select installer applet 0x00 0xa4 0x04 0x00 0x09 0xa0 0x00 0x00 0x00 0x62 0x03 0x01 0x08 0x01 0x7f;  // create testapplet applet 0x80 0xb8 0x00 0x00 0xd 0xb 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x00 0x00 0x00 0x7f;  //show hello message 0x40 0x00 0x00 0x00;  //this command mentioned in tutorial gave error  powerdown; 

the first 2 commands succeeded, last 1 gets error command not in correct format .

i tried command:

     0x00 0x40 0x00 0x00 0x00 0x7f;  

but gave me response 6d00 means ins vlaue not supported.

here actual response:

cla: 80, ins:40, p1:00,p2:00,lc:00,le:00,sw1:6d,sw2:00 

the expected response hello value along success reponse 9000

i following tutorial

what proper way give apdu command ?

as mentioned in answer @bzh, command 0x40 0x00 0x00 0x00 not correct.

the correct command

0x80 0x40 0x00 0x00 0x00.

there 1 more problem: status word 6d00 not sent applet, sent card manager applet with

aid = a00000006203010801 

you have selected after powerup. card manager applet not know ins = 0x40 instruction, therefore status code. have select applet before sending commands:

00 a4 04 00 [lc] [... aid of applet instance...] 80 40 00 00 00 

Comments

Popular posts from this blog

sublimetext3 - what keyboard shortcut is to comment/uncomment for this script tag in sublime -

java - No use of nillable="0" in SOAP Webservice -

ubuntu - Laravel 5.2 quickstart guide gives Not Found Error -