diff options
-rw-r--r-- | chip/host/trng.c | 6 | ||||
-rw-r--r-- | chip/stm32/trng.c | 22 | ||||
-rw-r--r-- | common/fpsensor/fpsensor.c | 26 | ||||
-rw-r--r-- | common/rollback.c | 6 | ||||
-rw-r--r-- | include/trng.h | 12 | ||||
-rw-r--r-- | third_party/boringssl/common/curve25519.c | 2 |
6 files changed, 38 insertions, 36 deletions
diff --git a/chip/host/trng.c b/chip/host/trng.c index cb69268e34..8407aa6ea1 100644 --- a/chip/host/trng.c +++ b/chip/host/trng.c @@ -21,17 +21,17 @@ static unsigned int seed; -test_mockable void trng_init(void) +test_mockable void init_trng(void) { seed = 0; srand(seed); } -test_mockable void trng_exit(void) +test_mockable void exit_trng(void) { } -test_mockable void trng_rand_bytes(void *buffer, size_t len) +test_mockable void rand_bytes(void *buffer, size_t len) { uint8_t *b, *end; diff --git a/chip/stm32/trng.c b/chip/stm32/trng.c index 447ccbccad..48d5335c53 100644 --- a/chip/stm32/trng.c +++ b/chip/stm32/trng.c @@ -15,7 +15,7 @@ #include "trng.h" #include "util.h" -uint32_t trng_rand(void) +uint32_t rand(void) { int tries = 300; /* Wait for a valid random number */ @@ -28,10 +28,10 @@ uint32_t trng_rand(void) return STM32_RNG_DR; } -test_mockable void trng_rand_bytes(void *buffer, size_t len) +test_mockable void rand_bytes(void *buffer, size_t len) { while (len) { - uint32_t number = trng_rand(); + uint32_t number = rand(); size_t cnt = 4; /* deal with the lack of alignment guarantee in the API */ uintptr_t align = (uintptr_t)buffer & 3; @@ -47,7 +47,7 @@ test_mockable void trng_rand_bytes(void *buffer, size_t len) } } -test_mockable void trng_init(void) +test_mockable void init_trng(void) { #ifdef CHIP_FAMILY_STM32L4 /* Enable the 48Mhz internal RC oscillator */ @@ -84,7 +84,7 @@ test_mockable void trng_init(void) STM32_RNG_CR |= STM32_RNG_CR_RNGEN; } -test_mockable void trng_exit(void) +test_mockable void exit_trng(void) { STM32_RNG_CR &= ~STM32_RNG_CR_RNGEN; STM32_RCC_AHB2ENR &= ~STM32_RCC_AHB2ENR_RNGEN; @@ -107,9 +107,9 @@ static int command_rand(int argc, char **argv) { uint8_t data[32]; - trng_init(); - trng_rand_bytes(data, sizeof(data)); - trng_exit(); + init_trng(); + rand_bytes(data, sizeof(data)); + exit_trng(); ccprintf("rand %ph\n", HEX_BUF(data, sizeof(data))); @@ -130,9 +130,9 @@ static enum ec_status host_command_rand(struct host_cmd_handler_args *args) if (num_rand_bytes > args->response_max) return EC_RES_OVERFLOW; - trng_init(); - trng_rand_bytes(r->rand, num_rand_bytes); - trng_exit(); + init_trng(); + rand_bytes(r->rand, num_rand_bytes); + exit_trng(); args->response_size = num_rand_bytes; diff --git a/common/fpsensor/fpsensor.c b/common/fpsensor/fpsensor.c index a491e1af84..12904c0b39 100644 --- a/common/fpsensor/fpsensor.c +++ b/common/fpsensor/fpsensor.c @@ -472,11 +472,11 @@ static enum ec_status fp_command_frame(struct host_cmd_handler_args *args) */ enc_info = (void *)fp_enc_buffer; enc_info->struct_version = FP_TEMPLATE_FORMAT_VERSION; - trng_init(); - trng_rand_bytes(enc_info->nonce, FP_CONTEXT_NONCE_BYTES); - trng_rand_bytes(enc_info->encryption_salt, - FP_CONTEXT_ENCRYPTION_SALT_BYTES); - trng_exit(); + init_trng(); + rand_bytes(enc_info->nonce, FP_CONTEXT_NONCE_BYTES); + rand_bytes(enc_info->encryption_salt, + FP_CONTEXT_ENCRYPTION_SALT_BYTES); + exit_trng(); if (fgr == template_newly_enrolled) { /* @@ -485,10 +485,10 @@ static enum ec_status fp_command_frame(struct host_cmd_handler_args *args) * value. */ template_newly_enrolled = FP_NO_SUCH_TEMPLATE; - trng_init(); - trng_rand_bytes(fp_positive_match_salt[fgr], - FP_POSITIVE_MATCH_SALT_BYTES); - trng_exit(); + init_trng(); + rand_bytes(fp_positive_match_salt[fgr], + FP_POSITIVE_MATCH_SALT_BYTES); + exit_trng(); } ret = derive_encryption_key(key, enc_info->encryption_salt); @@ -647,10 +647,10 @@ static enum ec_status fp_command_template(struct host_cmd_handler_args *args) sizeof(fp_template[0])); if (template_needs_validation_value(enc_info)) { CPRINTS("fgr%d: Generating positive match salt.", idx); - trng_init(); - trng_rand_bytes(positive_match_salt, - FP_POSITIVE_MATCH_SALT_BYTES); - trng_exit(); + init_trng(); + rand_bytes(positive_match_salt, + FP_POSITIVE_MATCH_SALT_BYTES); + exit_trng(); } if (bytes_are_trivial(positive_match_salt, sizeof(fp_positive_match_salt[0]))) { diff --git a/common/rollback.c b/common/rollback.c index 3f9e176782..984058c49a 100644 --- a/common/rollback.c +++ b/common/rollback.c @@ -400,9 +400,9 @@ static void add_entropy_deferred(void) if (add_entropy_action == ADD_ENTROPY_RESET_ASYNC) repeat = ROLLBACK_REGIONS; - trng_init(); + init_trng(); do { - trng_rand_bytes(rand, sizeof(rand)); + rand_bytes(rand, sizeof(rand)); if (rollback_add_entropy(rand, sizeof(rand)) != EC_SUCCESS) { add_entropy_rv = EC_RES_ERROR; goto out; @@ -411,7 +411,7 @@ static void add_entropy_deferred(void) add_entropy_rv = EC_RES_SUCCESS; out: - trng_exit(); + exit_trng(); } DECLARE_DEFERRED(add_entropy_deferred); diff --git a/include/trng.h b/include/trng.h index 969366ae8e..cea4555b41 100644 --- a/include/trng.h +++ b/include/trng.h @@ -14,30 +14,32 @@ * * Not supported by all platforms. **/ -void trng_init(void); +void init_trng(void); /** * Shutdown the true random number generator. * - * The opposite operation of trng_init(), disable the hardware resources + * The opposite operation of init_trng(), disable the hardware resources * used by the TRNG to save power. * * Not supported by all platforms. **/ -void trng_exit(void); +void exit_trng(void); /** * Retrieve a 32 bit random value. * * Not supported on all platforms. **/ -uint32_t trng_rand(void); +#ifndef HIDE_EC_STDLIB +uint32_t rand(void); +#endif /** * Output len random bytes into buffer. * * Not supported on all platforms. **/ -void trng_rand_bytes(void *buffer, size_t len); +void rand_bytes(void *buffer, size_t len); #endif /* __EC_INCLUDE_TRNG_H */ diff --git a/third_party/boringssl/common/curve25519.c b/third_party/boringssl/common/curve25519.c index b74d3c7d97..2a7fad6509 100644 --- a/third_party/boringssl/common/curve25519.c +++ b/third_party/boringssl/common/curve25519.c @@ -27,7 +27,7 @@ #ifdef CONFIG_RNG void X25519_keypair(uint8_t out_public_value[32], uint8_t out_private_key[32]) { - trng_rand_bytes(out_private_key, 32); + rand_bytes(out_private_key, 32); /* All X25519 implementations should decode scalars correctly (see * https://tools.ietf.org/html/rfc7748#section-5). However, if an |