aboutsummaryrefslogtreecommitdiff
path: root/hal_internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'hal_internal.h')
-rw-r--r--hal_internal.h23
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.
*/