[Cryptech-Commits] [sw/stm32] 02/02: Tweak CLI keystore commands for latest libhal RPC keystore API.

git at cryptech.is git at cryptech.is
Tue Nov 1 17:41:21 UTC 2016


This is an automated email from the git hooks/post-receive script.

sra at hactrn.net pushed a commit to branch ksng
in repository sw/stm32.

commit 42d98519724319a3fad92fc40cca5aefa30276d7
Author: Rob Austein <sra at hactrn.net>
AuthorDate: Tue Nov 1 12:21:17 2016 -0400

    Tweak CLI keystore commands for latest libhal RPC keystore API.
    
    Using {-1} as a client handle in the CLI is a kludge, but the new
    stricter libhal keystore code really wants us to be consistent about
    this, so as long as any part of the CLI is using client {-1}, it all
    needs to do so.
    
    This still isn't really right, the CLI probably needs a different set
    of access rules than those which apply to the RPC calls, but I'm
    deferring that until we know what the "final" (for this branch)
    version of the RPC API looks like, and have done whatever refactoring
    might be required in the libhal keystore drivers.
---
 projects/hsm/mgmt-keystore.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/projects/hsm/mgmt-keystore.c b/projects/hsm/mgmt-keystore.c
index e9f27af..6f20fdd 100644
--- a/projects/hsm/mgmt-keystore.c
+++ b/projects/hsm/mgmt-keystore.c
@@ -139,7 +139,7 @@ static int cmd_keystore_set_pin_iterations(struct cli_def *cli, const char *comm
 
 static int cmd_keystore_delete_key(struct cli_def *cli, const char *command, char *argv[], int argc)
 {
-    const hal_client_handle_t  client  = { HAL_HANDLE_NONE };
+    const hal_client_handle_t  client  = { -1 };
     const hal_session_handle_t session = { HAL_HANDLE_NONE };
     hal_pkey_handle_t pkey = { HAL_HANDLE_NONE };
     hal_error_t status;
@@ -156,8 +156,12 @@ static int cmd_keystore_delete_key(struct cli_def *cli, const char *command, cha
 	return CLI_ERROR;
     }
 
-    if ((status = hal_rpc_pkey_find(client, session, &pkey, &name, HAL_KEY_FLAG_TOKEN)) != LIBHAL_OK ||
-	(status = hal_rpc_pkey_delete(pkey)) != LIBHAL_OK) {
+    status = hal_rpc_pkey_find(client, session, &pkey, &name, HAL_KEY_FLAG_TOKEN);
+
+    if (status == HAL_ERROR_KEY_NOT_FOUND)
+	status = hal_rpc_pkey_find(client, session, &pkey, &name, 0);
+
+    if (status != LIBHAL_OK || (status = hal_rpc_pkey_delete(pkey)) != LIBHAL_OK) {
 	cli_print(cli, "Failed deleting key: %s", hal_error_string(status));
 	return CLI_ERROR;
     }
@@ -206,11 +210,11 @@ static int show_keys(struct cli_def *cli, const hal_pkey_info_t * const keys, co
 
 static int cmd_keystore_show_keys(struct cli_def *cli, const char *command, char *argv[], int argc)
 {
-    hal_pkey_info_t keys[64];
+    hal_pkey_info_t keys[128];
     unsigned n;
     hal_error_t status;
-    hal_client_handle_t client = {HAL_HANDLE_NONE};
-    hal_session_handle_t session = {HAL_HANDLE_NONE};
+    hal_client_handle_t  client  = { -1 };
+    hal_session_handle_t session = { HAL_HANDLE_NONE };
 
     if ((status = hal_rpc_pkey_list(client, session, keys, &n, sizeof(keys)/sizeof(*keys),
 				    0)) != LIBHAL_OK) {



More information about the Commits mailing list