improvements around keystore key update

This commit is contained in:
JacobBarthelmeh
2022-03-17 10:01:27 -07:00
committed by Jacob Barthelmeh
parent 40c79b1134
commit 54477d1bea
2 changed files with 27 additions and 2 deletions

View File

@@ -382,6 +382,25 @@ static hsm_key_info_t KeyInfoToHSM(int keyInfoIn)
}
static int KeyFlagsToHSM(int flags)
{
int ret = 0;
#ifdef HSM_OP_KEY_GENERATION_FLAGS_UPDATE
if (flags & CAAM_UPDATE_KEY) {
ret = HSM_OP_KEY_GENERATION_FLAGS_UPDATE;
}
#endif
#ifdef HSM_OP_KEY_GENERATION_FLAGS_CREATE
if (flags & CAAM_GENERATE_KEY) {
ret = HSM_OP_KEY_GENERATION_FLAGS_CREATE;
}
#endif
return ret;
}
/* generic generate key with HSM
* return 0 on success
*/
@@ -395,6 +414,11 @@ int wc_SECO_GenerateKey(int flags, int group, byte* out, int outSz,
hsm_key_type_t keyType;
hsm_key_info_t keyInfo;
if (flags == CAAM_UPDATE_KEY && group != 0) {
WOLFSSL_MSG("Group must be 0 if updating key");
return BAD_FUNC_ARG;
}
keyType = KeyTypeToHSM(keyTypeIn);
keyInfo = KeyInfoToHSM(keyInfoIn);
@@ -415,7 +439,8 @@ int wc_SECO_GenerateKey(int flags, int group, byte* out, int outSz,
key_args.out_key = out;
/* default to strict operations with key in NVM */
key_args.flags = flags | HSM_OP_KEY_GENERATION_FLAGS_STRICT_OPERATION;
key_args.flags = KeyFlagsToHSM(flags) |
HSM_OP_KEY_GENERATION_FLAGS_STRICT_OPERATION;
key_args.key_group = group;
key_args.key_info = keyInfo;
key_args.key_type = keyType;

View File

@@ -93,7 +93,7 @@
#define CAAM_KEYTYPE_HMAC512 9
/* flags for key management */
#define CAAM_UPDATE_KEY 0
#define CAAM_UPDATE_KEY 1
#define CAAM_GENERATE_KEY 2
#define CAAM_DELETE_KEY 4