diff --git a/.gitignore b/.gitignore index ce0ec9e1..e0fc84cc 100644 --- a/.gitignore +++ b/.gitignore @@ -108,6 +108,7 @@ test/default/box8 test/default/browser test/default/chacha20 test/default/codecs +test/default/codecs2 test/default/core_ed25519 test/default/core_keccak1600 test/default/core_ristretto255 @@ -127,6 +128,7 @@ test/default/ipcrypt test/default/kdf test/default/kdf_hkdf test/default/kdf_hkdf2 +test/default/kdf_hkdf3 test/default/keygen test/default/kx test/default/metamorphic @@ -173,6 +175,7 @@ test/default/xof_shake128 test/default/xof_shake256 test/default/xof_turboshake128 test/default/xof_turboshake256 +test/default/xof2 test/js.done testing Vagrantfile diff --git a/test/default/Makefile.am b/test/default/Makefile.am index 91770b90..5e88cf68 100644 --- a/test/default/Makefile.am +++ b/test/default/Makefile.am @@ -28,6 +28,7 @@ EXTRA_DIST = \ box_seed.exp \ chacha20.exp \ codecs.exp \ + codecs2.exp \ core_ed25519.exp \ core_keccak1600.exp \ core_ristretto255.exp \ @@ -47,6 +48,7 @@ EXTRA_DIST = \ kdf.exp \ kdf_hkdf.exp \ kdf_hkdf2.exp \ + kdf_hkdf3.exp \ keygen.exp \ kx.exp \ metamorphic.exp \ @@ -92,7 +94,8 @@ EXTRA_DIST = \ xof_shake128.exp \ xof_shake256.exp \ xof_turboshake128.exp \ - xof_turboshake256.exp + xof_turboshake256.exp \ + xof2.exp DISTCLEANFILES = \ aead_aegis128l.res \ @@ -118,6 +121,7 @@ DISTCLEANFILES = \ box_seed.res \ chacha20.res \ codecs.res \ + codecs2.res \ core_ed25519.res \ core_keccak1600.res \ core_ristretto255.res \ @@ -138,6 +142,7 @@ DISTCLEANFILES = \ kdf.res \ kdf_hkdf.res \ kdf_hkdf2.res \ + kdf_hkdf3.res \ keygen.res \ kx.res \ metamorphic.res \ @@ -183,7 +188,8 @@ DISTCLEANFILES = \ xof_shake128.res \ xof_shake256.res \ xof_turboshake128.res \ - xof_turboshake256.res + xof_turboshake256.res \ + xof2.res AM_CPPFLAGS = \ -DTEST_SRCDIR=\"@srcdir@\" \ @@ -219,6 +225,7 @@ TESTS_TARGETS = \ box_seed \ chacha20 \ codecs \ + codecs2 \ core_keccak1600 \ core1 \ core2 \ @@ -270,7 +277,8 @@ TESTS_TARGETS = \ xof_shake128 \ xof_shake256 \ xof_turboshake128 \ - xof_turboshake256 + xof_turboshake256 \ + xof2 if !EMSCRIPTEN TESTS_TARGETS += \ @@ -354,6 +362,9 @@ chacha20_LDADD = $(TESTS_LDADD) codecs_SOURCE = cmptest.h codecs.c codecs_LDADD = $(TESTS_LDADD) +codecs2_SOURCE = cmptest.h codecs2.c +codecs2_LDADD = $(TESTS_LDADD) + core_ed25519_SOURCE = cmptest.h core_ed25519.c core_ed25519_LDADD = $(TESTS_LDADD) @@ -411,6 +422,9 @@ kdf_hkdf_LDADD = $(TESTS_LDADD) kdf_hkdf2_SOURCE = cmptest.h kdf_hkdf2.c kdf_hkdf2_LDADD = $(TESTS_LDADD) +kdf_hkdf3_SOURCE = cmptest.h kdf_hkdf3.c +kdf_hkdf3_LDADD = $(TESTS_LDADD) + keygen_SOURCE = cmptest.h keygen.c keygen_LDADD = $(TESTS_LDADD) @@ -549,12 +563,16 @@ xof_turboshake128_LDADD = $(TESTS_LDADD) xof_turboshake256_SOURCE = cmptest.h xof_turboshake256.c xof_turboshake256_LDADD = $(TESTS_LDADD) +xof2_SOURCE = cmptest.h xof2.c +xof2_LDADD = $(TESTS_LDADD) + if !MINIMAL TESTS_TARGETS += \ core_ed25519 \ core_ristretto255 \ kdf_hkdf \ kdf_hkdf2 \ + kdf_hkdf3 \ pwhash_scrypt \ stream5 \ pwhash_scrypt_ll \ diff --git a/test/default/Makefile.in b/test/default/Makefile.in index d1639595..4a1c2207 100644 --- a/test/default/Makefile.in +++ b/test/default/Makefile.in @@ -101,6 +101,7 @@ TESTS = $(am__EXEEXT_3) @MINIMAL_FALSE@ core_ristretto255 \ @MINIMAL_FALSE@ kdf_hkdf \ @MINIMAL_FALSE@ kdf_hkdf2 \ +@MINIMAL_FALSE@ kdf_hkdf3 \ @MINIMAL_FALSE@ pwhash_scrypt \ @MINIMAL_FALSE@ stream5 \ @MINIMAL_FALSE@ pwhash_scrypt_ll \ @@ -133,8 +134,9 @@ CONFIG_CLEAN_VPATH_FILES = @EMSCRIPTEN_FALSE@ sodium_utils3$(EXEEXT) @MINIMAL_FALSE@am__EXEEXT_2 = core_ed25519$(EXEEXT) \ @MINIMAL_FALSE@ core_ristretto255$(EXEEXT) kdf_hkdf$(EXEEXT) \ -@MINIMAL_FALSE@ kdf_hkdf2$(EXEEXT) pwhash_scrypt$(EXEEXT) \ -@MINIMAL_FALSE@ stream5$(EXEEXT) pwhash_scrypt_ll$(EXEEXT) \ +@MINIMAL_FALSE@ kdf_hkdf2$(EXEEXT) kdf_hkdf3$(EXEEXT) \ +@MINIMAL_FALSE@ pwhash_scrypt$(EXEEXT) stream5$(EXEEXT) \ +@MINIMAL_FALSE@ pwhash_scrypt_ll$(EXEEXT) \ @MINIMAL_FALSE@ scalarmult_ed25519$(EXEEXT) \ @MINIMAL_FALSE@ scalarmult_ristretto255$(EXEEXT) \ @MINIMAL_FALSE@ siphashx24$(EXEEXT) xchacha20$(EXEEXT) @@ -146,9 +148,9 @@ am__EXEEXT_3 = aead_aegis128l$(EXEEXT) aead_aegis256$(EXEEXT) \ box$(EXEEXT) box2$(EXEEXT) box7$(EXEEXT) box8$(EXEEXT) \ box_easy$(EXEEXT) box_easy2$(EXEEXT) box_seal$(EXEEXT) \ box_seed$(EXEEXT) chacha20$(EXEEXT) codecs$(EXEEXT) \ - core_keccak1600$(EXEEXT) core1$(EXEEXT) core2$(EXEEXT) \ - core3$(EXEEXT) core4$(EXEEXT) core5$(EXEEXT) core6$(EXEEXT) \ - ed25519_convert$(EXEEXT) generichash$(EXEEXT) \ + codecs2$(EXEEXT) core_keccak1600$(EXEEXT) core1$(EXEEXT) \ + core2$(EXEEXT) core3$(EXEEXT) core4$(EXEEXT) core5$(EXEEXT) \ + core6$(EXEEXT) ed25519_convert$(EXEEXT) generichash$(EXEEXT) \ generichash2$(EXEEXT) generichash3$(EXEEXT) hash$(EXEEXT) \ hash3$(EXEEXT) ipcrypt$(EXEEXT) kdf$(EXEEXT) keygen$(EXEEXT) \ kx$(EXEEXT) metamorphic$(EXEEXT) misuse$(EXEEXT) \ @@ -166,7 +168,7 @@ am__EXEEXT_3 = aead_aegis128l$(EXEEXT) aead_aegis256$(EXEEXT) \ stream3$(EXEEXT) stream4$(EXEEXT) verify1$(EXEEXT) \ xof_shake128$(EXEEXT) xof_shake256$(EXEEXT) \ xof_turboshake128$(EXEEXT) xof_turboshake256$(EXEEXT) \ - $(am__EXEEXT_1) $(am__EXEEXT_2) + xof2$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) aead_aegis128l_SOURCES = aead_aegis128l.c aead_aegis128l_OBJECTS = aead_aegis128l.$(OBJEXT) aead_aegis128l_DEPENDENCIES = $(TESTS_LDADD) @@ -240,6 +242,9 @@ chacha20_DEPENDENCIES = $(TESTS_LDADD) codecs_SOURCES = codecs.c codecs_OBJECTS = codecs.$(OBJEXT) codecs_DEPENDENCIES = $(TESTS_LDADD) +codecs2_SOURCES = codecs2.c +codecs2_OBJECTS = codecs2.$(OBJEXT) +codecs2_DEPENDENCIES = $(TESTS_LDADD) core1_SOURCES = core1.c core1_OBJECTS = core1.$(OBJEXT) core1_DEPENDENCIES = $(TESTS_LDADD) @@ -297,6 +302,9 @@ kdf_hkdf_DEPENDENCIES = $(TESTS_LDADD) kdf_hkdf2_SOURCES = kdf_hkdf2.c kdf_hkdf2_OBJECTS = kdf_hkdf2.$(OBJEXT) kdf_hkdf2_DEPENDENCIES = $(TESTS_LDADD) +kdf_hkdf3_SOURCES = kdf_hkdf3.c +kdf_hkdf3_OBJECTS = kdf_hkdf3.$(OBJEXT) +kdf_hkdf3_DEPENDENCIES = $(TESTS_LDADD) keygen_SOURCES = keygen.c keygen_OBJECTS = keygen.$(OBJEXT) keygen_DEPENDENCIES = $(TESTS_LDADD) @@ -425,6 +433,9 @@ verify1_DEPENDENCIES = $(TESTS_LDADD) xchacha20_SOURCES = xchacha20.c xchacha20_OBJECTS = xchacha20.$(OBJEXT) xchacha20_DEPENDENCIES = $(TESTS_LDADD) +xof2_SOURCES = xof2.c +xof2_OBJECTS = xof2.$(OBJEXT) +xof2_DEPENDENCIES = $(TESTS_LDADD) xof_shake128_SOURCES = xof_shake128.c xof_shake128_OBJECTS = xof_shake128.$(OBJEXT) xof_shake128_DEPENDENCIES = $(TESTS_LDADD) @@ -464,8 +475,9 @@ am__depfiles_remade = ./$(DEPDIR)/aead_aegis128l.Po \ ./$(DEPDIR)/box_easy.Po ./$(DEPDIR)/box_easy2.Po \ ./$(DEPDIR)/box_seal.Po ./$(DEPDIR)/box_seed.Po \ ./$(DEPDIR)/chacha20.Po ./$(DEPDIR)/codecs.Po \ - ./$(DEPDIR)/core1.Po ./$(DEPDIR)/core2.Po ./$(DEPDIR)/core3.Po \ - ./$(DEPDIR)/core4.Po ./$(DEPDIR)/core5.Po ./$(DEPDIR)/core6.Po \ + ./$(DEPDIR)/codecs2.Po ./$(DEPDIR)/core1.Po \ + ./$(DEPDIR)/core2.Po ./$(DEPDIR)/core3.Po ./$(DEPDIR)/core4.Po \ + ./$(DEPDIR)/core5.Po ./$(DEPDIR)/core6.Po \ ./$(DEPDIR)/core_ed25519.Po ./$(DEPDIR)/core_keccak1600.Po \ ./$(DEPDIR)/core_ristretto255.Po \ ./$(DEPDIR)/ed25519_convert.Po ./$(DEPDIR)/generichash.Po \ @@ -473,16 +485,16 @@ am__depfiles_remade = ./$(DEPDIR)/aead_aegis128l.Po \ ./$(DEPDIR)/hash.Po ./$(DEPDIR)/hash3.Po \ ./$(DEPDIR)/ipcrypt.Po ./$(DEPDIR)/kdf.Po \ ./$(DEPDIR)/kdf_hkdf.Po ./$(DEPDIR)/kdf_hkdf2.Po \ - ./$(DEPDIR)/keygen.Po ./$(DEPDIR)/kx.Po \ - ./$(DEPDIR)/metamorphic.Po ./$(DEPDIR)/misuse.Po \ - ./$(DEPDIR)/onetimeauth.Po ./$(DEPDIR)/onetimeauth2.Po \ - ./$(DEPDIR)/onetimeauth7.Po ./$(DEPDIR)/pwhash_argon2i.Po \ - ./$(DEPDIR)/pwhash_argon2id.Po ./$(DEPDIR)/pwhash_scrypt.Po \ - ./$(DEPDIR)/pwhash_scrypt_ll.Po ./$(DEPDIR)/randombytes.Po \ - ./$(DEPDIR)/scalarmult.Po ./$(DEPDIR)/scalarmult2.Po \ - ./$(DEPDIR)/scalarmult5.Po ./$(DEPDIR)/scalarmult6.Po \ - ./$(DEPDIR)/scalarmult7.Po ./$(DEPDIR)/scalarmult8.Po \ - ./$(DEPDIR)/scalarmult_ed25519.Po \ + ./$(DEPDIR)/kdf_hkdf3.Po ./$(DEPDIR)/keygen.Po \ + ./$(DEPDIR)/kx.Po ./$(DEPDIR)/metamorphic.Po \ + ./$(DEPDIR)/misuse.Po ./$(DEPDIR)/onetimeauth.Po \ + ./$(DEPDIR)/onetimeauth2.Po ./$(DEPDIR)/onetimeauth7.Po \ + ./$(DEPDIR)/pwhash_argon2i.Po ./$(DEPDIR)/pwhash_argon2id.Po \ + ./$(DEPDIR)/pwhash_scrypt.Po ./$(DEPDIR)/pwhash_scrypt_ll.Po \ + ./$(DEPDIR)/randombytes.Po ./$(DEPDIR)/scalarmult.Po \ + ./$(DEPDIR)/scalarmult2.Po ./$(DEPDIR)/scalarmult5.Po \ + ./$(DEPDIR)/scalarmult6.Po ./$(DEPDIR)/scalarmult7.Po \ + ./$(DEPDIR)/scalarmult8.Po ./$(DEPDIR)/scalarmult_ed25519.Po \ ./$(DEPDIR)/scalarmult_ristretto255.Po \ ./$(DEPDIR)/secretbox.Po ./$(DEPDIR)/secretbox2.Po \ ./$(DEPDIR)/secretbox7.Po ./$(DEPDIR)/secretbox8.Po \ @@ -495,8 +507,9 @@ am__depfiles_remade = ./$(DEPDIR)/aead_aegis128l.Po \ ./$(DEPDIR)/stream.Po ./$(DEPDIR)/stream2.Po \ ./$(DEPDIR)/stream3.Po ./$(DEPDIR)/stream4.Po \ ./$(DEPDIR)/stream5.Po ./$(DEPDIR)/verify1.Po \ - ./$(DEPDIR)/xchacha20.Po ./$(DEPDIR)/xof_shake128.Po \ - ./$(DEPDIR)/xof_shake256.Po ./$(DEPDIR)/xof_turboshake128.Po \ + ./$(DEPDIR)/xchacha20.Po ./$(DEPDIR)/xof2.Po \ + ./$(DEPDIR)/xof_shake128.Po ./$(DEPDIR)/xof_shake256.Po \ + ./$(DEPDIR)/xof_turboshake128.Po \ ./$(DEPDIR)/xof_turboshake256.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ @@ -522,43 +535,45 @@ SOURCES = aead_aegis128l.c aead_aegis256.c aead_aes256gcm.c \ aead_chacha20poly13052.c aead_xchacha20poly1305.c auth.c \ auth2.c auth3.c auth5.c auth6.c auth7.c box.c box2.c box7.c \ box8.c box_easy.c box_easy2.c box_seal.c box_seed.c chacha20.c \ - codecs.c core1.c core2.c core3.c core4.c core5.c core6.c \ - core_ed25519.c core_keccak1600.c core_ristretto255.c \ + codecs.c codecs2.c core1.c core2.c core3.c core4.c core5.c \ + core6.c core_ed25519.c core_keccak1600.c core_ristretto255.c \ ed25519_convert.c generichash.c generichash2.c generichash3.c \ - hash.c hash3.c ipcrypt.c kdf.c kdf_hkdf.c kdf_hkdf2.c keygen.c \ - kx.c metamorphic.c misuse.c onetimeauth.c onetimeauth2.c \ - onetimeauth7.c pwhash_argon2i.c pwhash_argon2id.c \ - pwhash_scrypt.c pwhash_scrypt_ll.c randombytes.c scalarmult.c \ - scalarmult2.c scalarmult5.c scalarmult6.c scalarmult7.c \ - scalarmult8.c scalarmult_ed25519.c scalarmult_ristretto255.c \ - secretbox.c secretbox2.c secretbox7.c secretbox8.c \ - secretbox_easy.c secretbox_easy2.c \ + hash.c hash3.c ipcrypt.c kdf.c kdf_hkdf.c kdf_hkdf2.c \ + kdf_hkdf3.c keygen.c kx.c metamorphic.c misuse.c onetimeauth.c \ + onetimeauth2.c onetimeauth7.c pwhash_argon2i.c \ + pwhash_argon2id.c pwhash_scrypt.c pwhash_scrypt_ll.c \ + randombytes.c scalarmult.c scalarmult2.c scalarmult5.c \ + scalarmult6.c scalarmult7.c scalarmult8.c scalarmult_ed25519.c \ + scalarmult_ristretto255.c secretbox.c secretbox2.c \ + secretbox7.c secretbox8.c secretbox_easy.c secretbox_easy2.c \ secretstream_xchacha20poly1305.c shorthash.c sign.c \ siphashx24.c sodium_core.c sodium_utils.c sodium_utils2.c \ sodium_utils3.c sodium_version.c stream.c stream2.c stream3.c \ - stream4.c stream5.c verify1.c xchacha20.c xof_shake128.c \ - xof_shake256.c xof_turboshake128.c xof_turboshake256.c + stream4.c stream5.c verify1.c xchacha20.c xof2.c \ + xof_shake128.c xof_shake256.c xof_turboshake128.c \ + xof_turboshake256.c DIST_SOURCES = aead_aegis128l.c aead_aegis256.c aead_aes256gcm.c \ aead_aes256gcm2.c aead_chacha20poly1305.c \ aead_chacha20poly13052.c aead_xchacha20poly1305.c auth.c \ auth2.c auth3.c auth5.c auth6.c auth7.c box.c box2.c box7.c \ box8.c box_easy.c box_easy2.c box_seal.c box_seed.c chacha20.c \ - codecs.c core1.c core2.c core3.c core4.c core5.c core6.c \ - core_ed25519.c core_keccak1600.c core_ristretto255.c \ + codecs.c codecs2.c core1.c core2.c core3.c core4.c core5.c \ + core6.c core_ed25519.c core_keccak1600.c core_ristretto255.c \ ed25519_convert.c generichash.c generichash2.c generichash3.c \ - hash.c hash3.c ipcrypt.c kdf.c kdf_hkdf.c kdf_hkdf2.c keygen.c \ - kx.c metamorphic.c misuse.c onetimeauth.c onetimeauth2.c \ - onetimeauth7.c pwhash_argon2i.c pwhash_argon2id.c \ - pwhash_scrypt.c pwhash_scrypt_ll.c randombytes.c scalarmult.c \ - scalarmult2.c scalarmult5.c scalarmult6.c scalarmult7.c \ - scalarmult8.c scalarmult_ed25519.c scalarmult_ristretto255.c \ - secretbox.c secretbox2.c secretbox7.c secretbox8.c \ - secretbox_easy.c secretbox_easy2.c \ + hash.c hash3.c ipcrypt.c kdf.c kdf_hkdf.c kdf_hkdf2.c \ + kdf_hkdf3.c keygen.c kx.c metamorphic.c misuse.c onetimeauth.c \ + onetimeauth2.c onetimeauth7.c pwhash_argon2i.c \ + pwhash_argon2id.c pwhash_scrypt.c pwhash_scrypt_ll.c \ + randombytes.c scalarmult.c scalarmult2.c scalarmult5.c \ + scalarmult6.c scalarmult7.c scalarmult8.c scalarmult_ed25519.c \ + scalarmult_ristretto255.c secretbox.c secretbox2.c \ + secretbox7.c secretbox8.c secretbox_easy.c secretbox_easy2.c \ secretstream_xchacha20poly1305.c shorthash.c sign.c \ siphashx24.c sodium_core.c sodium_utils.c sodium_utils2.c \ sodium_utils3.c sodium_version.c stream.c stream2.c stream3.c \ - stream4.c stream5.c verify1.c xchacha20.c xof_shake128.c \ - xof_shake256.c xof_turboshake128.c xof_turboshake256.c + stream4.c stream5.c verify1.c xchacha20.c xof2.c \ + xof_shake128.c xof_shake256.c xof_turboshake128.c \ + xof_turboshake256.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -995,6 +1010,7 @@ EXTRA_DIST = \ box_seed.exp \ chacha20.exp \ codecs.exp \ + codecs2.exp \ core_ed25519.exp \ core_keccak1600.exp \ core_ristretto255.exp \ @@ -1014,6 +1030,7 @@ EXTRA_DIST = \ kdf.exp \ kdf_hkdf.exp \ kdf_hkdf2.exp \ + kdf_hkdf3.exp \ keygen.exp \ kx.exp \ metamorphic.exp \ @@ -1059,7 +1076,8 @@ EXTRA_DIST = \ xof_shake128.exp \ xof_shake256.exp \ xof_turboshake128.exp \ - xof_turboshake256.exp + xof_turboshake256.exp \ + xof2.exp DISTCLEANFILES = \ aead_aegis128l.res \ @@ -1085,6 +1103,7 @@ DISTCLEANFILES = \ box_seed.res \ chacha20.res \ codecs.res \ + codecs2.res \ core_ed25519.res \ core_keccak1600.res \ core_ristretto255.res \ @@ -1105,6 +1124,7 @@ DISTCLEANFILES = \ kdf.res \ kdf_hkdf.res \ kdf_hkdf2.res \ + kdf_hkdf3.res \ keygen.res \ kx.res \ metamorphic.res \ @@ -1150,7 +1170,8 @@ DISTCLEANFILES = \ xof_shake128.res \ xof_shake256.res \ xof_turboshake128.res \ - xof_turboshake256.res + xof_turboshake256.res \ + xof2.res AM_CPPFLAGS = \ -DTEST_SRCDIR=\"@srcdir@\" \ @@ -1165,17 +1186,17 @@ TESTS_TARGETS = aead_aegis128l aead_aegis256 aead_aes256gcm \ aead_aes256gcm2 aead_chacha20poly1305 aead_chacha20poly13052 \ aead_xchacha20poly1305 auth auth2 auth3 auth5 auth6 auth7 box \ box2 box7 box8 box_easy box_easy2 box_seal box_seed chacha20 \ - codecs core_keccak1600 core1 core2 core3 core4 core5 core6 \ - ed25519_convert generichash generichash2 generichash3 hash \ - hash3 ipcrypt kdf keygen kx metamorphic misuse onetimeauth \ - onetimeauth2 onetimeauth7 pwhash_argon2i pwhash_argon2id \ - randombytes scalarmult scalarmult2 scalarmult5 scalarmult6 \ - scalarmult7 scalarmult8 secretbox secretbox2 secretbox7 \ - secretbox8 secretbox_easy secretbox_easy2 \ + codecs codecs2 core_keccak1600 core1 core2 core3 core4 core5 \ + core6 ed25519_convert generichash generichash2 generichash3 \ + hash hash3 ipcrypt kdf keygen kx metamorphic misuse \ + onetimeauth onetimeauth2 onetimeauth7 pwhash_argon2i \ + pwhash_argon2id randombytes scalarmult scalarmult2 scalarmult5 \ + scalarmult6 scalarmult7 scalarmult8 secretbox secretbox2 \ + secretbox7 secretbox8 secretbox_easy secretbox_easy2 \ secretstream_xchacha20poly1305 shorthash sign sodium_core \ sodium_utils sodium_version stream stream2 stream3 stream4 \ verify1 xof_shake128 xof_shake256 xof_turboshake128 \ - xof_turboshake256 $(am__append_1) $(am__append_2) + xof_turboshake256 xof2 $(am__append_1) $(am__append_2) TESTS_LDADD = \ ${top_builddir}/src/libsodium/libsodium.la @@ -1225,6 +1246,8 @@ chacha20_SOURCE = cmptest.h chacha20.c chacha20_LDADD = $(TESTS_LDADD) codecs_SOURCE = cmptest.h codecs.c codecs_LDADD = $(TESTS_LDADD) +codecs2_SOURCE = cmptest.h codecs2.c +codecs2_LDADD = $(TESTS_LDADD) core_ed25519_SOURCE = cmptest.h core_ed25519.c core_ed25519_LDADD = $(TESTS_LDADD) core_keccak1600_SOURCE = cmptest.h core_keccak1600.c @@ -1263,6 +1286,8 @@ kdf_hkdf_SOURCE = cmptest.h kdf_hkdf.c kdf_hkdf_LDADD = $(TESTS_LDADD) kdf_hkdf2_SOURCE = cmptest.h kdf_hkdf2.c kdf_hkdf2_LDADD = $(TESTS_LDADD) +kdf_hkdf3_SOURCE = cmptest.h kdf_hkdf3.c +kdf_hkdf3_LDADD = $(TESTS_LDADD) keygen_SOURCE = cmptest.h keygen.c keygen_LDADD = $(TESTS_LDADD) kx_SOURCE = cmptest.h kx.c @@ -1355,6 +1380,8 @@ xof_turboshake128_SOURCE = cmptest.h xof_turboshake128.c xof_turboshake128_LDADD = $(TESTS_LDADD) xof_turboshake256_SOURCE = cmptest.h xof_turboshake256.c xof_turboshake256_LDADD = $(TESTS_LDADD) +xof2_SOURCE = cmptest.h xof2.c +xof2_LDADD = $(TESTS_LDADD) @WASI_TRUE@LOG_COMPILER = ./wasi-test-wrapper.sh all: all-am @@ -1486,6 +1513,10 @@ codecs$(EXEEXT): $(codecs_OBJECTS) $(codecs_DEPENDENCIES) $(EXTRA_codecs_DEPENDE @rm -f codecs$(EXEEXT) $(AM_V_CCLD)$(LINK) $(codecs_OBJECTS) $(codecs_LDADD) $(LIBS) +codecs2$(EXEEXT): $(codecs2_OBJECTS) $(codecs2_DEPENDENCIES) $(EXTRA_codecs2_DEPENDENCIES) + @rm -f codecs2$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(codecs2_OBJECTS) $(codecs2_LDADD) $(LIBS) + core1$(EXEEXT): $(core1_OBJECTS) $(core1_DEPENDENCIES) $(EXTRA_core1_DEPENDENCIES) @rm -f core1$(EXEEXT) $(AM_V_CCLD)$(LINK) $(core1_OBJECTS) $(core1_LDADD) $(LIBS) @@ -1562,6 +1593,10 @@ kdf_hkdf2$(EXEEXT): $(kdf_hkdf2_OBJECTS) $(kdf_hkdf2_DEPENDENCIES) $(EXTRA_kdf_h @rm -f kdf_hkdf2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(kdf_hkdf2_OBJECTS) $(kdf_hkdf2_LDADD) $(LIBS) +kdf_hkdf3$(EXEEXT): $(kdf_hkdf3_OBJECTS) $(kdf_hkdf3_DEPENDENCIES) $(EXTRA_kdf_hkdf3_DEPENDENCIES) + @rm -f kdf_hkdf3$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(kdf_hkdf3_OBJECTS) $(kdf_hkdf3_LDADD) $(LIBS) + keygen$(EXEEXT): $(keygen_OBJECTS) $(keygen_DEPENDENCIES) $(EXTRA_keygen_DEPENDENCIES) @rm -f keygen$(EXEEXT) $(AM_V_CCLD)$(LINK) $(keygen_OBJECTS) $(keygen_LDADD) $(LIBS) @@ -1730,6 +1765,10 @@ xchacha20$(EXEEXT): $(xchacha20_OBJECTS) $(xchacha20_DEPENDENCIES) $(EXTRA_xchac @rm -f xchacha20$(EXEEXT) $(AM_V_CCLD)$(LINK) $(xchacha20_OBJECTS) $(xchacha20_LDADD) $(LIBS) +xof2$(EXEEXT): $(xof2_OBJECTS) $(xof2_DEPENDENCIES) $(EXTRA_xof2_DEPENDENCIES) + @rm -f xof2$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(xof2_OBJECTS) $(xof2_LDADD) $(LIBS) + xof_shake128$(EXEEXT): $(xof_shake128_OBJECTS) $(xof_shake128_DEPENDENCIES) $(EXTRA_xof_shake128_DEPENDENCIES) @rm -f xof_shake128$(EXEEXT) $(AM_V_CCLD)$(LINK) $(xof_shake128_OBJECTS) $(xof_shake128_LDADD) $(LIBS) @@ -1775,6 +1814,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/box_seed.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chacha20.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/codecs.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/codecs2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/core1.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/core2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/core3.Po@am__quote@ # am--include-marker @@ -1794,6 +1834,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kdf.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kdf_hkdf.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kdf_hkdf2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kdf_hkdf3.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keygen.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kx.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/metamorphic.Po@am__quote@ # am--include-marker @@ -1836,6 +1877,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stream5.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/verify1.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xchacha20.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xof2.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xof_shake128.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xof_shake256.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xof_turboshake128.Po@am__quote@ # am--include-marker @@ -2256,6 +2298,13 @@ codecs.log: codecs$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +codecs2.log: codecs2$(EXEEXT) + @p='codecs2$(EXEEXT)'; \ + b='codecs2'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) core_keccak1600.log: core_keccak1600$(EXEEXT) @p='core_keccak1600$(EXEEXT)'; \ b='core_keccak1600'; \ @@ -2620,6 +2669,13 @@ xof_turboshake256.log: xof_turboshake256$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +xof2.log: xof2$(EXEEXT) + @p='xof2$(EXEEXT)'; \ + b='xof2'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) sodium_utils2.log: sodium_utils2$(EXEEXT) @p='sodium_utils2$(EXEEXT)'; \ b='sodium_utils2'; \ @@ -2662,6 +2718,13 @@ kdf_hkdf2.log: kdf_hkdf2$(EXEEXT) --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) +kdf_hkdf3.log: kdf_hkdf3$(EXEEXT) + @p='kdf_hkdf3$(EXEEXT)'; \ + b='kdf_hkdf3'; \ + $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ + --log-file $$b.log --trs-file $$b.trs \ + $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ + "$$tst" $(AM_TESTS_FD_REDIRECT) pwhash_scrypt.log: pwhash_scrypt$(EXEEXT) @p='pwhash_scrypt$(EXEEXT)'; \ b='pwhash_scrypt'; \ @@ -2828,6 +2891,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/box_seed.Po -rm -f ./$(DEPDIR)/chacha20.Po -rm -f ./$(DEPDIR)/codecs.Po + -rm -f ./$(DEPDIR)/codecs2.Po -rm -f ./$(DEPDIR)/core1.Po -rm -f ./$(DEPDIR)/core2.Po -rm -f ./$(DEPDIR)/core3.Po @@ -2847,6 +2911,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/kdf.Po -rm -f ./$(DEPDIR)/kdf_hkdf.Po -rm -f ./$(DEPDIR)/kdf_hkdf2.Po + -rm -f ./$(DEPDIR)/kdf_hkdf3.Po -rm -f ./$(DEPDIR)/keygen.Po -rm -f ./$(DEPDIR)/kx.Po -rm -f ./$(DEPDIR)/metamorphic.Po @@ -2889,6 +2954,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/stream5.Po -rm -f ./$(DEPDIR)/verify1.Po -rm -f ./$(DEPDIR)/xchacha20.Po + -rm -f ./$(DEPDIR)/xof2.Po -rm -f ./$(DEPDIR)/xof_shake128.Po -rm -f ./$(DEPDIR)/xof_shake256.Po -rm -f ./$(DEPDIR)/xof_turboshake128.Po @@ -2961,6 +3027,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/box_seed.Po -rm -f ./$(DEPDIR)/chacha20.Po -rm -f ./$(DEPDIR)/codecs.Po + -rm -f ./$(DEPDIR)/codecs2.Po -rm -f ./$(DEPDIR)/core1.Po -rm -f ./$(DEPDIR)/core2.Po -rm -f ./$(DEPDIR)/core3.Po @@ -2980,6 +3047,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/kdf.Po -rm -f ./$(DEPDIR)/kdf_hkdf.Po -rm -f ./$(DEPDIR)/kdf_hkdf2.Po + -rm -f ./$(DEPDIR)/kdf_hkdf3.Po -rm -f ./$(DEPDIR)/keygen.Po -rm -f ./$(DEPDIR)/kx.Po -rm -f ./$(DEPDIR)/metamorphic.Po @@ -3022,6 +3090,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/stream5.Po -rm -f ./$(DEPDIR)/verify1.Po -rm -f ./$(DEPDIR)/xchacha20.Po + -rm -f ./$(DEPDIR)/xof2.Po -rm -f ./$(DEPDIR)/xof_shake128.Po -rm -f ./$(DEPDIR)/xof_shake256.Po -rm -f ./$(DEPDIR)/xof_turboshake128.Po diff --git a/test/default/aead_aegis128l.c b/test/default/aead_aegis128l.c index b8d85aa3..51eb39b0 100644 --- a/test/default/aead_aegis128l.c +++ b/test/default/aead_aegis128l.c @@ -636,6 +636,12 @@ main(void) assert(crypto_aead_aegis128l_npubbytes() == crypto_aead_aegis128l_NPUBBYTES); assert(crypto_aead_aegis128l_abytes() == crypto_aead_aegis128l_ABYTES); assert(crypto_aead_aegis128l_messagebytes_max() == crypto_aead_aegis128l_MESSAGEBYTES_MAX); + + { + unsigned char k[crypto_aead_aegis128l_KEYBYTES]; + crypto_aead_aegis128l_keygen(k); + assert(!sodium_is_zero(k, sizeof k)); + } printf("OK\n"); return 0; diff --git a/test/default/aead_aegis256.c b/test/default/aead_aegis256.c index e7158c88..1ba318c8 100644 --- a/test/default/aead_aegis256.c +++ b/test/default/aead_aegis256.c @@ -717,6 +717,12 @@ main(void) assert(crypto_aead_aegis256_npubbytes() == crypto_aead_aegis256_NPUBBYTES); assert(crypto_aead_aegis256_abytes() == crypto_aead_aegis256_ABYTES); assert(crypto_aead_aegis256_messagebytes_max() == crypto_aead_aegis256_MESSAGEBYTES_MAX); + + { + unsigned char k[crypto_aead_aegis256_KEYBYTES]; + crypto_aead_aegis256_keygen(k); + assert(!sodium_is_zero(k, sizeof k)); + } printf("OK\n"); return 0; diff --git a/test/default/aead_aes256gcm2.c b/test/default/aead_aes256gcm2.c index 43170b5d..1fe9fc36 100644 --- a/test/default/aead_aes256gcm2.c +++ b/test/default/aead_aes256gcm2.c @@ -268,7 +268,23 @@ int main(void) { if (crypto_aead_aes256gcm_is_available()) { + crypto_aead_aes256gcm_state st; + unsigned char key[crypto_aead_aes256gcm_KEYBYTES]; + unsigned char nonce[crypto_aead_aes256gcm_NPUBBYTES]; + unsigned char m[16] = { 0 }; + unsigned char c[16 + crypto_aead_aes256gcm_ABYTES]; + unsigned long long clen; + tv(); + + crypto_aead_aes256gcm_keygen(key); + randombytes_buf(nonce, sizeof nonce); + crypto_aead_aes256gcm_beforenm(&st, key); + assert(crypto_aead_aes256gcm_encrypt_afternm( + c, &clen, m, 16, NULL, 0, NULL, nonce, &st) == 0); + assert(clen == 16 + crypto_aead_aes256gcm_ABYTES); + assert(crypto_aead_aes256gcm_decrypt_afternm( + m, NULL, NULL, c, clen, NULL, 0, nonce, &st) == 0); } printf("OK\n"); diff --git a/test/default/codecs2.c b/test/default/codecs2.c new file mode 100644 index 00000000..459a0dc0 --- /dev/null +++ b/test/default/codecs2.c @@ -0,0 +1,29 @@ + +#define TEST_NAME "codecs2" +#include "cmptest.h" + +int +main(void) +{ + unsigned char ip_bytes[16]; + + assert(sodium_ip2bin(ip_bytes, "fe80::1%eth 0", + strlen("fe80::1%eth 0")) == -1); + assert(sodium_ip2bin(ip_bytes, "fe80::1%\t", + strlen("fe80::1%\t")) == -1); + assert(sodium_ip2bin(ip_bytes, "fe80::1%eth\n0", + strlen("fe80::1%eth\n0")) == -1); + printf("ip2bin: zone with whitespace rejected: OK\n"); + + assert(sodium_ip2bin(ip_bytes, "192.168.1.1%zone", + strlen("192.168.1.1%zone")) == -1); + assert(sodium_ip2bin(ip_bytes, "10.0.0.1%1", + strlen("10.0.0.1%1")) == -1); + printf("ip2bin: IPv4 with zone rejected: OK\n"); + + assert(sodium_ip2bin(ip_bytes, "fe80::1%eth0", + strlen("fe80::1%eth0")) == 0); + printf("ip2bin: valid IPv6 zone: OK\n"); + + return 0; +} diff --git a/test/default/codecs2.exp b/test/default/codecs2.exp new file mode 100644 index 00000000..44117de8 --- /dev/null +++ b/test/default/codecs2.exp @@ -0,0 +1,3 @@ +ip2bin: zone with whitespace rejected: OK +ip2bin: IPv4 with zone rejected: OK +ip2bin: valid IPv6 zone: OK diff --git a/test/default/kdf_hkdf3.c b/test/default/kdf_hkdf3.c new file mode 100644 index 00000000..2091b7e0 --- /dev/null +++ b/test/default/kdf_hkdf3.c @@ -0,0 +1,44 @@ + +#define TEST_NAME "kdf_hkdf3" +#include "cmptest.h" + +int +main(void) +{ + unsigned char prk[crypto_kdf_hkdf_sha512_KEYBYTES]; + unsigned char out[256]; + int ret; + + crypto_kdf_hkdf_sha512_keygen(prk); + assert(!sodium_is_zero(prk, sizeof prk)); + printf("sha512 keygen: ok\n"); + + ret = crypto_kdf_hkdf_sha512_expand( + out, crypto_kdf_hkdf_sha512_BYTES_MAX + 1, + "ctx", 3, prk); + assert(ret == -1); + printf("sha512 expand max+1: ok\n"); + + crypto_kdf_hkdf_sha512_extract(prk, NULL, 0, + (const unsigned char *) "ikm", 3); + + ret = crypto_kdf_hkdf_sha512_expand(out, 100, "ctx", 3, prk); + assert(ret == 0); + printf("sha512 expand partial block: ok\n"); + + { + unsigned char prk256[crypto_kdf_hkdf_sha256_KEYBYTES]; + + crypto_kdf_hkdf_sha256_keygen(prk256); + assert(!sodium_is_zero(prk256, sizeof prk256)); + printf("sha256 keygen: ok\n"); + + ret = crypto_kdf_hkdf_sha256_expand( + out, crypto_kdf_hkdf_sha256_BYTES_MAX + 1, + "ctx", 3, prk256); + assert(ret == -1); + printf("sha256 expand max+1: ok\n"); + } + + return 0; +} diff --git a/test/default/kdf_hkdf3.exp b/test/default/kdf_hkdf3.exp new file mode 100644 index 00000000..953c110c --- /dev/null +++ b/test/default/kdf_hkdf3.exp @@ -0,0 +1,5 @@ +sha512 keygen: ok +sha512 expand max+1: ok +sha512 expand partial block: ok +sha256 keygen: ok +sha256 expand max+1: ok diff --git a/test/default/xof2.c b/test/default/xof2.c new file mode 100644 index 00000000..fdc10743 --- /dev/null +++ b/test/default/xof2.c @@ -0,0 +1,71 @@ + +#define TEST_NAME "xof2" +#include "cmptest.h" + +int +main(void) +{ + unsigned char out[64]; + unsigned char out2[64]; + int ret; + + { + crypto_xof_shake128_state state; + + crypto_xof_shake128_init(&state); + crypto_xof_shake128_update(&state, (const unsigned char *) "test", 4); + crypto_xof_shake128_squeeze(&state, out, 32); + + ret = crypto_xof_shake128_update(&state, (const unsigned char *) "x", 1); + assert(ret == -1); + crypto_xof_shake128_squeeze(&state, out2, 32); + assert(memcmp(out, out2, 32) != 0); + } + printf("shake128 update-after-squeeze: ok\n"); + + { + crypto_xof_shake256_state state; + + crypto_xof_shake256_init(&state); + crypto_xof_shake256_update(&state, (const unsigned char *) "test", 4); + crypto_xof_shake256_squeeze(&state, out, 32); + + ret = crypto_xof_shake256_update(&state, (const unsigned char *) "x", 1); + assert(ret == -1); + crypto_xof_shake256_squeeze(&state, out2, 32); + assert(memcmp(out, out2, 32) != 0); + } + printf("shake256 update-after-squeeze: ok\n"); + + { + crypto_xof_turboshake128_state state; + + crypto_xof_turboshake128_init(&state); + crypto_xof_turboshake128_update(&state, (const unsigned char *) "test", 4); + crypto_xof_turboshake128_squeeze(&state, out, 32); + + ret = crypto_xof_turboshake128_update(&state, + (const unsigned char *) "x", 1); + assert(ret == -1); + crypto_xof_turboshake128_squeeze(&state, out2, 32); + assert(memcmp(out, out2, 32) != 0); + } + printf("turboshake128 update-after-squeeze: ok\n"); + + { + crypto_xof_turboshake256_state state; + + crypto_xof_turboshake256_init(&state); + crypto_xof_turboshake256_update(&state, (const unsigned char *) "test", 4); + crypto_xof_turboshake256_squeeze(&state, out, 32); + + ret = crypto_xof_turboshake256_update(&state, + (const unsigned char *) "x", 1); + assert(ret == -1); + crypto_xof_turboshake256_squeeze(&state, out2, 32); + assert(memcmp(out, out2, 32) != 0); + } + printf("turboshake256 update-after-squeeze: ok\n"); + + return 0; +} diff --git a/test/default/xof2.exp b/test/default/xof2.exp new file mode 100644 index 00000000..c374001a --- /dev/null +++ b/test/default/xof2.exp @@ -0,0 +1,4 @@ +shake128 update-after-squeeze: ok +shake256 update-after-squeeze: ok +turboshake128 update-after-squeeze: ok +turboshake256 update-after-squeeze: ok