aboutsummaryrefslogtreecommitdiff
path: root/projects/hsm/mgmt-keystore.c
diff options
context:
space:
mode:
authorPaul Selkirk <paul@psgd.org>2018-02-26 16:06:42 -0500
committerPaul Selkirk <paul@psgd.org>2018-02-26 16:06:42 -0500
commit1ceb5752a309397799e9ef4a99ff1b327fc42a8d (patch)
treec61b1b29940a5831935f7aba856f659b850fcddc /projects/hsm/mgmt-keystore.c
parent14e17e6efd19622fbec6be8270be2c30a6b07920 (diff)
Implement hash-based signatures, per draft-mcgrew-hash-sigs-08.txt
Diffstat (limited to 'projects/hsm/mgmt-keystore.c')
-rw-r--r--projects/hsm/mgmt-keystore.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/projects/hsm/mgmt-keystore.c b/projects/hsm/mgmt-keystore.c
index b79a5fe..a7fdffe 100644
--- a/projects/hsm/mgmt-keystore.c
+++ b/projects/hsm/mgmt-keystore.c
@@ -180,6 +180,8 @@ static int cmd_keystore_delete_key(struct cli_def *cli, const char *command, cha
return CLI_OK;
}
+#include "ks.h"
+
static int show_keys(struct cli_def *cli, const char *title)
{
const hal_client_handle_t client = { -1 };
@@ -198,6 +200,16 @@ static int show_keys(struct cli_def *cli, const char *title)
cli_print(cli, title);
+ size_t avail;
+ if ((status = hal_ks_available(hal_ks_token, &avail)) == HAL_OK)
+ cli_print(cli, "Token keystore: %d available", avail);
+ else
+ cli_print(cli, "Error reading token keystore: %s", hal_error_string(status));
+ if ((status = hal_ks_available(hal_ks_volatile, &avail)) == HAL_OK)
+ cli_print(cli, "Volatile keystore: %d available", avail);
+ else
+ cli_print(cli, "Error reading volatile keystore: %s", hal_error_string(status));
+
while (!done) {
if ((status = hal_rpc_pkey_match(client, session, HAL_KEY_TYPE_NONE, HAL_CURVE_NONE,
@@ -248,6 +260,10 @@ static int show_keys(struct cli_def *cli, const char *title)
case HAL_KEY_TYPE_RSA_PUBLIC: type_name = "RSA public"; break;
case HAL_KEY_TYPE_EC_PRIVATE: type_name = "EC private"; break;
case HAL_KEY_TYPE_EC_PUBLIC: type_name = "EC public"; break;
+ case HAL_KEY_TYPE_HASHSIG_PRIVATE: type_name = "hashsig private"; break;
+ case HAL_KEY_TYPE_HASHSIG_PUBLIC: type_name = "hashsig public"; break;
+ case HAL_KEY_TYPE_HASHSIG_LMS: type_name = "hashsig lms"; break;
+ case HAL_KEY_TYPE_HASHSIG_LMOTS: type_name = "hashsig lmots"; break;
}
const char *curve_name = "unknown";