From e86828f46493b322e7a595f91fa8a73855f9a6a7 Mon Sep 17 00:00:00 2001 From: Jens Wiklander Date: Thu, 9 Apr 2020 13:18:58 +0200 Subject: ta: pkcs11: helper to update token persistent database update_persistent_db() updates the persistent database or panics on failure. Acked-by: Rouven Czerwinski Co-developed-by: Etienne Carriere Signed-off-by: Etienne Carriere Signed-off-by: Jens Wiklander --- ta/pkcs11/src/persistent_token.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'ta/pkcs11/src/persistent_token.c') diff --git a/ta/pkcs11/src/persistent_token.c b/ta/pkcs11/src/persistent_token.c index 29c701e7..d3c1fbae 100644 --- a/ta/pkcs11/src/persistent_token.c +++ b/ta/pkcs11/src/persistent_token.c @@ -73,6 +73,26 @@ static TEE_Result open_pin_file(struct ck_token *token, 0, out_hdl); } +void update_persistent_db(struct ck_token *token) +{ + TEE_Result res = TEE_ERROR_GENERIC; + TEE_ObjectHandle db_hdl = TEE_HANDLE_NULL; + + res = open_db_file(token, &db_hdl); + if (res) { + EMSG("Failed to open token persistent db: %#"PRIx32, res); + TEE_Panic(0); + } + res = TEE_WriteObjectData(db_hdl, token->db_main, + sizeof(*token->db_main)); + if (res) { + EMSG("Failed to write to token persistent db: %#"PRIx32, res); + TEE_Panic(0); + } + + TEE_CloseObject(db_hdl); +} + static enum pkcs11_rc do_hash(uint32_t user, const uint8_t *pin, size_t pin_size, uint32_t salt, uint8_t hash[TEE_MAX_HASH_SIZE]) -- cgit v1.2.3