@@ -6760,37 +6760,35 @@ 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 }
6767- } else {
6780+ }
6781+ if (rv == CKR_OK ) {
6782+ rv = AddObject (session , pbkdf2Key , pTemplate , ulCount , phKey );
6783+ }
6784+ if (rv != CKR_OK ) {
67686785 WP11_Object_Free (pbkdf2Key );
6769- rv = CKR_FUNCTION_FAILED ;
67706786 }
67716787 }
67726788
67736789 wc_ForceZero (derivedKey , derivedKeyLen );
67746790 XFREE (derivedKey , NULL , DYNAMIC_TYPE_TMP_BUFFER );
67756791
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-
67946792 return rv ;
67956793 }
67966794#ifdef WOLFPKCS11_NSS
@@ -6877,37 +6875,35 @@ CK_RV C_GenerateKey(CK_SESSION_HANDLE hSession,
68776875 ret = WP11_Object_SetSecretKey (pbeKey , secretKeyData , secretKeyLen );
68786876 if (ret == 0 ) {
68796877 WP11_Object_SetKeyGeneration (pbeKey , pMechanism -> mechanism );
6880- rv = AddObject (session , pbeKey , pTemplate , ulCount , phKey );
6881- if (rv != CKR_OK ) {
6882- WP11_Object_Free (pbeKey );
6878+ rv = WP11_Object_GetAttr (pbeKey , CKA_SENSITIVE ,
6879+ & getVar , & getVarLen );
6880+ if ((rv == CKR_OK ) && (getVar == CK_TRUE )) {
6881+ rv = WP11_Object_SetAttr (pbeKey ,
6882+ CKA_ALWAYS_SENSITIVE ,
6883+ & trueVar , sizeof (CK_BBOOL ));
6884+ }
6885+ if (rv == CKR_OK ) {
6886+ rv = WP11_Object_GetAttr (pbeKey , CKA_EXTRACTABLE ,
6887+ & getVar , & getVarLen );
6888+ if ((rv == CKR_OK ) && (getVar == CK_FALSE )) {
6889+ rv = WP11_Object_SetAttr (pbeKey ,
6890+ CKA_NEVER_EXTRACTABLE ,
6891+ & trueVar ,
6892+ sizeof (CK_BBOOL ));
6893+ }
68836894 }
6884- } else {
6895+ }
6896+ if (rv == CKR_OK ) {
6897+ rv = AddObject (session , pbeKey , pTemplate , ulCount , phKey );
6898+ }
6899+ if (rv != CKR_OK ) {
68856900 WP11_Object_Free (pbeKey );
6886- rv = CKR_FUNCTION_FAILED ;
68876901 }
68886902 }
68896903
68906904 wc_ForceZero (derivedKey , derivedKeyLen );
68916905 XFREE (derivedKey , NULL , DYNAMIC_TYPE_TMP_BUFFER );
68926906
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-
69116907 return rv ;
69126908 }
69136909#endif
0 commit comments