mirror of https://github.com/ARMmbed/mbed-os.git
Fix for generate_key_by_trng
parent
13589fdc0e
commit
bf9b2cb6c7
|
@ -229,7 +229,7 @@ finish:
|
||||||
return DEVICEKEY_SUCCESS;
|
return DEVICEKEY_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
int DeviceKey::generate_key_by_trng(uint32_t *output, size_t& size)
|
int DeviceKey::generate_key_by_trng(uint32_t *output, size_t size)
|
||||||
{
|
{
|
||||||
#if defined(DEVICE_TRNG)
|
#if defined(DEVICE_TRNG)
|
||||||
size_t in_size;
|
size_t in_size;
|
||||||
|
@ -249,14 +249,13 @@ int DeviceKey::generate_key_by_trng(uint32_t *output, size_t& size)
|
||||||
|
|
||||||
trng_init(&trng_obj);
|
trng_init(&trng_obj);
|
||||||
|
|
||||||
final_size = 0;
|
//final_size = 0;
|
||||||
in_size = size;
|
in_size = size;
|
||||||
while (final_size < size) {
|
while (in_size > 0) {
|
||||||
|
|
||||||
ongoing_size = 0;
|
ongoing_size = 0;
|
||||||
ret = trng_get_bytes(&trng_obj, (unsigned char *)pBuffer, in_size, &ongoing_size);
|
ret = trng_get_bytes(&trng_obj, (unsigned char *)pBuffer, in_size, &ongoing_size);
|
||||||
final_size += ongoing_size;
|
if (0 != ret || ongoing_size > in_size) {
|
||||||
if (0 != ret) {
|
|
||||||
ret = DEVICEKEY_TRNG_ERROR;
|
ret = DEVICEKEY_TRNG_ERROR;
|
||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
|
|
|
@ -131,7 +131,7 @@ private:
|
||||||
* output: the actual written size to the buffer
|
* output: the actual written size to the buffer
|
||||||
* @return 0 on success, negative error code on failure
|
* @return 0 on success, negative error code on failure
|
||||||
*/
|
*/
|
||||||
int generate_key_by_trng(uint32_t *output, size_t& size);
|
int generate_key_by_trng(uint32_t *output, size_t size);
|
||||||
|
|
||||||
};
|
};
|
||||||
/** @}*/
|
/** @}*/
|
||||||
|
|
Loading…
Reference in New Issue