aboutsummaryrefslogtreecommitdiff
path: root/GNUmakefile
diff options
context:
space:
mode:
authorRob Austein <sra@hactrn.net>2015-12-23 21:35:28 -0500
committerRob Austein <sra@hactrn.net>2015-12-23 21:35:28 -0500
commita1e4e4fe7331338ece1a6d3ba01862a35a22f4ae (patch)
treebfccf359539f1d98d314eea4e3043e9f379cc3c1 /GNUmakefile
parent0fc5ab986329e48ac8de0fd8fa12455c1e6345af (diff)
RPC interface to TRNG and (incomplete) PIN code.
Diffstat (limited to 'GNUmakefile')
-rw-r--r--GNUmakefile30
1 files changed, 22 insertions, 8 deletions
diff --git a/GNUmakefile b/GNUmakefile
index dc7fe50..a600dd3 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -36,29 +36,43 @@ STATIC_PKEY_STATE_BLOCKS = 6
INC = hal.h hal_internal.h
LIB = libhal.a
-OBJ = ${IO_OBJ} core.o csprng.o hash.o aes_keywrap.o pbkdf2.o \
- modexp.o rsa.o ecdsa.o asn1.o errorstrings.o ${RPC_OBJ} ${KS_OBJ}
+OBJ = core.o csprng.o hash.o aes_keywrap.o pbkdf2.o \
+ modexp.o rsa.o ecdsa.o asn1.o errorstrings.o \
+ ${IO_OBJ} ${RPC_OBJ} ${KS_OBJ}
+
IO_OBJ_EIM = hal_io_eim.o novena-eim.o
IO_OBJ_I2C = hal_io_i2c.o
# Default I/O bus is EIM, override this to use I2C instead
IO_OBJ = ${IO_OBJ_EIM}
-RPC_OBJ_COMMON = rpc.o rpc_hash.o
+RPC_OBJ_COMMON = rpc_api.o rpc_hash.o
RPC_OBJ_CLIENT = ${RPC_OBJ_COMMON} rpc_client.o
RPC_OBJ_SERVER = ${RPC_OBJ_COMMON} rpc_misc.o rpc_pkey.o
# Default should be to build the RPC server code, but we haven't
# written even the skeleton of that yet. We'll probably end up
# needing a makefile conditional to handle all this properly
-RPC_OBJ = ${RPC_OBJ_CLIENT}
+RPC_OBJ = ${RPC_OBJ_SERVER}
# XXX temporary
-$(warning TEMPORARY KLUDGE TO TEST rpc_pkey)
-RPC_OBJ += rpc_pkey.o
+$(warning TEMPORARY KLUDGE TO TEST rpc_client)
+RPC_OBJ += ${RPC_OBJ_CLIENT}
-# XXX temporary
-KS_OBJ = ks.o ks_mmap.o
+KS_OBJ_COMMON = ks.o
+KS_OBJ_MMAP = ${KS_OBJ_COMMON} ks_mmap.o
+KS_OBJ_VOLATILE = ${KS_OBJ_COMMON} ks_volatile.o
+KS_OBJ_FLASH = ${KS_OBJ_COMMON} ks_flash.o
+
+# The mmap and flash keystore implementations are both server code.
+#
+# The volatile keystore (conventional memory) is client code, to
+# support using the same API for things like PKCS #11 "session" objects.
+#
+# Default at the moment is mmap, since that should work on the Novena
+# and we haven't yet written the flash code for the bridge board.
+
+KS_OBJ = ${KS_OBJ_MMAP}
TFMDIR := $(abspath ../thirdparty/libtfm)
CFLAGS += -g3 -Wall -fPIC -std=c99 -I${TFMDIR} -DHAL_ECDSA_DEBUG_ONLY_STATIC_TEST_VECTOR_RANDOM=1