OpenPGP: use actual references in PKCS#15 emulation code for PIN codes. Only v1.1 has 3 PIN codes.

This commit is contained in:
Martin Paljak 2011-07-15 13:36:33 +03:00 committed by Viktor Tarasov
parent 63b08786a0
commit fb772cccf8
2 changed files with 3 additions and 3 deletions

View File

@ -903,8 +903,6 @@ pgp_pin_cmd(sc_card_t *card, struct sc_pin_cmd_data *data, int *tries_left)
LOG_TEST_RET(card->ctx, SC_ERROR_INVALID_ARGUMENTS,
"invalid PIN type");
data->pin_reference |= 0x80;
LOG_FUNC_RETURN(card->ctx, iso_ops->pin_cmd(card, data, tries_left));
}

View File

@ -132,6 +132,8 @@ sc_pkcs15emu_openpgp_init(sc_pkcs15_card_t *p15card)
flags = SC_PKCS15_PIN_FLAG_CASE_SENSITIVE |
SC_PKCS15_PIN_FLAG_INITIALIZED |
SC_PKCS15_PIN_FLAG_LOCAL;
if (card->type == SC_CARD_TYPE_OPENPGP_V2 && i == 1)
continue;
if (i == 2) {
flags |= SC_PKCS15_PIN_FLAG_UNBLOCK_DISABLED |
SC_PKCS15_PIN_FLAG_SO_PIN;
@ -140,7 +142,7 @@ sc_pkcs15emu_openpgp_init(sc_pkcs15_card_t *p15card)
pin_info.auth_type = SC_PKCS15_PIN_AUTH_TYPE_PIN;
pin_info.auth_id.len = 1;
pin_info.auth_id.value[0] = i + 1;
pin_info.attrs.pin.reference = i + 1;
pin_info.attrs.pin.reference = 0x81 + i;
pin_info.attrs.pin.flags = flags;
pin_info.attrs.pin.type = SC_PKCS15_PIN_TYPE_ASCII_NUMERIC;
pin_info.attrs.pin.min_length = 0;