Skip to content

Commit 9f069de

Browse files
committed
Fix pin length error handling
F-2035
1 parent d43355c commit 9f069de

2 files changed

Lines changed: 13 additions & 13 deletions

File tree

src/slot.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ static CK_RV checkPinLen(CK_ULONG pinLen)
154154
#else
155155
if (pinLen > WP11_MAX_PIN_LEN)
156156
#endif
157-
return CKR_PIN_INCORRECT;
157+
return CKR_PIN_LEN_RANGE;
158158
return CKR_OK;
159159
}
160160

@@ -1277,8 +1277,8 @@ CK_RV C_InitToken(CK_SLOT_ID slotID, CK_UTF8CHAR_PTR pPin,
12771277
return rv;
12781278
}
12791279

1280-
if (checkPinLen(ulPinLen) != CKR_OK) {
1281-
rv = CKR_PIN_INCORRECT;
1280+
rv = checkPinLen(ulPinLen);
1281+
if (rv != CKR_OK) {
12821282
WOLFPKCS11_LEAVE("C_InitToken", rv);
12831283
return rv;
12841284
}
@@ -1361,8 +1361,8 @@ CK_RV C_InitPIN(CK_SESSION_HANDLE hSession, CK_UTF8CHAR_PTR pPin,
13611361
return rv;
13621362
}
13631363

1364-
if (checkPinLen(ulPinLen) != CKR_OK) {
1365-
rv = CKR_PIN_INCORRECT;
1364+
rv = checkPinLen(ulPinLen);
1365+
if (rv != CKR_OK) {
13661366
WOLFPKCS11_LEAVE("C_InitPIN", rv);
13671367
return rv;
13681368
}
@@ -1436,8 +1436,8 @@ CK_RV C_SetPIN(CK_SESSION_HANDLE hSession, CK_UTF8CHAR_PTR pOldPin,
14361436
WOLFPKCS11_LEAVE("C_SetPIN", rv);
14371437
return rv;
14381438
}
1439-
if (checkPinLen(ulNewLen) != CKR_OK) {
1440-
rv = CKR_PIN_INCORRECT;
1439+
rv = checkPinLen(ulNewLen);
1440+
if (rv != CKR_OK) {
14411441
WOLFPKCS11_LEAVE("C_SetPIN", rv);
14421442
return rv;
14431443
}

tests/pkcs11test.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -699,11 +699,11 @@ static CK_RV test_token(void* args)
699699
}
700700
if (ret == CKR_OK) {
701701
ret = funcList->C_InitToken(slot, soPin, 3, label);
702-
CHECK_CKR_FAIL(ret, CKR_PIN_INCORRECT, "Init Token too short PIN");
702+
CHECK_CKR_FAIL(ret, CKR_PIN_LEN_RANGE, "Init Token too short PIN");
703703
}
704704
if (ret == CKR_OK) {
705705
ret = funcList->C_InitToken(slot, soPin, 33, label);
706-
CHECK_CKR_FAIL(ret, CKR_PIN_INCORRECT, "Init Token too long PIN");
706+
CHECK_CKR_FAIL(ret, CKR_PIN_LEN_RANGE, "Init Token too long PIN");
707707
}
708708

709709
if (ret == CKR_OK) {
@@ -833,13 +833,13 @@ static CK_RV test_pin(void* args)
833833
#if WP11_MIN_PIN_LEN > 3
834834
if (ret == CKR_OK) {
835835
ret = funcList->C_InitPIN(session, userPin, 3);
836-
CHECK_CKR_FAIL(ret, CKR_PIN_INCORRECT,
836+
CHECK_CKR_FAIL(ret, CKR_PIN_LEN_RANGE,
837837
"Init PIN too short PIN");
838838
}
839839
#endif
840840
if (ret == CKR_OK) {
841841
ret = funcList->C_InitPIN(session, userPin, 33);
842-
CHECK_CKR_FAIL(ret, CKR_PIN_INCORRECT,
842+
CHECK_CKR_FAIL(ret, CKR_PIN_LEN_RANGE,
843843
"Init PIN too long PIN");
844844
}
845845
funcList->C_Logout(session);
@@ -882,14 +882,14 @@ static CK_RV test_pin(void* args)
882882
if (ret == CKR_OK) {
883883
ret = funcList->C_SetPIN(session, userPin, userPinLen,userPin,
884884
3);
885-
CHECK_CKR_FAIL(ret, CKR_PIN_INCORRECT,
885+
CHECK_CKR_FAIL(ret, CKR_PIN_LEN_RANGE,
886886
"Set PIN too short new pin");
887887
}
888888
#endif
889889
if (ret == CKR_OK) {
890890
ret = funcList->C_SetPIN(session, userPin, userPinLen, userPin,
891891
33);
892-
CHECK_CKR_FAIL(ret, CKR_PIN_INCORRECT,
892+
CHECK_CKR_FAIL(ret, CKR_PIN_LEN_RANGE,
893893
"Set PIN too long new pin");
894894
}
895895
if (ret == CKR_OK) {

0 commit comments

Comments
 (0)