[Cryptech-Commits] [sw/stm32] 02/02: Implement hash-based signatures, per draft-mcgrew-hash-sigs-08.txt

git at cryptech.is git at cryptech.is
Tue Feb 27 17:08:28 UTC 2018


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

paul at psgd.org pushed a commit to branch hashsig
in repository sw/stm32.

commit 1ceb5752a309397799e9ef4a99ff1b327fc42a8d
Author: Paul Selkirk <paul at psgd.org>
AuthorDate: Mon Feb 26 16:06:42 2018 -0500

    Implement hash-based signatures, per draft-mcgrew-hash-sigs-08.txt
---
 projects/hsm/hsm.c           |  9 +--------
 projects/hsm/mgmt-keystore.c | 16 ++++++++++++++++
 2 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/projects/hsm/hsm.c b/projects/hsm/hsm.c
index 7fc7410..3f7a6fd 100644
--- a/projects/hsm/hsm.c
+++ b/projects/hsm/hsm.c
@@ -90,18 +90,11 @@ static uint8_t busy_stack[BUSY_STACK_SIZE];
 #endif
 static uint8_t cli_stack[CLI_STACK_SIZE];
 
-#ifndef MAX_PKT_SIZE
-/* An arbitrary number, more or less driven by the 4096-bit RSA
- * keygen test.
- */
-#define MAX_PKT_SIZE 4096
-#endif
-
 /* RPC buffers. For each active request, there will be two - input and output.
  */
 typedef struct rpc_buffer_s {
     size_t len;
-    uint8_t buf[MAX_PKT_SIZE];
+    uint8_t buf[HAL_RPC_MAX_PKT_SIZE];
     struct rpc_buffer_s *next;  /* for ibuf queue linking */
 } rpc_buffer_t;
 
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";



More information about the Commits mailing list