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
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 oldPIN 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