diff options
Diffstat (limited to 'hal_internal.h')
-rw-r--r-- | hal_internal.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/hal_internal.h b/hal_internal.h index 5e6b939..e92f22a 100644 --- a/hal_internal.h +++ b/hal_internal.h @@ -255,6 +255,7 @@ extern hal_error_t hal_rpc_pkcs1_construct_digestinfo(const hal_hash_handle_t ha /* * UUID stuff. All UUIDs we use (or are likely to use) are type 4 "random" UUIDs + * Some of this may need to move to hal.h. */ #define HAL_UUID_TEXT_SIZE (sizeof("00112233-4455-6677-8899-aabbccddeeff")) @@ -271,6 +272,28 @@ extern hal_error_t hal_uuid_parse(hal_uuid_t *uuid, const char * const string); extern hal_error_t hal_uuid_format(const hal_uuid_t * const uuid, char *buffer, const size_t buffer_len); /* + * CRC-32 stuff (for flash keystore, etc). Dunno if we want a Verilog + * implementation of this, or if it would even be faster than doing it + * the main CPU taking I/O overhead and so forth into account. + * + * These prototypes were generated by pycrc.py, see notes in crc32.c. + */ + +typedef uint32_t hal_crc32_t; + +static inline hal_crc32_t hal_crc32_init(void) +{ + return 0xffffffff; +} + +extern hal_crc32_t hal_crc32_update(hal_crc32_t crc, const void *data, size_t data_len); + +static inline hal_crc32_t hal_crc32_finalize(hal_crc32_t crc) +{ + return crc ^ 0xffffffff; +} + +/* * Keystore API. */ |