Get the IBAN number from an emv card -
i have issues reading iban number german cashcards (also known geldkarte). can communicate card, , informations it. don`t know commandapdu must send card, iban number...
the application runs on java 7 , use java.smartcardio api
protocoll t=1
my commandapdu date looks this:
byte[] commandbytes = new byte[]{0x00, (byte)0xa4, 0x04, 0x00, 0x07, (byte)0xa0, 0x00, 0x00, 0x00,0x04, 0x30, 0x60, 0x00};
the information is:
6f 32 84 07 a0 00 00 00 04 30 60 a5 27 50 07 4d 61 65 73 74 72 6f 87 01 03 9f 38 09 9f 33 02 9f 35 01 9f 40 01 5f 2d 04 64 65 65 6e bf 0c 05 9f 4d 02 19 0a
can tell me correct apdu getting iban number?
i sorry if forgott information needed, first question in board :-)
okay card has sent this:
6f328407a0000000043060a52750074d61657374726f8701039f38099f33029f35019f40015f2d046465656ebf0c059f4d02190a
6f file control information (fci) template 84 dedicated file (df) name a0000000043060 a5 file control information (fci) proprietary template 50 application label m e s t r o 87 application priority indicator 03 9f38 processing options data object list (pdol) 9f33029f35019f4001 5f2d language preference d e e n bf0c file control information (fci) issuer discretionary data 9f4d log entry 190a
so you've selected application you'll want send series of 'read record' commands data out of (card number, expiry date, card holder name, iban (if it's in there, haven't seen before)). structure of 'read record' command can found in emv book 3 here's rough psuedocode read record loop should like. off top of head set num_sfis 5 , num_records 16 there's not past these points.
for (int sfinum = 1; sfinum <= num_sfis; sfinum++) { (int rec = 1; rec <= num_records; rec++) { byte[] response = tag.transceive(new byte[]{0x00,(byte)0xb2 (byte)rec, (byte)((byte)(sfinum << 3) | 4), 0x00}); } }
Comments
Post a Comment