Use size of buffer for mac_size

Signed-off-by: Kusumit Ghoderao <Kusumit.Ghoderao@silabs.com>
This commit is contained in:
Kusumit Ghoderao 2023-06-08 16:36:45 +05:30
parent b821a5fd67
commit 109ee3de36

View File

@ -5527,26 +5527,21 @@ static psa_status_t psa_key_derivation_pbkdf2_generate_block(
pbkdf2->password, pbkdf2->password,
pbkdf2->password_length, pbkdf2->password_length,
prf_alg, U_i, prf_output_length, prf_alg, U_i, prf_output_length,
U_i, prf_output_length, U_i, sizeof(U_i),
&mac_output_length); &mac_output_length);
if (status != PSA_SUCCESS) { if (status != PSA_SUCCESS) {
goto cleanup; goto cleanup;
} }
// U1 xor U2 mbedtls_xor(U_accumulator, U_accumulator, U_i, prf_output_length);
for (j = 0; j < prf_output_length; j++) {
U_accumulator[j] ^= U_i[j];
}
} }
memcpy(pbkdf2->output_block, U_accumulator, prf_output_length); memcpy(pbkdf2->output_block, U_accumulator, prf_output_length);
cleanup: cleanup:
/* Zeroise buffers to clear sensitive data from memory. */ /* Zeroise buffers to clear sensitive data from memory. */
mbedtls_platform_zeroize(U_accumulator, PSA_HASH_MAX_SIZE); mbedtls_platform_zeroize(U_accumulator, PSA_MAC_MAX_SIZE);
mbedtls_platform_zeroize(U_i, PSA_HASH_MAX_SIZE); mbedtls_platform_zeroize(U_i, PSA_MAC_MAX_SIZE);
mbedtls_platform_zeroize(input, pbkdf2->salt_length + 4);
mbedtls_free(input);
return status; return status;
} }