Skip to content

Commit 083cea8

Browse files
committed
Fixes the issues for p_local_crypt not being cleared.
1 parent 1919112 commit 083cea8

File tree

2 files changed

+24
-13
lines changed

2 files changed

+24
-13
lines changed

src/platform/Infineon/crypto/trustm/CHIPCryptoPALHsm_P256_trustm.cpp

+4-3
Original file line numberDiff line numberDiff line change
@@ -252,15 +252,16 @@ CHIP_ERROR P256Keypair::ECDH_derive_secret(const P256PublicKey & remote_public_k
252252

253253
return_status = trustm_ecdh_derive_secret(OPTIGA_KEY_ID_E100, (uint8_t *) remote_key, (uint16_t) rem_pubKeyLen + 3,
254254
out_secret.Bytes(), (uint8_t) secret_length);
255-
256255
VerifyOrExit(return_status == OPTIGA_LIB_SUCCESS, error = CHIP_ERROR_INTERNAL);
256+
out_secret.SetLength(secret_length);
257+
error = CHIP_NO_ERROR;
257258

258-
exit:
259+
exit:
259260
if (error != CHIP_NO_ERROR)
260261
{
261262
trustm_close();
262263
}
263-
return out_secret.SetLength(secret_length);
264+
return error;
264265
#endif
265266
}
266267

src/platform/Infineon/crypto/trustm/CHIPCryptoPALHsm_utils_trustm.cpp

+20-10
Original file line numberDiff line numberDiff line change
@@ -426,8 +426,9 @@ optiga_lib_status_t deriveKey_HKDF(const uint8_t * salt, uint16_t salt_length, c
426426
break;
427427
}
428428

429-
while (optiga_lib_status == OPTIGA_LIB_BUSY)
429+
while (p_local_crypt->instance_state != OPTIGA_LIB_INSTANCE_FREE)
430430
;
431+
431432
if (OPTIGA_LIB_SUCCESS != optiga_lib_status)
432433
{
433434
// optiga_crypt_hkdf failed
@@ -539,8 +540,9 @@ optiga_lib_status_t hmac_sha256(optiga_hmac_type_t type, const uint8_t * input_d
539540
break;
540541
}
541542

542-
while (optiga_lib_status == OPTIGA_LIB_BUSY)
543+
while (p_local_crypt->instance_state != OPTIGA_LIB_INSTANCE_FREE)
543544
;
545+
544546
if (OPTIGA_LIB_SUCCESS != optiga_lib_status)
545547
{
546548
// optiga_crypt_hkdf failed
@@ -578,8 +580,9 @@ optiga_lib_status_t optiga_crypt_rng(uint8_t * random_data, uint16_t random_data
578580
break;
579581
}
580582

581-
while (optiga_lib_status == OPTIGA_LIB_BUSY)
583+
while (p_local_crypt->instance_state != OPTIGA_LIB_INSTANCE_FREE)
582584
;
585+
583586
if (OPTIGA_LIB_SUCCESS != optiga_lib_status)
584587
{
585588
// optiga_crypt_random failed
@@ -626,7 +629,7 @@ optiga_lib_status_t trustm_ecc_keygen(uint16_t optiga_key_id, uint8_t key_type,
626629
break;
627630
}
628631

629-
while (optiga_lib_status == OPTIGA_LIB_BUSY)
632+
while (p_local_crypt->instance_state != OPTIGA_LIB_INSTANCE_FREE)
630633
;
631634

632635
} while (0);
@@ -696,8 +699,10 @@ optiga_lib_status_t trustm_hash(uint8_t * msg, uint16_t msg_length, uint8_t * di
696699
optiga_lib_print_message("optiga_crypt_hash api returns error !!!", OPTIGA_UTIL_SERVICE, OPTIGA_UTIL_SERVICE_COLOR);
697700
break;
698701
}
699-
while (optiga_lib_status == OPTIGA_LIB_BUSY)
702+
703+
while (p_local_crypt->instance_state != OPTIGA_LIB_INSTANCE_FREE)
700704
;
705+
701706
} while (0);
702707

703708
if (p_local_crypt)
@@ -729,7 +734,8 @@ optiga_lib_status_t trustm_ecdsa_sign(optiga_key_id_t optiga_key_id, uint8_t * d
729734
OPTIGA_UTIL_SERVICE_COLOR);
730735
break;
731736
}
732-
while (optiga_lib_status == OPTIGA_LIB_BUSY)
737+
738+
while (p_local_crypt->instance_state != OPTIGA_LIB_INSTANCE_FREE)
733739
;
734740

735741
for (i = (*signature_length - 1); i >= 0; i--)
@@ -803,8 +809,10 @@ optiga_lib_status_t trustm_ecdsa_verify(uint8_t * digest, uint8_t digest_length,
803809
OPTIGA_UTIL_SERVICE_COLOR);
804810
break;
805811
}
806-
while (optiga_lib_status == OPTIGA_LIB_BUSY)
812+
813+
while (p_local_crypt->instance_state != OPTIGA_LIB_INSTANCE_FREE)
807814
;
815+
808816
} while (0);
809817

810818
if (p_local_crypt)
@@ -896,8 +904,10 @@ optiga_lib_status_t trustm_ecdh_derive_secret(optiga_key_id_t optiga_key_id, uin
896904
optiga_lib_print_message("optiga_crypt_ecdh api returns error !!!", OPTIGA_UTIL_SERVICE, OPTIGA_UTIL_SERVICE_COLOR);
897905
break;
898906
}
899-
while (optiga_lib_status == OPTIGA_LIB_BUSY)
907+
908+
while (p_local_crypt->instance_state != OPTIGA_LIB_INSTANCE_FREE)
900909
;
910+
901911
} while (0);
902912

903913
if (p_local_crypt)
@@ -957,9 +967,9 @@ optiga_lib_status_t trustm_PBKDF2_HMAC(const unsigned char * salt, size_t slen,
957967
}
958968
}
959969

960-
while (optiga_lib_status == OPTIGA_LIB_BUSY)
970+
while (p_local_crypt->instance_state != OPTIGA_LIB_INSTANCE_FREE)
961971
;
962-
972+
963973
if (OPTIGA_LIB_SUCCESS != optiga_lib_status)
964974

965975
{

0 commit comments

Comments
 (0)