diff options
Diffstat (limited to 'usr/src/test/crypto-tests')
15 files changed, 242 insertions, 98 deletions
diff --git a/usr/src/test/crypto-tests/cmd/kcf/Makefile b/usr/src/test/crypto-tests/cmd/kcf/Makefile index fd2d8f2746..3964744d24 100644 --- a/usr/src/test/crypto-tests/cmd/kcf/Makefile +++ b/usr/src/test/crypto-tests/cmd/kcf/Makefile @@ -12,27 +12,32 @@ # # Copyright (c) 2012 by Delphix. All rights reserved. # Copyright 2015 Nexenta Systems, Inc. All rights reserved. +# Copyright (c) 2018, Joyent, Inc. # include $(SRC)/Makefile.master include $(SRC)/test/Makefile.com ROOTOPTPKG = $(ROOT)/opt/crypto-tests -ROOTBIN = $(ROOTOPTPKG)/tests/kcf/aes +ROOTAES = $(ROOTOPTPKG)/tests/aes/kcf +ROOTDIGEST = $(ROOTOPTPKG)/tests/digest/kcf +ROOTDIRS = $(ROOTAES) $(ROOTDIGEST) PROGS = cleanup setup -CMDS = $(PROGS:%=$(ROOTBIN)/%) +CMDS = $(PROGS:%=$(ROOTAES)/%) $(PROGS:%=$(ROOTDIGEST)/%) $(CMDS) := FILEMODE = 0555 all lint clean clobber: install: $(CMDS) -$(CMDS): $(ROOTBIN) +$(CMDS): $(ROOTDIRS) -$(ROOTBIN): +$(ROOTDIRS): $(INS.dir) -$(ROOTBIN)/%: %.ksh +$(ROOTAES)/%: %.ksh + $(INS.rename) +$(ROOTDIGEST)/%: %.ksh $(INS.rename) diff --git a/usr/src/test/crypto-tests/runfiles/default.run b/usr/src/test/crypto-tests/runfiles/default.run index 67f3d198a2..bb80a8d374 100644 --- a/usr/src/test/crypto-tests/runfiles/default.run +++ b/usr/src/test/crypto-tests/runfiles/default.run @@ -23,20 +23,28 @@ timeout = 60 post = outputdir = /var/tmp/test_results -[/opt/crypto-tests/tests/pkcs/aes] -tests = ['aes_cbc', 'aes_ccm', 'aes_cmac', 'aes_ctr', 'aes_ecb', 'aes_gcm'] +[/opt/crypto-tests/tests/aes/pkcs] +tests = ['aes_cbc_32', 'aes_ccm_32', 'aes_cmac_32', + 'aes_ctr_32', 'aes_ecb_32', 'aes_gcm_32', + 'aes_cbc_64', 'aes_ccm_64', 'aes_cmac_64', + 'aes_ctr_64', 'aes_ecb_64', 'aes_gcm_64'] -[/opt/crypto-tests/tests/kcf/aes] +[/opt/crypto-tests/tests/aes/kcf] pre = setup user = root -tests = ['aes_cbc', 'aes_ccm', 'aes_cmac', 'aes_ctr', 'aes_ecb', 'aes_gcm'] +tests = ['aes_cbc_32', 'aes_ccm_32', 'aes_cmac_32', + 'aes_ctr_32', 'aes_ecb_32', 'aes_gcm_32', + 'aes_cbc_64', 'aes_ccm_64', 'aes_cmac_64', + 'aes_ctr_64', 'aes_ecb_64', 'aes_gcm_64'] post = cleanup [/opt/crypto-tests/tests/digest/pkcs] -tests = ['sha1', 'sha256', 'sha384', 'sha512'] +tests = ['sha1_32', 'sha256_32', 'sha384_32', 'sha512_32', + 'sha1_64', 'sha256_64', 'sha384_64', 'sha512_64' ] [/opt/crypto-tests/tests/digest/kcf] pre = setup user = root -tests = ['sha1', 'sha256', 'sha384', 'sha512'] +tests = ['sha1_32', 'sha256_32', 'sha384_32', 'sha512_32', + 'sha1_64', 'sha256_64', 'sha384_64', 'sha512_64' ] post = cleanup diff --git a/usr/src/test/crypto-tests/tests/common/Makefile b/usr/src/test/crypto-tests/tests/common/Makefile index 3dae390d40..0779484f5f 100644 --- a/usr/src/test/crypto-tests/tests/common/Makefile +++ b/usr/src/test/crypto-tests/tests/common/Makefile @@ -12,21 +12,26 @@ # # Copyright (c) 2012 by Delphix. All rights reserved. # Copyright 2015 Nexenta Systems, Inc. All rights reserved. +# Copyright (c) 2018, Joyent, Inc. # include $(SRC)/cmd/Makefile.cmd include $(SRC)/test/Makefile.com -OBJS = testfuncs.o cryptotest_pkcs.o cryptotest_kcf.o +BASEOBJS = testfuncs.o cryptotest_pkcs.o cryptotest_kcf.o +OBJS = $(BASEOBJS:%.o=%.32.o) $(BASEOBJS:%.o=%.64.o) SRCS = $(OBJS:%.o=%.c) CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I$(SRC)/common/crypto/ all install: $(OBJS) -%.o: %.c +%.32.o: %.c $(COMPILE.c) -o $@ $< +%.64.o: %.c + $(COMPILE64.c) -o $@ $< + lint: clobber clean: diff --git a/usr/src/test/crypto-tests/tests/common/cryptotest.h b/usr/src/test/crypto-tests/tests/common/cryptotest.h index b808eeff7b..e48ddced01 100644 --- a/usr/src/test/crypto-tests/tests/common/cryptotest.h +++ b/usr/src/test/crypto-tests/tests/common/cryptotest.h @@ -49,7 +49,7 @@ typedef struct test_fg { testfunc_t update; } test_fg_t; -#define CRYPTO_INVALID_SESSION ((size_t)-1) +#define CRYPTO_INVALID_SESSION ((crypto_session_id_t)-1) typedef struct crypto_op crypto_op_t; int run_test(cryptotest_t *args, uint8_t *cmp, size_t cmplen, test_fg_t *funcs); @@ -107,6 +107,15 @@ extern test_fg_t cryptotest_digest_fg; #define DECR_FG (&cryptotest_decr_fg) #define DIGEST_FG (&cryptotest_digest_fg) +/* + * KCF and PKCS11 use different structures for the CCM params (CK_AES_CCM_PARAMS + * and CK_CCM_PARAMS respectively. Each cryptotest_*.c file implements this + * for their respective structs. + */ +void ccm_init_params(void *, ulong_t, uchar_t *, ulong_t, uchar_t *, ulong_t, + ulong_t); +size_t ccm_param_len(void); + #ifdef __cplusplus } #endif diff --git a/usr/src/test/crypto-tests/tests/common/cryptotest_kcf.c b/usr/src/test/crypto-tests/tests/common/cryptotest_kcf.c index 525932206c..c4724613ea 100644 --- a/usr/src/test/crypto-tests/tests/common/cryptotest_kcf.c +++ b/usr/src/test/crypto-tests/tests/common/cryptotest_kcf.c @@ -439,3 +439,22 @@ digest_final(crypto_op_t *op) return (kcf_do_ioctl(CRYPTO_DIGEST_FINAL, (uint_t *)&final, "final")); } +void +ccm_init_params(void *buf, ulong_t ulDataLen, uchar_t *pNonce, + ulong_t ulNonceLen, uchar_t *pAAD, ulong_t ulAADLen, ulong_t ulMACLen) +{ + CK_AES_CCM_PARAMS *pp = buf; + + pp->ulDataSize = ulDataLen; + pp->nonce = pNonce; + pp->ulNonceSize = ulNonceLen; + pp->authData = pAAD; + pp->ulAuthDataSize = ulAADLen; + pp->ulMACSize = ulMACLen; +} + +size_t +ccm_param_len(void) +{ + return (sizeof (CK_AES_CCM_PARAMS)); +} diff --git a/usr/src/test/crypto-tests/tests/common/cryptotest_pkcs.c b/usr/src/test/crypto-tests/tests/common/cryptotest_pkcs.c index e6964414c1..eed7454382 100644 --- a/usr/src/test/crypto-tests/tests/common/cryptotest_pkcs.c +++ b/usr/src/test/crypto-tests/tests/common/cryptotest_pkcs.c @@ -49,7 +49,7 @@ cryptotest_error(char *name, CK_RV rv) } crypto_op_t * -cryptotest_init(cryptotest_t *arg, size_t fg) +cryptotest_init(cryptotest_t *arg, crypto_func_group_t fg) { crypto_op_t *op = malloc(sizeof (*op)); @@ -455,3 +455,23 @@ digest_final(crypto_op_t *op) cryptotest_error("C_DigestFinal", rv); return (rv); } + +void +ccm_init_params(void *buf, ulong_t ulDataLen, uchar_t *pNonce, + ulong_t ulNonceLen, uchar_t *pAAD, ulong_t ulAADLen, ulong_t ulMACLen) +{ + CK_CCM_PARAMS *pp = buf; + + pp->ulDataLen = ulDataLen; + pp->pNonce = pNonce; + pp->ulNonceLen = ulNonceLen; + pp->pAAD = pAAD; + pp->ulAADLen = ulAADLen; + pp->ulMACLen = ulMACLen; +} + +size_t +ccm_param_len(void) +{ + return (sizeof (CK_CCM_PARAMS)); +} diff --git a/usr/src/test/crypto-tests/tests/digest/Makefile b/usr/src/test/crypto-tests/tests/digest/Makefile index aa0aeb682e..af5392b037 100644 --- a/usr/src/test/crypto-tests/tests/digest/Makefile +++ b/usr/src/test/crypto-tests/tests/digest/Makefile @@ -20,9 +20,15 @@ include $(SRC)/cmd/Makefile.ctf ALGS = sha1 sha256 sha384 sha512 CRYPTO = pkcs kcf -PROGS_pkcs = $(ALGS:%=%_pkcs) -PROGS_kcf = $(ALGS:%=%_kcf) -PROGS = $(PROGS_pkcs) $(PROGS_kcf) +PROGS_pkcs_32 = $(ALGS:%=%_32_pkcs) +PROGS_pkcs_64 = $(ALGS:%=%_64_pkcs) +PROGS_kcf_32 = $(ALGS:%=%_32_kcf) +PROGS_kcf_64 = $(ALGS:%=%_64_kcf) +PROGS_pkcs = $(PROGS_pkcs_32) $(PROGS_pkcs_64) +PROGS_kcf = $(PROGS_kcf_32) $(PROGS_kcf_64) +PROGS_32 = $(PROGS_pkcs_32) $(PROGS_kcf_32) +PROGS_64 = $(PROGS_pkcs_64) $(PROGS_kcf_64) +PROGS = $(PROGS_32) $(PROGS_64) ROOTOPTPKG = $(ROOT)/opt/crypto-tests TESTROOT = $(ROOTOPTPKG)/tests/digest @@ -31,15 +37,22 @@ TESTDIR_kcf = $(TESTROOT)/kcf COMMONDIR = ../common -$(CRYPTO:%=sha1_%) := OBJS = sha1.o -$(CRYPTO:%=sha256_%) := OBJS = sha256.o -$(CRYPTO:%=sha384_%) := OBJS = sha384.o -$(CRYPTO:%=sha512_%) := OBJS = sha512.o +$(CRYPTO:%=sha1_32_%) := OBJS = sha1.32.o +$(CRYPTO:%=sha256_32_%) := OBJS = sha256.32.o +$(CRYPTO:%=sha384_32_%) := OBJS = sha384.32.o +$(CRYPTO:%=sha512_32_%) := OBJS = sha512.32.o -OBJS_COMMON = $(COMMONDIR)/testfuncs.o -$(PROGS_pkcs) := OBJS_COMMON += $(COMMONDIR)/cryptotest_pkcs.o -$(PROGS_kcf) := OBJS_COMMON += $(COMMONDIR)/cryptotest_kcf.o -$(PROGS) := OBJS += main.o +$(CRYPTO:%=sha1_64_%) := OBJS = sha1.64.o +$(CRYPTO:%=sha256_64_%) := OBJS = sha256.64.o +$(CRYPTO:%=sha384_64_%) := OBJS = sha384.64.o +$(CRYPTO:%=sha512_64_%) := OBJS = sha512.64.o + +$(PROGS_32) := OBJS_COMMON = main.32.o $(COMMONDIR)/testfuncs.32.o +$(PROGS_64) := OBJS_COMMON = main.64.o $(COMMONDIR)/testfuncs.64.o +$(PROGS_pkcs_32) := OBJS_COMMON += $(COMMONDIR)/cryptotest_pkcs.32.o +$(PROGS_pkcs_64) := OBJS_COMMON += $(COMMONDIR)/cryptotest_pkcs.64.o +$(PROGS_kcf_32) := OBJS_COMMON += $(COMMONDIR)/cryptotest_kcf.32.o +$(PROGS_kcf_64) := OBJS_COMMON += $(COMMONDIR)/cryptotest_kcf.64.o CSTD = $(CSTD_GNU99) @@ -51,29 +64,41 @@ LINTFLAGS += -xerroff=E_NAME_DEF_NOT_USED2 $(PROGS_pkcs) := LDLIBS += -lpkcs11 -lcryptoutil -CMDS_pkcs = $(ALGS:%=$(TESTDIR_pkcs)/%) -CMDS_kcf = $(ALGS:%=$(TESTDIR_kcf)/%) +CMDS_pkcs = $(PROGS_pkcs:%_pkcs=$(TESTDIR_pkcs)/%) +CMDS_kcf = $(PROGS_kcf:%_kcf=$(TESTDIR_kcf)/%) CMDS = $(CMDS_pkcs) $(CMDS_kcf) $(CMDS) := FILEMODE = 0555 all: $(PROGS) -$(COMMONDIR)/%.o: -$(PROGS): main.o +$(PROGS): main.32.o main.64.o -%_pkcs: %.o +%_32_pkcs: %.32.o $(LINK.c) -o $@ $(OBJS) $(OBJS_COMMON) $(LDLIBS) $(POST_PROCESS) -%_kcf: %.o +%_64_pkcs: %.64.o + $(LINK64.c) -o $@ $(OBJS) $(OBJS_COMMON) $(LDLIBS) + $(POST_PROCESS) + +%_32_kcf: %.32.o $(LINK.c) -o $@ $(OBJS) $(OBJS_COMMON) $(LDLIBS) $(POST_PROCESS) -%.o: %.c +%_64_kcf: %.64.o + $(LINK64.c) -o $@ $(OBJS) $(OBJS_COMMON) $(LDLIBS) + $(POST_PROCESS) + +%.32.o: %.c $(COMPILE.c) -o $@ $< $(POST_PROCESS_O) +%.64.o: %.c + $(COMPILE64.c) -o $@ $< + $(POST_PROCESS_O) + + install: all $(CMDS) lint: $(CRYPTO:%=lint_%) @@ -90,16 +115,21 @@ clobber: clean -$(RM) $(PROGS) clean: - -$(RM) $(ALGS:%=%.o) main.o + -$(RM) $(ALGS:%=%.32.o) $(ALGS:%=%.64.o) main.32.o main.64.o $(CMDS): $(TESTDIR_pkcs) $(TESTDIR_kcf) $(PROGS) $(TESTDIR_pkcs) $(TESTDIR_kcf): $(INS.dir) - @echo Cmds: $(CMDS) -$(TESTROOT)/pkcs/%: %_pkcs +$(TESTDIR_pkcs)/%_32: %_32_pkcs + $(INS.rename) + +$(TESTDIR_pkcs)/%_64: %_64_pkcs + $(INS.rename) + +$(TESTDIR_kcf)/%_32: %_32_kcf $(INS.rename) -$(TESTROOT)/kcf/%: %_kcf +$(TESTDIR_kcf)/%_64: %_64_kcf $(INS.rename) diff --git a/usr/src/test/crypto-tests/tests/modes/aes/Makefile.subdirs b/usr/src/test/crypto-tests/tests/modes/aes/Makefile.subdirs index 28484e9a27..4678b6c7f8 100644 --- a/usr/src/test/crypto-tests/tests/modes/aes/Makefile.subdirs +++ b/usr/src/test/crypto-tests/tests/modes/aes/Makefile.subdirs @@ -12,71 +12,107 @@ # # Copyright (c) 2012 by Delphix. All rights reserved. # Copyright 2015 Nexenta Systems, Inc. All rights reserved. +# Copyright (c) 2018, Joyent, Inc. # +include $(SRC)/cmd/Makefile.cmd include $(SRC)/test/Makefile.com +include $(SRC)/cmd/Makefile.ctf CRYPTO = pkcs kcf -PROGS = $(CRYPTO:%=$(PROG)_%) +PROGS_32 = $(CRYPTO:%=$(BASEPROG)_32_%) +PROGS_64 = $(CRYPTO:%=$(BASEPROG)_64_%) +PROGS = $(PROGS_32) $(PROGS_64) +PROGS_pkcs = $(BASEPROG:%=%_32_pkcs) $(BASEPROG:%=%_64_pkcs) +PROGS_kcf = $(BASEPROG:%=%_32_kcf) $(BASEPROG:%=%_64_kcf) + ROOTOPTPKG = $(ROOT)/opt/crypto-tests -TESTROOT = $(ROOTOPTPKG)/tests/#$(SUFFIX)/aes -TESTDIR = $(CRYPTO:%=$(TESTROOT)/%/aes) +TESTROOT = $(ROOTOPTPKG)/tests/aes +TESTDIR_pkcs = $(TESTROOT)/pkcs +TESTDIR_kcf = $(TESTROOT)/kcf COMMONDIR = ../../../common -OBJS_COMMON = testfuncs.o -OBJS_COMDIR = $(OBJS_COMMON:%=$(COMMONDIR)/%) -OBJS_LOCAL = $(PROG:%=%.o) -OBJS = $(OBJS_LOCAL) $(OBJS_COMDIR) -OBJS_PKCS = $(OBJS_LOCAL) $(OBJS_COMDIR) $(COMMONDIR)/cryptotest_pkcs.o -OBJS_KCF = $(OBJS_LOCAL) $(OBJS_COMDIR) $(COMMONDIR)/cryptotest_kcf.o -SRCS = $(OBJS:%.o=%.c) -PKCSLIBS = -lpkcs11 -lcryptoutil +$(PROGS_32) := OBJS += $(COMMONDIR)/testfuncs.32.o +$(PROGS_64) := OBJS += $(COMMONDIR)/testfuncs.64.o +$(PROGS_32) := OBJS += $(BASEPROG:%=%.32.o) +$(PROGS_64) := OBJS += $(BASEPROG:%=%.64.o) +$(BASEPROG)_32_pkcs := OBJS += $(COMMONDIR)/cryptotest_pkcs.32.o +$(BASEPROG)_64_pkcs := OBJS += $(COMMONDIR)/cryptotest_pkcs.64.o +$(BASEPROG)_32_kcf := OBJS += $(COMMONDIR)/cryptotest_kcf.32.o +$(BASEPROG)_64_kcf := OBJS += $(COMMONDIR)/cryptotest_kcf.64.o + +$(PROGS_pkcs) := LDLIBS += -lpkcs11 -lcryptoutil CSTD = $(CSTD_GNU99) -CMDS = $(TESTDIR:%=%/$(PROG)) +CMDS_pkcs = $(PROGS_pkcs:%_pkcs=$(TESTDIR_pkcs)/%) +CMDS_kcf = $(PROGS_kcf:%_kcf=$(TESTDIR_kcf)/%) +CMDS = $(CMDS_pkcs) $(CMDS_kcf) + $(CMDS) := FILEMODE = 0555 LINTFLAGS += -xerroff=E_NAME_USED_NOT_DEF2 LINTFLAGS += -xerroff=E_NAME_DEF_NOT_USED2 -CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I$(COMMONDIR) -I$(SRC)/common/crypto/ +CPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 +CPPFLAGS += -I$(COMMONDIR) -I$(SRC)/common/crypto/ all: $(PROGS) -$(PROG)_kcf: $(OBJS_KCF) - $(LINK.c) $(OBJS_KCF) -o $@ $(LDLIBS) +%_32_pkcs: %.32.o + $(LINK.c) $(OBJS) -o $@ $(LDLIBS) $(POST_PROCESS) -$(PROG)_pkcs: $(OBJS_PKCS) - $(LINK.c) $(OBJS_PKCS) -o $@ $(LDLIBS) $(PKCSLIBS) +%_64_pkcs: %.64.o + $(LINK64.c) $(OBJS) -o $@ $(LDLIBS) $(POST_PROCESS) +%_32_kcf: %.32.o + $(LINK.c) $(OBJS) -o $@ $(LDLIBS) + $(POST_PROCESS) -$(COMMONDIR)/%.o: +%_64_kcf: %.64.o + $(LINK64.c) $(OBJS) -o $@ $(LDLIBS) + $(POST_PROCESS) -%.o: %.c +%.32.o: %.c $(COMPILE.c) -o $@ $< + $(POST_PROCESS_O) + +%.64.o: %.c + $(COMPILE64.c) -o $@ $< + $(POST_PROCESS_O) + + echo $(CMDS_kcf) install: all $(CMDS) lint: $(CRYPTO:%=lint_%) lint_pkcs: - $(LINT.c) $(OBJS_PKCS:%.o=%.c) $(LDLIBS) $(PKCSLIBS) + $(LINT.c) $(OBJS_PKCS_23:%.o=%.c) $(LDLIBS) $(PKCSLIBS) lint_kcf: - $(LINT.c) $(OBJS_KCF:%.o=%.c) $(LDLIBS) + $(LINT.c) $(OBJS_KCF_32:%.o=%.c) $(LDLIBS) clobber: clean -$(RM) $(PROGS) clean: - -$(RM) $(OBJS_LOCAL) + -$(RM) *.o -$(CMDS): $(TESTDIR) $(PROGS) +$(CMDS): $(TESTDIR_pkcs) $(TESTDIR_kcf) $(PROGS) -$(TESTDIR): +$(TESTDIR_pkcs) $(TESTDIR_kcf): $(INS.dir) -$(TESTROOT)/%/aes/$(PROG): $(PROG)_% +$(TESTDIR_pkcs)/%_32: %_32_pkcs + $(INS.rename) + +$(TESTDIR_pkcs)/%_64: %_64_pkcs + $(INS.rename) + +$(TESTDIR_kcf)/%_32: %_32_kcf + $(INS.rename) + +$(TESTDIR_kcf)/%_64: %_64_kcf $(INS.rename) diff --git a/usr/src/test/crypto-tests/tests/modes/aes/cbc/Makefile b/usr/src/test/crypto-tests/tests/modes/aes/cbc/Makefile index e74dc104bd..e7e36b988c 100644 --- a/usr/src/test/crypto-tests/tests/modes/aes/cbc/Makefile +++ b/usr/src/test/crypto-tests/tests/modes/aes/cbc/Makefile @@ -14,7 +14,7 @@ # Copyright 2015 Nexenta Systems, Inc. All rights reserved. # -PROG = aes_cbc +BASEPROG = aes_cbc include $(SRC)/cmd/Makefile.cmd include ../Makefile.subdirs diff --git a/usr/src/test/crypto-tests/tests/modes/aes/ccm/Makefile b/usr/src/test/crypto-tests/tests/modes/aes/ccm/Makefile index 28ec598193..ab91c27fda 100644 --- a/usr/src/test/crypto-tests/tests/modes/aes/ccm/Makefile +++ b/usr/src/test/crypto-tests/tests/modes/aes/ccm/Makefile @@ -14,7 +14,7 @@ # Copyright 2015 Nexenta Systems, Inc. All rights reserved. # -PROG = aes_ccm +BASEPROG = aes_ccm include $(SRC)/cmd/Makefile.cmd include ../Makefile.subdirs diff --git a/usr/src/test/crypto-tests/tests/modes/aes/ccm/aes_ccm.c b/usr/src/test/crypto-tests/tests/modes/aes/ccm/aes_ccm.c index a01129547e..91802aefdd 100644 --- a/usr/src/test/crypto-tests/tests/modes/aes/ccm/aes_ccm.c +++ b/usr/src/test/crypto-tests/tests/modes/aes/ccm/aes_ccm.c @@ -11,43 +11,49 @@ /* * Copyright 2015 Nexenta Systems, Inc. All rights reserved. + * Copyright 2018, Joyent, Inc. */ #include <strings.h> #include <stdio.h> - +#include <sys/debug.h> #include "cryptotest.h" #include "aes_ccm.h" +/* + * Size of param (in 8-byte chunks for alignment) large enough for both + * CK_CCM_PARAMS and CK_AES_CCM_PARAMS. + */ +#define PARAM_SIZE_64 8 + int main(void) { int errs = 0; int i; uint8_t N[1024]; - CK_AES_CCM_PARAMS param; - cryptotest_t args; + uint64_t param[PARAM_SIZE_64]; - bzero(¶m, sizeof (param)); + cryptotest_t args; args.out = N; - args.param = ¶m; args.outlen = sizeof (N); - args.plen = sizeof (param); args.mechname = SUN_CKM_AES_CCM; args.updatelen = 1; - param.authData = CCM_DATA1; args.key = CCM_KEY1; args.keylen = sizeof (CCM_KEY1); for (i = 0; i < 12; i++) { - param.ulMACSize = MACLEN[i]; - param.ulNonceSize = NONCELEN[i]; - param.ulAuthDataSize = AUTHLEN[i]; - param.ulDataSize = DATALEN[i] - AUTHLEN[i]; - param.nonce = NONCE[i]; + bzero(param, sizeof (param)); + ccm_init_params(param, DATALEN[i] - AUTHLEN[i], NONCE[i], + NONCELEN[i], CCM_DATA1, AUTHLEN[i], MACLEN[i]); + + args.param = param; + args.plen = ccm_param_len(); + + VERIFY3U(args.plen, <=, sizeof (param)); args.in = CCM_DATA1 + AUTHLEN[i]; args.inlen = DATALEN[i] - AUTHLEN[i]; @@ -60,12 +66,14 @@ main(void) args.key = CCM_KEY2; args.keylen = sizeof (CCM_KEY2); for (i = 12; i < 24; i++) { - param.ulMACSize = MACLEN[i]; - param.ulNonceSize = NONCELEN[i]; - param.ulAuthDataSize = AUTHLEN[i]; - param.ulDataSize = DATALEN[i] - AUTHLEN[i]; - param.nonce = NONCE[i]; - param.authData = DATA_2[i-12]; + bzero(param, sizeof (param)); + ccm_init_params(param, DATALEN[i] - AUTHLEN[i], NONCE[i], + NONCELEN[i], DATA_2[i-12], AUTHLEN[i], MACLEN[i]); + + args.param = param; + args.plen = ccm_param_len(); + + VERIFY3U(args.plen, <=, sizeof (param)); args.in = DATA_2[i-12] + AUTHLEN[i]; args.inlen = DATALEN[i] - AUTHLEN[i]; @@ -77,15 +85,17 @@ main(void) (void) fprintf(stderr, "\t\t\t=== decrypt ===\n----------\n\n"); - param.authData = CCM_DATA1; args.key = CCM_KEY1; args.keylen = sizeof (CCM_KEY1); for (i = 0; i < 12; i++) { - param.ulMACSize = MACLEN[i]; - param.ulNonceSize = NONCELEN[i]; - param.ulAuthDataSize = AUTHLEN[i]; - param.ulDataSize = RESLEN[i] - AUTHLEN[i]; - param.nonce = NONCE[i]; + bzero(param, sizeof (param)); + ccm_init_params(param, RESLEN[i] - AUTHLEN[i], NONCE[i], + NONCELEN[i], CCM_DATA1, AUTHLEN[i], MACLEN[i]); + + args.param = param; + args.plen = ccm_param_len(); + + VERIFY3U(args.plen, <=, sizeof (param)); args.in = RES[i] + AUTHLEN[i]; args.inlen = RESLEN[i] - AUTHLEN[i]; @@ -98,12 +108,14 @@ main(void) args.key = CCM_KEY2; args.keylen = sizeof (CCM_KEY2); for (i = 12; i < 24; i++) { - param.ulMACSize = MACLEN[i]; - param.ulNonceSize = NONCELEN[i]; - param.ulAuthDataSize = AUTHLEN[i]; - param.ulDataSize = RESLEN[i] - AUTHLEN[i]; - param.nonce = NONCE[i]; - param.authData = DATA_2[i-12]; + bzero(param, sizeof (param)); + ccm_init_params(param, RESLEN[i] - AUTHLEN[i], NONCE[i], + NONCELEN[i], DATA_2[i-12], AUTHLEN[i], MACLEN[i]); + + args.param = param; + args.plen = ccm_param_len(); + + VERIFY3U(args.plen, <=, sizeof (param)); args.in = RES[i] + AUTHLEN[i]; args.inlen = RESLEN[i] - AUTHLEN[i]; diff --git a/usr/src/test/crypto-tests/tests/modes/aes/cmac/Makefile b/usr/src/test/crypto-tests/tests/modes/aes/cmac/Makefile index c4e63db251..4c99aad1b6 100644 --- a/usr/src/test/crypto-tests/tests/modes/aes/cmac/Makefile +++ b/usr/src/test/crypto-tests/tests/modes/aes/cmac/Makefile @@ -14,7 +14,7 @@ # Copyright 2015 Nexenta Systems, Inc. All rights reserved. # -PROG = aes_cmac +BASEPROG = aes_cmac include $(SRC)/cmd/Makefile.cmd include ../Makefile.subdirs diff --git a/usr/src/test/crypto-tests/tests/modes/aes/ctr/Makefile b/usr/src/test/crypto-tests/tests/modes/aes/ctr/Makefile index a1a1d35425..adc2a9cb52 100644 --- a/usr/src/test/crypto-tests/tests/modes/aes/ctr/Makefile +++ b/usr/src/test/crypto-tests/tests/modes/aes/ctr/Makefile @@ -14,7 +14,7 @@ # Copyright 2015 Nexenta Systems, Inc. All rights reserved. # -PROG = aes_ctr +BASEPROG = aes_ctr include $(SRC)/cmd/Makefile.cmd include ../Makefile.subdirs diff --git a/usr/src/test/crypto-tests/tests/modes/aes/ecb/Makefile b/usr/src/test/crypto-tests/tests/modes/aes/ecb/Makefile index 00adfa3b43..d413f18329 100644 --- a/usr/src/test/crypto-tests/tests/modes/aes/ecb/Makefile +++ b/usr/src/test/crypto-tests/tests/modes/aes/ecb/Makefile @@ -14,7 +14,7 @@ # Copyright 2015 Nexenta Systems, Inc. All rights reserved. # -PROG = aes_ecb +BASEPROG = aes_ecb include $(SRC)/cmd/Makefile.cmd include ../Makefile.subdirs diff --git a/usr/src/test/crypto-tests/tests/modes/aes/gcm/Makefile b/usr/src/test/crypto-tests/tests/modes/aes/gcm/Makefile index c480cf13f9..2cef165155 100644 --- a/usr/src/test/crypto-tests/tests/modes/aes/gcm/Makefile +++ b/usr/src/test/crypto-tests/tests/modes/aes/gcm/Makefile @@ -14,7 +14,7 @@ # Copyright 2015 Nexenta Systems, Inc. All rights reserved. # -PROG = aes_gcm +BASEPROG = aes_gcm include $(SRC)/cmd/Makefile.cmd include ../Makefile.subdirs |