From e1fd9d2a4c12ca460cc50b6f324c46b4846c5737 Mon Sep 17 00:00:00 2001 From: Frank Morgner Date: Mon, 3 Mar 2014 08:05:10 +0100 Subject: [PATCH] cardos,incrypto34: restored semantics of select_pin_reference --- src/pkcs15init/pkcs15-cardos.c | 2 ++ src/pkcs15init/pkcs15-incrypto34.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/pkcs15init/pkcs15-cardos.c b/src/pkcs15init/pkcs15-cardos.c index a4e24528..9d1f658c 100644 --- a/src/pkcs15init/pkcs15-cardos.c +++ b/src/pkcs15init/pkcs15-cardos.c @@ -165,6 +165,8 @@ cardos_select_pin_reference(sc_profile_t *profile, sc_pkcs15_card_t *p15card, if (auth_info->attrs.pin.flags & SC_PKCS15_PIN_FLAG_SO_PIN) { preferred = 1; + if (current > preferred) + return SC_ERROR_TOO_MANY_OBJECTS; } else { preferred = current; /* PINs are even numbered, PUKs are odd */ diff --git a/src/pkcs15init/pkcs15-incrypto34.c b/src/pkcs15init/pkcs15-incrypto34.c index f1715995..80e6010e 100644 --- a/src/pkcs15init/pkcs15-incrypto34.c +++ b/src/pkcs15init/pkcs15-incrypto34.c @@ -184,6 +184,8 @@ incrypto34_select_pin_reference(sc_profile_t *profile, sc_pkcs15_card_t *p15card if (auth_info->attrs.pin.flags & SC_PKCS15_PIN_FLAG_SO_PIN) { preferred = 1; + if (current > preferred) + return SC_ERROR_TOO_MANY_OBJECTS; } else { preferred = current; /* PINs are even numbered, PUKs are odd */