user2363707
user2363707

Reputation: 21

Selecting AID in new eVRCs (after year ~2022)

I've recently implemented eVRC reader (for Slovak vehicle registration cards) using javax.smartcardio and Jevrc library ( https://github.com/grakic/jevrc ), which uses CommandAPDU to communicate with card. It works perfectly for older eVRC card, e.g. from years like 2018 or 2021.

However, I cannot cannot read new cards from last years (starting circa 2022 / 2023) this way. My client says there has been some change to these cards, but they're not technical/SW people and don't know any details.

Jevrc selects AID (A0000004564556522D3031) of card using these lines:

// EU eVRC AID
response = channel.transmit(new CommandAPDU(0x00, 0xA4, 0x04, 0x0C, 
                Utils.asByteArray(0xA0, 0x00, 0x00, 0x04, 0x56, 0x45, 0x56, 0x52, 0x2D, 0x30, 0x31)));
        
if (response.getSW() == 0x9000) {
    specifyCurrentCountry(Country.EU);
    return;
}

as seen here: https://github.com/grakic/jevrc/blob/master/jevrc/src/main/java/net/devbase/jevrc/EvrcCard.java#L176

00 A4 04 0C = Select AID command

A0000004564556522D3031 = eVRC AID

For older cards, response.getSW() is equal to 0x9000 and selection is successful. However, new cards return code 6a82, which is "file not found".

There must have been some change to AID or underlying technology / protocol / command syntax, but I cannot find what has changed.

Any information or link to related documentation (which I cannot find either) would be very welcome!

Upvotes: 2

Views: 128

Answers (0)

Related Questions