Hi all,

I've come across an issue with the way a "Change PIN" operation is  
processed in OpenSC, when using a pinpad reader and the Portuguese eID  
card. Basically, the problem is that one of the versions of the  
Portuguese eID card (IAS spec) only supports changing the PIN if a  
previously "Verify PIN" apdu was sent. So the driver, when receiving a  
"change pin" request,  breaks it in two different APDUs:  
SC_PIN_CMD_VERIFY and, after that, SC_PIN_CMD_CHANGE.

Normally, this is what happens (old pin = 1234, new pin = 1234).

APDU 00:20:00:01:08:31:32:33:34:2F:2F:2F:2F
SW: 90 00
APDU 00:24:01:01:08:31:32:33:34:2F:2F:2F:2F
SW: 90 00

This works perfectly when using a regular reader. When using a pinpad  
reader it works also, but a "minor annoyance" occurs: the reader asks  
for 4 PINs (instead of the regular 3) and I think this can cause  
confusion to the users.

If I'm not mistaken, 1 PIN is asked  for the SC_PIN_CMD_VERIFY apdu  
and the 3 other PINs are asked for the SC_PIN_CMD_CHANGE apdu.

I've been trying to understand part10_modify_pin_block() in reader- 
pcsc.c, but I still don't know exactly what is needed to change its  
behavior to support correctly this card.

Can anyone help?

Thank you.

João

_______________________________________________
opensc-devel mailing list
opensc-devel@lists.opensc-project.org
http://www.opensc-project.org/mailman/listinfo/opensc-devel

Reply via email to