Skip to content

Commit 9892076

Browse files
committed
Fix build issues and findings
1 parent 99ebafd commit 9892076

3 files changed

Lines changed: 49 additions & 47 deletions

File tree

src/crypto.c

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -6760,37 +6760,37 @@ CK_RV C_GenerateKey(CK_SESSION_HANDLE hSession,
67606760
ret = WP11_Object_SetSecretKey(pbkdf2Key, secretKeyData, secretKeyLen);
67616761
if (ret == 0) {
67626762
WP11_Object_SetKeyGeneration(pbkdf2Key, pMechanism->mechanism);
6763-
rv = AddObject(session, pbkdf2Key, pTemplate, ulCount, phKey);
6764-
if (rv != CKR_OK) {
6765-
WP11_Object_Free(pbkdf2Key);
6763+
rv = WP11_Object_GetAttr(pbkdf2Key, CKA_SENSITIVE,
6764+
&getVar, &getVarLen);
6765+
if ((rv == CKR_OK) && (getVar == CK_TRUE)) {
6766+
rv = WP11_Object_SetAttr(pbkdf2Key,
6767+
CKA_ALWAYS_SENSITIVE,
6768+
&trueVar, sizeof(CK_BBOOL));
6769+
}
6770+
if (rv == CKR_OK) {
6771+
rv = WP11_Object_GetAttr(pbkdf2Key, CKA_EXTRACTABLE,
6772+
&getVar, &getVarLen);
6773+
if ((rv == CKR_OK) && (getVar == CK_FALSE)) {
6774+
rv = WP11_Object_SetAttr(pbkdf2Key,
6775+
CKA_NEVER_EXTRACTABLE,
6776+
&trueVar,
6777+
sizeof(CK_BBOOL));
6778+
}
67666779
}
67676780
} else {
6768-
WP11_Object_Free(pbkdf2Key);
67696781
rv = CKR_FUNCTION_FAILED;
67706782
}
6783+
if (rv == CKR_OK) {
6784+
rv = AddObject(session, pbkdf2Key, pTemplate, ulCount, phKey);
6785+
}
6786+
if (rv != CKR_OK) {
6787+
WP11_Object_Free(pbkdf2Key);
6788+
}
67716789
}
67726790

67736791
wc_ForceZero(derivedKey, derivedKeyLen);
67746792
XFREE(derivedKey, NULL, DYNAMIC_TYPE_TMP_BUFFER);
67756793

6776-
if (rv == CKR_OK) {
6777-
rv = WP11_Object_GetAttr(pbkdf2Key, CKA_SENSITIVE, &getVar,
6778-
&getVarLen);
6779-
if ((rv == CKR_OK) && (getVar == CK_TRUE)) {
6780-
rv = WP11_Object_SetAttr(pbkdf2Key, CKA_ALWAYS_SENSITIVE,
6781-
&trueVar, sizeof(CK_BBOOL));
6782-
}
6783-
if (rv == CKR_OK) {
6784-
rv = WP11_Object_GetAttr(pbkdf2Key, CKA_EXTRACTABLE,
6785-
&getVar, &getVarLen);
6786-
if ((rv == CKR_OK) && (getVar == CK_FALSE)) {
6787-
rv = WP11_Object_SetAttr(pbkdf2Key,
6788-
CKA_NEVER_EXTRACTABLE,
6789-
&trueVar, sizeof(CK_BBOOL));
6790-
}
6791-
}
6792-
}
6793-
67946794
return rv;
67956795
}
67966796
#ifdef WOLFPKCS11_NSS
@@ -6877,37 +6877,37 @@ CK_RV C_GenerateKey(CK_SESSION_HANDLE hSession,
68776877
ret = WP11_Object_SetSecretKey(pbeKey, secretKeyData, secretKeyLen);
68786878
if (ret == 0) {
68796879
WP11_Object_SetKeyGeneration(pbeKey, pMechanism->mechanism);
6880-
rv = AddObject(session, pbeKey, pTemplate, ulCount, phKey);
6881-
if (rv != CKR_OK) {
6882-
WP11_Object_Free(pbeKey);
6880+
rv = WP11_Object_GetAttr(pbeKey, CKA_SENSITIVE,
6881+
&getVar, &getVarLen);
6882+
if ((rv == CKR_OK) && (getVar == CK_TRUE)) {
6883+
rv = WP11_Object_SetAttr(pbeKey,
6884+
CKA_ALWAYS_SENSITIVE,
6885+
&trueVar, sizeof(CK_BBOOL));
6886+
}
6887+
if (rv == CKR_OK) {
6888+
rv = WP11_Object_GetAttr(pbeKey, CKA_EXTRACTABLE,
6889+
&getVar, &getVarLen);
6890+
if ((rv == CKR_OK) && (getVar == CK_FALSE)) {
6891+
rv = WP11_Object_SetAttr(pbeKey,
6892+
CKA_NEVER_EXTRACTABLE,
6893+
&trueVar,
6894+
sizeof(CK_BBOOL));
6895+
}
68836896
}
68846897
} else {
6885-
WP11_Object_Free(pbeKey);
68866898
rv = CKR_FUNCTION_FAILED;
68876899
}
6900+
if (rv == CKR_OK) {
6901+
rv = AddObject(session, pbeKey, pTemplate, ulCount, phKey);
6902+
}
6903+
if (rv != CKR_OK) {
6904+
WP11_Object_Free(pbeKey);
6905+
}
68886906
}
68896907

68906908
wc_ForceZero(derivedKey, derivedKeyLen);
68916909
XFREE(derivedKey, NULL, DYNAMIC_TYPE_TMP_BUFFER);
68926910

6893-
if (rv == CKR_OK) {
6894-
rv = WP11_Object_GetAttr(pbeKey, CKA_SENSITIVE, &getVar,
6895-
&getVarLen);
6896-
if ((rv == CKR_OK) && (getVar == CK_TRUE)) {
6897-
rv = WP11_Object_SetAttr(pbeKey, CKA_ALWAYS_SENSITIVE,
6898-
&trueVar, sizeof(CK_BBOOL));
6899-
}
6900-
if (rv == CKR_OK) {
6901-
rv = WP11_Object_GetAttr(pbeKey, CKA_EXTRACTABLE,
6902-
&getVar, &getVarLen);
6903-
if ((rv == CKR_OK) && (getVar == CK_FALSE)) {
6904-
rv = WP11_Object_SetAttr(pbeKey,
6905-
CKA_NEVER_EXTRACTABLE,
6906-
&trueVar, sizeof(CK_BBOOL));
6907-
}
6908-
}
6909-
}
6910-
69116911
return rv;
69126912
}
69136913
#endif

