@@ -1909,12 +1909,12 @@ static CK_RV EncryptInit(CK_SESSION_HANDLE hSession,
19091909 ret = CheckOpSupported (obj , CKA_ENCRYPT );
19101910 if (ret != CKR_OK )
19111911 return ret ;
1912- }
19131912
1914- if (WP11_Session_IsOpCategoryActive (session , WP11_OP_ENCRYPT )) {
1915- rv = CKR_OPERATION_ACTIVE ;
1916- WOLFPKCS11_LEAVE ("C_EncryptInit" , rv );
1917- return rv ;
1913+ if (WP11_Session_IsOpCategoryActive (session , WP11_OP_ENCRYPT )) {
1914+ rv = CKR_OPERATION_ACTIVE ;
1915+ WOLFPKCS11_LEAVE ("C_EncryptInit" , rv );
1916+ return rv ;
1917+ }
19181918 }
19191919
19201920 type = WP11_Object_GetType (obj );
@@ -2924,12 +2924,12 @@ static CK_RV DecryptInit(CK_SESSION_HANDLE hSession,
29242924 ret = CheckOpSupported (obj , CKA_DECRYPT );
29252925 if (ret != CKR_OK )
29262926 return ret ;
2927- }
29282927
2929- if (WP11_Session_IsOpCategoryActive (session , WP11_OP_DECRYPT )) {
2930- rv = CKR_OPERATION_ACTIVE ;
2931- WOLFPKCS11_LEAVE ("C_DecryptInit" , rv );
2932- return rv ;
2928+ if (WP11_Session_IsOpCategoryActive (session , WP11_OP_DECRYPT )) {
2929+ rv = CKR_OPERATION_ACTIVE ;
2930+ WOLFPKCS11_LEAVE ("C_DecryptInit" , rv );
2931+ return rv ;
2932+ }
29332933 }
29342934
29352935 type = WP11_Object_GetType (obj );
@@ -6916,37 +6916,21 @@ CK_RV C_GenerateKey(CK_SESSION_HANDLE hSession,
69166916 ret = WP11_Object_SetSecretKey (pbkdf2Key , secretKeyData , secretKeyLen );
69176917 if (ret == 0 ) {
69186918 WP11_Object_SetKeyGeneration (pbkdf2Key , pMechanism -> mechanism );
6919- rv = AddObject (session , pbkdf2Key , pTemplate , ulCount , phKey );
6920- if (rv != CKR_OK ) {
6921- WP11_Object_Free (pbkdf2Key );
6922- }
6919+ rv = SetInitialStates (pbkdf2Key );
69236920 } else {
6924- WP11_Object_Free (pbkdf2Key );
69256921 rv = CKR_FUNCTION_FAILED ;
69266922 }
6923+ if (rv == CKR_OK ) {
6924+ rv = AddObject (session , pbkdf2Key , pTemplate , ulCount , phKey );
6925+ }
6926+ if (rv != CKR_OK ) {
6927+ WP11_Object_Free (pbkdf2Key );
6928+ }
69276929 }
69286930
69296931 wc_ForceZero (derivedKey , derivedKeyLen );
69306932 XFREE (derivedKey , NULL , DYNAMIC_TYPE_TMP_BUFFER );
69316933
6932- if (rv == CKR_OK ) {
6933- rv = WP11_Object_GetAttr (pbkdf2Key , CKA_SENSITIVE , & getVar ,
6934- & getVarLen );
6935- if ((rv == CKR_OK ) && (getVar == CK_TRUE )) {
6936- rv = WP11_Object_SetAttr (pbkdf2Key , CKA_ALWAYS_SENSITIVE ,
6937- & trueVar , sizeof (CK_BBOOL ));
6938- }
6939- if (rv == CKR_OK ) {
6940- rv = WP11_Object_GetAttr (pbkdf2Key , CKA_EXTRACTABLE ,
6941- & getVar , & getVarLen );
6942- if ((rv == CKR_OK ) && (getVar == CK_FALSE )) {
6943- rv = WP11_Object_SetAttr (pbkdf2Key ,
6944- CKA_NEVER_EXTRACTABLE ,
6945- & trueVar , sizeof (CK_BBOOL ));
6946- }
6947- }
6948- }
6949-
69506934 return rv ;
69516935 }
69526936#ifdef WOLFPKCS11_NSS
@@ -7033,37 +7017,21 @@ CK_RV C_GenerateKey(CK_SESSION_HANDLE hSession,
70337017 ret = WP11_Object_SetSecretKey (pbeKey , secretKeyData , secretKeyLen );
70347018 if (ret == 0 ) {
70357019 WP11_Object_SetKeyGeneration (pbeKey , pMechanism -> mechanism );
7036- rv = AddObject (session , pbeKey , pTemplate , ulCount , phKey );
7037- if (rv != CKR_OK ) {
7038- WP11_Object_Free (pbeKey );
7039- }
7020+ rv = SetInitialStates (pbeKey );
70407021 } else {
7041- WP11_Object_Free (pbeKey );
70427022 rv = CKR_FUNCTION_FAILED ;
70437023 }
7024+ if (rv == CKR_OK ) {
7025+ rv = AddObject (session , pbeKey , pTemplate , ulCount , phKey );
7026+ }
7027+ if (rv != CKR_OK ) {
7028+ WP11_Object_Free (pbeKey );
7029+ }
70447030 }
70457031
70467032 wc_ForceZero (derivedKey , derivedKeyLen );
70477033 XFREE (derivedKey , NULL , DYNAMIC_TYPE_TMP_BUFFER );
70487034
7049- if (rv == CKR_OK ) {
7050- rv = WP11_Object_GetAttr (pbeKey , CKA_SENSITIVE , & getVar ,
7051- & getVarLen );
7052- if ((rv == CKR_OK ) && (getVar == CK_TRUE )) {
7053- rv = WP11_Object_SetAttr (pbeKey , CKA_ALWAYS_SENSITIVE ,
7054- & trueVar , sizeof (CK_BBOOL ));
7055- }
7056- if (rv == CKR_OK ) {
7057- rv = WP11_Object_GetAttr (pbeKey , CKA_EXTRACTABLE ,
7058- & getVar , & getVarLen );
7059- if ((rv == CKR_OK ) && (getVar == CK_FALSE )) {
7060- rv = WP11_Object_SetAttr (pbeKey ,
7061- CKA_NEVER_EXTRACTABLE ,
7062- & trueVar , sizeof (CK_BBOOL ));
7063- }
7064- }
7065- }
7066-
70677035 return rv ;
70687036 }
70697037#endif
@@ -9052,11 +9020,11 @@ CK_RV C_EncapsulateKey(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism,
90529020 secretKeyLen );
90539021 if (ret != 0 )
90549022 rv = CKR_FUNCTION_FAILED ;
9023+ if (rv == CKR_OK )
9024+ rv = SetInitialStates (secretObj );
90559025 if (rv == CKR_OK )
90569026 rv = AddObject (session , secretObj , pTemplate , ulAttributeCount ,
90579027 phKey );
9058- if (rv == CKR_OK )
9059- rv = SetInitialStates (secretObj );
90609028 }
90619029 if (rv != CKR_OK && secretObj != NULL ) {
90629030 WP11_Object_Free (secretObj );
@@ -9158,11 +9126,11 @@ CK_RV C_DecapsulateKey(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism,
91589126 secretKeyLen );
91599127 if (ret != 0 )
91609128 rv = CKR_FUNCTION_FAILED ;
9129+ if (rv == CKR_OK )
9130+ rv = SetInitialStates (secretObj );
91619131 if (rv == CKR_OK )
91629132 rv = AddObject (session , secretObj , pTemplate , ulAttributeCount ,
91639133 phKey );
9164- if (rv == CKR_OK )
9165- rv = SetInitialStates (secretObj );
91669134 }
91679135 if (rv != CKR_OK && secretObj != NULL ) {
91689136 WP11_Object_Free (secretObj );
0 commit comments