@@ -2336,23 +2336,24 @@ int WP11_Object_Copy(WP11_Object *src, WP11_Object *dest)
23362336 dest -> category = src -> category ;
23372337 dest -> devId = src -> devId ;
23382338
2339- if (src -> objClass == CKO_CERTIFICATE ) {
2339+ #if defined(WOLFPKCS11_NSS )
2340+ if (src -> objClass == CKO_CERTIFICATE || src -> objClass == CKO_NSS_TRUST ) {
23402341 return BAD_FUNC_ARG ;
23412342 }
2342- #ifdef WOLFPKCS11_NSS
2343- else if (src -> objClass == CKO_NSS_TRUST ) {
2343+ #else
2344+ if (src -> objClass == CKO_CERTIFICATE ) {
23442345 return BAD_FUNC_ARG ;
23452346 }
23462347#endif
2347- else {
2348+
23482349#ifdef WOLFPKCS11_TPM
2349- /* Handle TPM keys - copy tpmKey structure directly */
2350- if (src -> opFlag & WP11_FLAG_TPM ) {
2351- /* Copy the TPM key blob structure directly */
2352- XMEMCPY (dest -> tpmKey , src -> tpmKey , sizeof (WOLFTPM2_KEYBLOB ));
2350+ /* Handle TPM keys - copy tpmKey structure directly */
2351+ if (src -> opFlag & WP11_FLAG_TPM ) {
2352+ /* Copy the TPM key blob structure directly */
2353+ XMEMCPY (dest -> tpmKey , src -> tpmKey , sizeof (WOLFTPM2_KEYBLOB ));
23532354
2354- /* Initialize TPM handle to NULL for the destination */
2355- dest -> tpmKey -> handle .hndl = TPM_RH_NULL ;
2355+ /* Initialize TPM handle to NULL for the destination */
2356+ dest -> tpmKey -> handle .hndl = TPM_RH_NULL ;
23562357
23572358 /* Initialize the wolf key structures based on key type */
23582359 switch (src -> type ) {
@@ -2395,12 +2396,13 @@ int WP11_Object_Copy(WP11_Object *src, WP11_Object *dest)
23952396 }
23962397 }
23972398 }
2398- else
2399+ }
2400+ else
23992401#endif
2400- {
2401- switch (src -> type ) {
2402+ {
2403+ switch (src -> type ) {
24022404#ifndef NO_RSA
2403- case CKK_RSA : {
2405+ case CKK_RSA : {
24042406 byte * derBuf = NULL ;
24052407 int derSz = 0 ;
24062408
@@ -4739,14 +4741,17 @@ static int wp11_Object_Encode(WP11_Object* object, int protect)
47394741{
47404742 int ret ;
47414743
4744+ int is_plain_class ;
4745+
47424746#ifdef WOLFPKCS11_NSS
4743- if ((object -> objClass == CKO_CERTIFICATE ) ||
4744- (object -> objClass == CKO_NSS_TRUST ))
4747+ is_plain_class = (object -> objClass == CKO_CERTIFICATE ) ||
4748+ (object -> objClass == CKO_NSS_TRUST ) ||
4749+ (object -> objClass == CKO_DATA );
47454750#else
4746- if (object -> objClass == CKO_CERTIFICATE )
4751+ is_plain_class = (object -> objClass == CKO_CERTIFICATE ) ||
4752+ (object -> objClass == CKO_DATA );
47474753#endif
4748- ret = 0 ;
4749- else if (object -> objClass == CKO_DATA ) {
4754+ if (is_plain_class ) {
47504755 ret = 0 ;
47514756 }
47524757 else {
@@ -8957,15 +8962,14 @@ int WP11_Object_GetAttr(WP11_Object* object, CK_ATTRIBUTE_TYPE type, byte* data,
89578962 ret = NOT_AVAILABLE_E ;
89588963#endif
89598964 }
8960- else if (object -> objClass == CKO_SECRET_KEY ) {
89618965#ifdef HAVE_AESECB
8966+ else if (object -> objClass == CKO_SECRET_KEY ) {
89628967 ret = GetEcbCheckValue (object , data , len );
8963- #else
8964- ret = NOT_AVAILABLE_E ;
8965- #endif
89668968 }
8967- else
8969+ #endif
8970+ else {
89688971 ret = NOT_AVAILABLE_E ;
8972+ }
89698973 break ;
89708974
89718975 default :
@@ -9298,11 +9302,9 @@ int WP11_Object_SetAttr(WP11_Object* object, CK_ATTRIBUTE_TYPE type, byte* data,
92989302 }
92999303 break ;
93009304 case CKA_VALUE :
9301- if (object -> objClass == CKO_CERTIFICATE ) {
9302- break ; /* Handled in WP11_Object_SetCert */
9303- }
9304- else if (object -> objClass == CKO_DATA ) {
9305- break ; /* Handled in WP11_Object_SetDataObject */
9305+ if ((object -> objClass == CKO_CERTIFICATE ) ||
9306+ (object -> objClass == CKO_DATA )) {
9307+ break ; /* Handled in WP11_Object_SetCert/DataObject */
93069308 }
93079309 switch (object -> type ) {
93089310#ifdef HAVE_ECC
@@ -9325,18 +9327,8 @@ int WP11_Object_SetAttr(WP11_Object* object, CK_ATTRIBUTE_TYPE type, byte* data,
93259327 }
93269328 break ;
93279329 case CKA_APPLICATION :
9328- if (object -> objClass == CKO_DATA ) {
9329- /* Handled in WP11_Object_DataObject */
9330- }
9331- else {
9332- ret = BAD_FUNC_ARG ;
9333- }
9334- break ;
93359330 case CKA_OBJECT_ID :
9336- if (object -> objClass == CKO_DATA ) {
9337- /* Handled in WP11_Object_DataObject */
9338- }
9339- else {
9331+ if (object -> objClass != CKO_DATA ) {
93409332 ret = BAD_FUNC_ARG ;
93419333 }
93429334 break ;
0 commit comments