emviban

Get the IBAN number from an emv card


i have some issues with reading the IBAN number from the german CashCards (also known as Geldkarte). I can communicate with my card, and i get some informations from it. but i don`t know which commandApdu i must send to the card, to get the IBAN number...

The application runs on Java 7 and i use the java.smartcardio api Protocoll is T=1

my commandApdu to get the date looks like this:

byte[] commandBytes = new byte[]{0x00, (byte)0xa4, 0x04, 0x00, 0x07, (byte)0xa0, 0x00, 0x00, 0x00,0x04, 0x30, 0x60, 0x00};

the information i get 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 anyone tell me the correct apdu for getting the IBAN number?

i am sorry if i forgott some information needed, but this is my first question in this board :-)


Solution

  • i solved my problem after a long time this way: At first send a command to the card, to select the aid (application identifier):

    private static byte[] aidWithPossibleIban = new byte[] { 0x00, (byte) 0xa4,
                0x04, 0x00, 0x09, (byte) 0xa0, 0x00, 0x00, 0x00, 0x59, 0x45, 0x43,
                0x01, 0x00, 0x00 };
    

    then i hat to raise the security-level:

    private static byte[] cmdRaiseSecurityLevel = new byte[] { 0x00, 0x22,
                (byte) 0xf3, 0x02 };
    

    last thing to do was to read the record:

    private static byte[] readSelectedRecord = new byte[] { 0x00, (byte) 0xb2,
                0x01, (byte) 0xa4, 0x00 };
    

    regards Andreas