diff --git a/ccb_vaultic/Makefile b/ccb_vaultic/Makefile index 00242f2b..7e2ab9a5 100644 --- a/ccb_vaultic/Makefile +++ b/ccb_vaultic/Makefile @@ -12,7 +12,7 @@ WOLFSSL_DIR?=../../bill_wolfssl VAULTIC_DIR?=VaultIC-TLS_420/vaultic_tls-4xx # Common settings and files -CFLAGS+=-I. -O2 +CFLAGS+=-I. -O2 -DHAVE_CCBVAULTIC OBJS=ccb_vaultic.o # Uncomment to enable verbose debug logging @@ -22,9 +22,9 @@ CFLAGS+=-DCCBVAULTIC_DEBUG_TIMING #CFLAGS+=-DSPI_TRACE_ERRORS # Optionally disable certain kinds of offload -#CFLAGS+=-DNO_CCBVIC_AES -CFLAGS+=-DNO_CCBVIC_SHA -#CFLAGS+=-DNO_CCBVIC_RSA +#CFLAGS+=-DCCBVAULTIC_NO_AES +CFLAGS+=-DCCBVAULTIC_NO_SHA +#CFLAGS+=-DCCBVAULTIC_NO_RSA # wolfSSL settings and files # ./configure --enable-cryptocb --enable-static --disable-shared --host aarch64-linux-android @@ -60,10 +60,6 @@ wolfcrypt-test: $(OBJS) $(TEST_OBJS) wolfcrypt-benchmark: $(OBJS) $(BENCH_OBJS) $(CC) -o $@ $^ $(LDFLAGS) -lib: $(OBJS) - cp $(VAULTIC_TLS)/VaultIC_420_TLS_Lib-SPI-Release/libvaultic420_tls.a libccbvaultic.a - $(AR) -r libccbvaultic.a $(OBJS) - clean: rm -f *.o *.d wolfcrypt-test wolfcrypt-benchmark rm -f $(WOLFSSL_DIR)/wolfcrypt/benchmark/*.o diff --git a/ccb_vaultic/ccb_vaultic.c b/ccb_vaultic/ccb_vaultic.c index c57942c1..5cd2ac28 100644 --- a/ccb_vaultic/ccb_vaultic.c +++ b/ccb_vaultic/ccb_vaultic.c @@ -35,6 +35,30 @@ #include "wolfssl/wolfcrypt/hash.h" /* For HASH_FLAGS and types */ #include "wolfssl/wolfcrypt/rsa.h" /* For RSA_MAX_SIZE */ +/* Local include */ +#include "ccb_vaultic.h" + +#ifndef HAVE_CCBVAULTIC +/* Provide dummy implementations of callbacks */ +int ccbVaultIc_Init(ccbVaultIc_Context *c) +{ + return CRYPTOCB_UNAVAILABLE; +} + +/* Close the Wisekey VaultIC library. */ +void ccbVaultIc_Cleanup(ccbVaultIc_Context *c) { + return; +} + + +int ccbVaultIc_CryptoDevCb(int devId, + wc_CryptoInfo* info, + void* ctx) +{ + return CRYPTOCB_UNAVAILABLE; +} +#else + /* WiseKey VaultIC includes */ #include "vaultic_tls.h" #include "vaultic_config.h" @@ -45,16 +69,15 @@ #define VAULTIC_KP_ALL 0xFF /* Allow all users all privileges */ #define VAULTIC_PKV_ASSURED VLT_PKV_ASSURED_EXPLICIT_VALIDATION -/* Local include */ -#include "ccb_vaultic.h" + /* Defined options: * CCBVAULTIC_DEBUG: Print useful callback info using printf * CCBVAULTIC_DEBUG_TIMING: Print useful timing info using printf * CCBVAULTIC_DEBUG_ALL: Print copious info using printf - * NO_CCBVIC_SHA: Do not handle SHA256 callback - * NO_CCBVIC_RSA: Do not handle RSA callback - * NO_CCBVIC_AES: Do not handle AES callback + * CCBVAULTIC_NO_SHA: Do not handle SHA256 callback + * CCBVAULTIC_NO_RSA: Do not handle RSA callback + * CCBVAULTIC_NO_AES: Do not handle AES callback */ #ifdef CCBVAULTIC_DEBUG_ALL @@ -335,7 +358,7 @@ static int HandlePkCallback(int devId, wc_CryptoInfo* info, #if defined(CCBVAULTIC_DEBUG_ALL) printf(" HandlePkCallback RSA: Type:%d\n",info->pk.rsa.type); #endif -#if !defined(NO_CCBVIC_RSA) +#if !defined(CCBVAULTIC_NO_RSA) { if((info->pk.rsa.type == RSA_PUBLIC_DECRYPT) || /* RSA Verify */ @@ -587,7 +610,7 @@ static int HandleHashCallback(int devId, wc_CryptoInfo* info, info->hash.in, info->hash.inSz, info->hash.digest, c->m, c->m_len, c->hash_type); #endif -#if !defined(NO_CCBVIC_SHA) +#if !defined(CCBVAULTIC_NO_SHA) /* * info->hash.flag | WC_HASH_FLAGS_WILL_COPY --> Buffer entire message * info->hash.in != NULL --> Update @@ -778,7 +801,7 @@ static int HandleCipherCallback(int devId, wc_CryptoInfo* info, #if defined(CCBVAULTIC_DEBUG_ALL) printf(" HandleCipherCallback AES_CBC\n"); #endif -#if !defined(NO_CCBVIC_AES) +#if !defined(CCBVAULTIC_NO_AES) { Aes* aes = info->cipher.aescbc.aes; int encrypt = info->cipher.enc; @@ -948,7 +971,7 @@ static int HandleCipherCallback(int devId, wc_CryptoInfo* info, /* Update return value to indicate success */ rc=0; } -#endif /* NO_CCBVIC_AES */ +#endif /* CCBVAULTIC_NO_AES */ break; case WC_CIPHER_AES_GCM: @@ -994,3 +1017,5 @@ static int HandleCipherCallback(int devId, wc_CryptoInfo* info, } return rc; } + +#endif /* HAVE_CCBVAULTIC */