Thanks for the pointer Martin.

I've attached a small patch that uses your suggestion. I've successfully tested it with both versions of the Portuguese eID card, with a SPR532 pinpad reader: one version uses an implicit change pin operation and the other uses the (normal) explicit pin change operation.

João

Attachment: implicit_pin_change.patch
Description: Binary data



On Sep 24, 2009, at 19:12, Martin Paljak wrote:

On 24.09.2009, at 15:59, João Poupino wrote:
On the document, there are other options explained. One looks promising:

bConfirmPin: 0x01
bNumberMessage: 0x02
Messages seen on Pinpad display: New Pin*, Confirm Pin*

*In these two cases, old PIN is not asked by the Pinpad but do not forget to put the old
PIN value in the APDU command.
And now it works as expected :)

Of course, by doing this I'm breaking all other cards and it's not very nice. Is there any way (through a flag in structure or something) that we can signal part10_build_modify_pin_block() to adapt its behavior depending on the type of card?

Sure, there are flags SC_PIN_CMD*. You can add a new flag and related code. It might be useful to add a similar flag to PKCS#15 layer, even if not defined in PKCS#15. When you have a similar application on multiple cards and a single emulation driver then the emulation layer information can be translated to lower flags. Check SC_PIN_CMD_NEED_PADDING and SC_PKCS15_PIN_FLAG_NEEDS_PADDING for inspiration.


--
Martin Paljak
http://martin.paljak.pri.ee
+372.515.6495





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

Reply via email to