Author Archives: Nicolas Riousset

Why is EMV card responding with error code 6985 to VERIFY command ?

When communicating with an EMV chip card, the card may reply to a command with error code SW1 SW2 = ’69 85′. In this post, we’ll analyze why this error code may be returned in response to the VERIFY command.

The VERIFY command “initiates in the ICC the comparison of the Transaction PIN Data sent in the data field of the command with the reference PIN data associated with the application”, as defined in EMV 4.3 book 3, section ‘6.5.12 VERIFY Command-Response APDUs‘. Status word ‘6985’ is defined as “Command not allowed” (“conditions of use not satisfied”), in EMV 4.3 book 3, section ‘6.3.5 Coding of the Status Bytes. This error code may be returned in several situations, here are a few common ones :

Continue reading

Why is EMV card returning error code 6985 to GET PROCESSING OPTIONS command ?

When communicating with an EMV chip card, the card may reply to a command with error code SW1 SW2 = ’69 85′. In this post, we’ll analyze why this error code may be returned in response to the GET PROCESSING OPTIONS (GPO) command.

The GPO command “initiates the transaction within the ICC, as defined in EMV 4.3 book 3, section ‘6.5.8 GET PROCESSING OPTIONS Command-Response APDUs‘. Status word ‘6985’ is defined as “Command not allowed” (“conditions of use not satisfied”), in EMV 4.3 book 3, section ‘6.3.5 Coding of the Status Bytes. This often happens when the GPO command contains an invalid response to the card Processing Data Options List (PDOL). Continue reading

Deux manières de concevoir une architecture logicielle

“Il y a deux manières de concevoir une architecture logicielle: la première est qu’elle soit tellement simple qu’il n’y a évidemment pas de problème, la seconde est de la rendre si compliquée qu’il n’y a  pas de problème évident. La première approche est de loin la plus difficile.”

–Tony Hoare