diff options
Diffstat (limited to 'hal_internal.h')
-rw-r--r-- | hal_internal.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/hal_internal.h b/hal_internal.h index 9896ac0..0c38c00 100644 --- a/hal_internal.h +++ b/hal_internal.h @@ -250,7 +250,7 @@ extern const hal_rpc_pkey_dispatch_t hal_rpc_local_pkey_dispatch, hal_rpc_remote * one for RSA keys, one for EC keys, because the RSA keys are so much * larger than the EC keys. This led to unnecessarily complex and * duplicated code, so for now we treat all keys the same, and waste - * the unneded space in the case of EC keys. + * the unneeded space in the case of EC keys. * * Sizes for ASN.1-encoded keys, this may not be exact due to ASN.1 * INTEGER encoding rules but should be good enough for buffer sizing: @@ -277,15 +277,19 @@ extern const hal_rpc_pkey_dispatch_t hal_rpc_local_pkey_dispatch, hal_rpc_remote #define HAL_STATIC_PKEY_STATE_BLOCKS 0 #endif +/* This struct is ordered such that all metadata appears before the + * big buffers, in order for all metadata to be loaded with a single + * page read from e.g. the ks_flash module. + */ typedef struct { hal_key_type_t type; hal_curve_name_t curve; hal_key_flags_t flags; - uint8_t name[HAL_RPC_PKEY_NAME_MAX]; + uint8_t in_use; size_t name_len; - uint8_t der[HAL_KS_WRAPPED_KEYSIZE]; size_t der_len; - uint8_t in_use; + uint8_t name[HAL_RPC_PKEY_NAME_MAX]; + uint8_t der[HAL_KS_WRAPPED_KEYSIZE]; } hal_ks_key_t; #ifndef HAL_PIN_SALT_LENGTH @@ -302,6 +306,8 @@ typedef struct { #if HAL_STATIC_PKEY_STATE_BLOCKS > 0 hal_ks_key_t keys[HAL_STATIC_PKEY_STATE_BLOCKS]; +#else + #warning No keys in keydb #endif hal_ks_pin_t wheel_pin; |