From 39db721f9ace13cc210278c88c3f364b5d67b5b8 Mon Sep 17 00:00:00 2001 From: Nicolas Boichat Date: Wed, 31 May 2017 12:12:12 +0800 Subject: hammer: Add board_get_entropy function (and test) This function will be used to generate some entropy using the Clock Recovery System. BRANCH=none BUG=b:38486828 TEST=make BOARD=hammer -j tests ./util/flash_ec --board=hammer --image=build/hammer/test-entropy.bin EC console: runtest TEST=Test fails when no USB connection is active TEST=Test passes when USB connection is active TEST=Pasting the values into: tr ';' '\n' | awk 'BEGIN { e = 0; tot=16384.0 } { p = $1/tot; if (p > 0) { e -= p*log(p)/log(2) } } END { print e }' shows an entropy > 4 bits per sample. Change-Id: I2363c7bce42c72c33ef0bf3f099d709ee9c13d13 Reviewed-on: https://chromium-review.googlesource.com/518608 Commit-Ready: Nicolas Boichat Tested-by: Nicolas Boichat Reviewed-by: Vincent Palatin --- include/rollback.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'include/rollback.h') diff --git a/include/rollback.h b/include/rollback.h index e33403b330..51f945e089 100644 --- a/include/rollback.h +++ b/include/rollback.h @@ -44,6 +44,19 @@ int rollback_add_entropy(uint8_t *data, unsigned int len); */ int rollback_lock(void); +/** + * Obtain some weak entropy (i.e. not guaranteed to be high quality), based on + * sensors or timing events. + * + * Must be defined if CONFIG_ROLLBACK_SECRET_SIZE is set. May sleep. + * + * @param buffer Buffer to fill with entropy. + * @param len Buffer length. + * + * @return true if the buffer was filled, false on error. + */ +int board_get_entropy(void *buffer, int len); + #endif #endif /* __CROS_EC_ROLLBACK_H */ -- cgit v1.2.1