tests/pbkdf2_keygen_attrs_test.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545

4646
#include "testdata.h"
4747

48-
#ifndef NO_PWDBASED
48+
#if !defined(NO_PWDBASED) && !defined(NO_HMAC)
4949

5050
#define TEST_DIR "./store/pbkdf2_keygen_attrs_test"
5151
#define WOLFPKCS11_TOKEN_FILENAME "wp11_token_0000000000000001"
@@ -428,14 +428,14 @@ int main(int argc, char* argv[])
428428
return (test_failed == 0) ? 0 : 1;
429429
}
430430

431-
#else /* NO_PWDBASED */
431+
#else /* NO_PWDBASED || NO_HMAC */
432432

433433
int main(int argc, char* argv[])
434434
{
435435
(void)argc;
436436
(void)argv;
437437

438-
printf("PWDBASED not available, skipping PBKDF2 keygen attributes test\n");
438+
printf("PWDBASED/HMAC not available, skipping PBKDF2 keygen attributes test\n");
439439
return 0;
440440
}
441441

tests/pkcs11test.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -697,10 +697,12 @@ static CK_RV test_token(void* args)
697697
ret = funcList->C_InitToken(slot, soPin, soPinLen, NULL);
698698
CHECK_CKR_FAIL(ret, CKR_ARGUMENTS_BAD, "Init Token no label");
699699
}
700+
#if WP11_MIN_PIN_LEN > 3
700701
if (ret == CKR_OK) {
701702
ret = funcList->C_InitToken(slot, soPin, 3, label);
702703
CHECK_CKR_FAIL(ret, CKR_PIN_LEN_RANGE, "Init Token too short PIN");
703704
}
705+
#endif
704706
if (ret == CKR_OK) {
705707
ret = funcList->C_InitToken(slot, soPin, 33, label);
706708
CHECK_CKR_FAIL(ret, CKR_PIN_LEN_RANGE, "Init Token too long PIN");

0 commit comments

Comments
 (0)