[Cryptech-Commits] [sw/libhal] 01/07: Add test-rpc_get_random

git at cryptech.is git at cryptech.is
Tue Mar 29 20:58:35 UTC 2016


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

paul at psgd.org pushed a commit to branch rpc
in repository sw/libhal.

commit 8a01c20cd38da6ff52423f02fc22d56b8ad57800
Author: Paul Selkirk <paul at psgd.org>
AuthorDate: Tue Mar 29 16:25:04 2016 -0400

    Add test-rpc_get_random
---
 .gitignore                  |  1 +
 tests/GNUmakefile           |  2 +-
 tests/test-rpc_get_random.c | 69 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 71 insertions(+), 1 deletion(-)

diff --git a/.gitignore b/.gitignore
index 5a3bff4..6919235 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,5 +18,6 @@ tests/test-rsa
 tests/test-rsa-*.der
 tests/test-trng
 tests/test-rpc_get_version
+tests/test-rpc_get_random
 utils/cores
 utils/eim_peek_poke
diff --git a/tests/GNUmakefile b/tests/GNUmakefile
index 63db700..65c7a25 100644
--- a/tests/GNUmakefile
+++ b/tests/GNUmakefile
@@ -40,7 +40,7 @@ ifndef RPC_SERVER
   endif
 endif
 ifdef RPC_CLIENT
-  BIN	+= test-rpc_hash test-rpc_pkey test-rpc_get_version
+  BIN	+= test-rpc_hash test-rpc_pkey test-rpc_get_version test-rpc_get_random
 endif
 ifdef RPC_SERVER
   BIN	+= test-rpc_server
diff --git a/tests/test-rpc_get_random.c b/tests/test-rpc_get_random.c
new file mode 100644
index 0000000..9e9765d
--- /dev/null
+++ b/tests/test-rpc_get_random.c
@@ -0,0 +1,69 @@
+/*
+ * test-rpc_get_random.c
+ * ---------------------
+ * Test code for RPC interface to Cryptech hash cores.
+ *
+ * Copyright (c) 2016, NORDUnet A/S
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ * - Redistributions of source code must retain the above copyright notice,
+ *   this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of the NORDUnet nor the names of its contributors may
+ *   be used to endorse or promote products derived from this software
+ *   without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <hal.h>
+
+#define DEFAULT_LEN 16
+
+static void hexdump(uint8_t *buf, int len)
+{
+    for (int i = 0; i < len; ++i)
+        printf("%02x%c", buf[i], ((i & 0x07) == 0x07) ? '\n' : ' ');
+    if ((len & 0x07) != 0)
+        printf("\n");
+}
+
+int main(int argc, char *argv[])
+{
+    int len = 0;
+    if (argc > 1)
+        len = atoi(argv[1]);
+    if (len <= 0)       /* no arg, or bad arg */
+        len = DEFAULT_LEN;
+    
+    uint8_t rnd[len];
+
+#define check(op) { hal_error_t err; if ((err = (op)) != HAL_OK) { printf("%s: %s\n", #op, hal_error_string(err)); return 1; } }
+    
+    check(hal_rpc_client_init());
+    check(hal_rpc_get_random(rnd, sizeof(rnd)));
+
+    hexdump(rnd, len);
+
+    return 0;
+}



More information about the Commits mailing list