diff --git a/.gitignore b/.gitignore index 599d8ce21d..9481ea4b95 100644 --- a/.gitignore +++ b/.gitignore @@ -158,7 +158,7 @@ test/default/stream3 test/default/stream4 test/default/verify1 test/default/vrf -test/default/vrf_03 +test/default/vrf_13 test/default/vrf_batchcompat_13 test/default/core_ed25519_h2c test/default/vrf_batchverify diff --git a/build-aux/config.guess b/build-aux/config.guess index 980b020838..69188da73d 100644 --- a/build-aux/config.guess +++ b/build-aux/config.guess @@ -1,10 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2022 Free Software Foundation, Inc. +# Copyright 1992-2023 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268 # see below for rationale -timestamp='2022-09-17' +timestamp='2023-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -60,7 +60,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2022 Free Software Foundation, Inc. +Copyright 1992-2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." diff --git a/build-aux/config.sub b/build-aux/config.sub index baf1512b3c..de4259e404 100644 --- a/build-aux/config.sub +++ b/build-aux/config.sub @@ -1,10 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2022 Free Software Foundation, Inc. +# Copyright 1992-2023 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268 # see below for rationale -timestamp='2022-09-17' +timestamp='2023-01-21' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -76,7 +76,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright 1992-2022 Free Software Foundation, Inc. +Copyright 1992-2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -1075,7 +1075,7 @@ case $cpu-$vendor in pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) cpu=i586 ;; - pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*) + pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*) cpu=i686 ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) diff --git a/src/libsodium/crypto_vrf/crypto_vrf.c b/src/libsodium/crypto_vrf/crypto_vrf.c index 4711dfe5fa..58bb008dfc 100644 --- a/src/libsodium/crypto_vrf/crypto_vrf.c +++ b/src/libsodium/crypto_vrf/crypto_vrf.c @@ -75,6 +75,13 @@ crypto_vrf_seed_keypair(unsigned char *pk, unsigned char *sk, return 0; } +int +crypto_vrf_keypair_from_seed(unsigned char *pk, unsigned char *sk, + const unsigned char *seed) +{ + return crypto_vrf_seed_keypair(pk, sk, seed); +} + void crypto_vrf_sk_to_pk(unsigned char pk[crypto_vrf_PUBLICKEYBYTES], const unsigned char skpk[crypto_vrf_SECRETKEYBYTES]) @@ -93,7 +100,7 @@ int crypto_vrf_prove(unsigned char *proof, const unsigned char *skpk, const unsigned char *m, const unsigned long long mlen) { - return crypto_vrf_ietfdraft13_prove(proof, skpk, m, mlen); + return crypto_vrf_ietfdraft03_prove(proof, skpk, m, mlen); } int @@ -101,10 +108,10 @@ crypto_vrf_verify(unsigned char *output, const unsigned char *pk, const unsigned char *proof, const unsigned char *m, const unsigned long long mlen) { - return crypto_vrf_ietfdraft13_verify(output, pk, proof, m, mlen); + return crypto_vrf_ietfdraft03_verify(output, pk, proof, m, mlen); } int crypto_vrf_proof_to_hash(unsigned char *hash, const unsigned char *proof) { - return crypto_vrf_ietfdraft13_proof_to_hash(hash, proof); + return crypto_vrf_ietfdraft03_proof_to_hash(hash, proof); } \ No newline at end of file diff --git a/src/libsodium/include/sodium/crypto_vrf.h b/src/libsodium/include/sodium/crypto_vrf.h index d7a69cca03..a5e5404d40 100644 --- a/src/libsodium/include/sodium/crypto_vrf.h +++ b/src/libsodium/include/sodium/crypto_vrf.h @@ -10,7 +10,7 @@ #include -#include "crypto_vrf_ietfdraft13.h" +#include "crypto_vrf_ietfdraft03.h" #include "export.h" #ifdef __cplusplus @@ -27,27 +27,27 @@ static const unsigned char ONE = 0x01; static const unsigned char TWO = 0x02; static const unsigned char THREE = 0x03; -#define crypto_vrf_PROOFBYTES crypto_vrf_ietfdraft13_BYTES +#define crypto_vrf_PROOFBYTES crypto_vrf_ietfdraft03_BYTES SODIUM_EXPORT -size_t crypto_vrf_bytes(void); +size_t crypto_vrf_proofbytes(void); -#define crypto_vrf_OUTPUTBYTES crypto_vrf_ietfdraft13_OUTPUTBYTES +#define crypto_vrf_OUTPUTBYTES crypto_vrf_ietfdraft03_OUTPUTBYTES SODIUM_EXPORT size_t crypto_vrf_outputbytes(void); -#define crypto_vrf_SEEDBYTES crypto_vrf_ietfdraft13_SEEDBYTES +#define crypto_vrf_SEEDBYTES crypto_vrf_ietfdraft03_SEEDBYTES SODIUM_EXPORT size_t crypto_vrf_seedbytes(void); -#define crypto_vrf_PUBLICKEYBYTES crypto_vrf_ietfdraft13_PUBLICKEYBYTES +#define crypto_vrf_PUBLICKEYBYTES crypto_vrf_ietfdraft03_PUBLICKEYBYTES SODIUM_EXPORT size_t crypto_vrf_publickeybytes(void); -#define crypto_vrf_SECRETKEYBYTES crypto_vrf_ietfdraft13_SECRETKEYBYTES +#define crypto_vrf_SECRETKEYBYTES crypto_vrf_ietfdraft03_SECRETKEYBYTES SODIUM_EXPORT size_t crypto_vrf_secretkeybytes(void); -#define crypto_vrf_PRIMITIVE "ietfdraft13" +#define crypto_vrf_PRIMITIVE "ietfdraft03" SODIUM_EXPORT const char *crypto_vrf_primitive(void); @@ -60,6 +60,11 @@ int crypto_vrf_seed_keypair(unsigned char *pk, unsigned char *sk, const unsigned char *seed) __attribute__ ((nonnull)); +SODIUM_EXPORT +int crypto_vrf_keypair_from_seed(unsigned char *pk, unsigned char *sk, + const unsigned char *seed) +__attribute__ ((nonnull)); + SODIUM_EXPORT void crypto_vrf_sk_to_pk(unsigned char *pk, const unsigned char *skpk); diff --git a/test/default/Makefile.am b/test/default/Makefile.am index 1bdf03bf40..f7de746985 100644 --- a/test/default/Makefile.am +++ b/test/default/Makefile.am @@ -83,7 +83,7 @@ EXTRA_DIST = \ stream4.exp \ verify1.exp \ vrf.exp \ - vrf_03.exp \ + vrf_13.exp \ vrf_batchcompat_13.exp \ vrf_batchverify \ xchacha20.exp @@ -168,7 +168,7 @@ DISTCLEANFILES = \ stream4.res \ verify1.res \ vrf.res \ - vrf_03.res \ + vrf_13.res \ vrf_batchcompat_13.res \ vrf_batchverify \ xchacha20.res @@ -252,7 +252,7 @@ TESTS_TARGETS = \ stream4 \ verify1 \ vrf \ - vrf_03 \ + vrf_13 \ vrf_batchcompat_13 \ vrf_batchverify @@ -503,8 +503,8 @@ verify1_LDADD = $(TESTS_LDADD) vrf_SOURCE = cmptest.h vrf.c vrf_LDADD = $(TESTS_LDADD) -vrf_03_SOURCE = cmptest.h vrf_03.c -vrf_03_LDADD = $(TESTS_LDADD) +vrf_13_SOURCE = cmptest.h vrf_13.c +vrf_13_LDADD = $(TESTS_LDADD) vrf_batchcompat_13_SOURCE = cmptest.h vrf_batchcompat_13.c vrf_batchcompat_13_LDADD = $(TESTS_LDADD) diff --git a/test/default/Makefile.in b/test/default/Makefile.in index 9822773d45..ebf1b3878e 100644 --- a/test/default/Makefile.in +++ b/test/default/Makefile.in @@ -156,7 +156,7 @@ am__EXEEXT_3 = aead_aes256gcm$(EXEEXT) aead_aes256gcm2$(EXEEXT) \ shorthash$(EXEEXT) sign$(EXEEXT) sodium_core$(EXEEXT) \ sodium_utils$(EXEEXT) sodium_version$(EXEEXT) stream$(EXEEXT) \ stream2$(EXEEXT) stream3$(EXEEXT) stream4$(EXEEXT) \ - verify1$(EXEEXT) vrf$(EXEEXT) vrf_03$(EXEEXT) \ + verify1$(EXEEXT) vrf$(EXEEXT) vrf_13$(EXEEXT) \ vrf_batchcompat_13$(EXEEXT) vrf_batchverify$(EXEEXT) \ $(am__EXEEXT_1) $(am__EXEEXT_2) aead_aes256gcm_SOURCES = aead_aes256gcm.c @@ -397,9 +397,9 @@ verify1_DEPENDENCIES = $(TESTS_LDADD) vrf_SOURCES = vrf.c vrf_OBJECTS = vrf.$(OBJEXT) vrf_DEPENDENCIES = $(TESTS_LDADD) -vrf_03_SOURCES = vrf_03.c -vrf_03_OBJECTS = vrf_03.$(OBJEXT) -vrf_03_DEPENDENCIES = $(TESTS_LDADD) +vrf_13_SOURCES = vrf_13.c +vrf_13_OBJECTS = vrf_13.$(OBJEXT) +vrf_13_DEPENDENCIES = $(TESTS_LDADD) vrf_batchcompat_13_SOURCES = vrf_batchcompat_13.c vrf_batchcompat_13_OBJECTS = vrf_batchcompat_13.$(OBJEXT) vrf_batchcompat_13_DEPENDENCIES = $(TESTS_LDADD) @@ -463,7 +463,7 @@ am__depfiles_remade = ./$(DEPDIR)/aead_aes256gcm.Po \ ./$(DEPDIR)/sodium_version.Po ./$(DEPDIR)/stream.Po \ ./$(DEPDIR)/stream2.Po ./$(DEPDIR)/stream3.Po \ ./$(DEPDIR)/stream4.Po ./$(DEPDIR)/verify1.Po \ - ./$(DEPDIR)/vrf.Po ./$(DEPDIR)/vrf_03.Po \ + ./$(DEPDIR)/vrf.Po ./$(DEPDIR)/vrf_13.Po \ ./$(DEPDIR)/vrf_batchcompat_13.Po \ ./$(DEPDIR)/vrf_batchverify.Po ./$(DEPDIR)/xchacha20.Po am__mv = mv -f @@ -502,7 +502,7 @@ SOURCES = aead_aes256gcm.c aead_aes256gcm2.c aead_chacha20poly1305.c \ secretstream.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 \ - verify1.c vrf.c vrf_03.c vrf_batchcompat_13.c \ + verify1.c vrf.c vrf_13.c vrf_batchcompat_13.c \ vrf_batchverify.c xchacha20.c DIST_SOURCES = aead_aes256gcm.c aead_aes256gcm2.c \ aead_chacha20poly1305.c aead_chacha20poly13052.c \ @@ -522,7 +522,7 @@ DIST_SOURCES = aead_aes256gcm.c aead_aes256gcm2.c \ secretstream.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 \ - verify1.c vrf.c vrf_03.c vrf_batchcompat_13.c \ + verify1.c vrf.c vrf_13.c vrf_batchcompat_13.c \ vrf_batchverify.c xchacha20.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ @@ -1003,7 +1003,7 @@ EXTRA_DIST = \ stream4.exp \ verify1.exp \ vrf.exp \ - vrf_03.exp \ + vrf_13.exp \ vrf_batchcompat_13.exp \ vrf_batchverify \ xchacha20.exp @@ -1088,7 +1088,7 @@ DISTCLEANFILES = \ stream4.res \ verify1.res \ vrf.res \ - vrf_03.res \ + vrf_13.res \ vrf_batchcompat_13.res \ vrf_batchverify \ xchacha20.res @@ -1114,7 +1114,7 @@ TESTS_TARGETS = aead_aes256gcm aead_aes256gcm2 aead_chacha20poly1305 \ secretbox7 secretbox8 secretbox_easy secretbox_easy2 \ secretstream shorthash sign sodium_core sodium_utils \ sodium_version stream stream2 stream3 stream4 verify1 vrf \ - vrf_03 vrf_batchcompat_13 vrf_batchverify $(am__append_1) \ + vrf_13 vrf_batchcompat_13 vrf_batchverify $(am__append_1) \ $(am__append_2) TESTS_LDADD = \ ${top_builddir}/src/libsodium/libsodium.la @@ -1275,8 +1275,8 @@ verify1_SOURCE = cmptest.h verify1.c verify1_LDADD = $(TESTS_LDADD) vrf_SOURCE = cmptest.h vrf.c vrf_LDADD = $(TESTS_LDADD) -vrf_03_SOURCE = cmptest.h vrf_03.c -vrf_03_LDADD = $(TESTS_LDADD) +vrf_13_SOURCE = cmptest.h vrf_13.c +vrf_13_LDADD = $(TESTS_LDADD) vrf_batchcompat_13_SOURCE = cmptest.h vrf_batchcompat_13.c vrf_batchcompat_13_LDADD = $(TESTS_LDADD) vrf_batchverify_SOURCE = cmptest.h vrf_batchverify.c @@ -1639,9 +1639,9 @@ vrf$(EXEEXT): $(vrf_OBJECTS) $(vrf_DEPENDENCIES) $(EXTRA_vrf_DEPENDENCIES) @rm -f vrf$(EXEEXT) $(AM_V_CCLD)$(LINK) $(vrf_OBJECTS) $(vrf_LDADD) $(LIBS) -vrf_03$(EXEEXT): $(vrf_03_OBJECTS) $(vrf_03_DEPENDENCIES) $(EXTRA_vrf_03_DEPENDENCIES) - @rm -f vrf_03$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(vrf_03_OBJECTS) $(vrf_03_LDADD) $(LIBS) +vrf_13$(EXEEXT): $(vrf_13_OBJECTS) $(vrf_13_DEPENDENCIES) $(EXTRA_vrf_13_DEPENDENCIES) + @rm -f vrf_13$(EXEEXT) + $(AM_V_CCLD)$(LINK) $(vrf_13_OBJECTS) $(vrf_13_LDADD) $(LIBS) vrf_batchcompat_13$(EXEEXT): $(vrf_batchcompat_13_OBJECTS) $(vrf_batchcompat_13_DEPENDENCIES) $(EXTRA_vrf_batchcompat_13_DEPENDENCIES) @rm -f vrf_batchcompat_13$(EXEEXT) @@ -1739,7 +1739,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stream4.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)/vrf.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vrf_03.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vrf_13.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vrf_batchcompat_13.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vrf_batchverify.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xchacha20.Po@am__quote@ # am--include-marker @@ -2449,9 +2449,9 @@ vrf.log: vrf$(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) -vrf_03.log: vrf_03$(EXEEXT) - @p='vrf_03$(EXEEXT)'; \ - b='vrf_03'; \ +vrf_13.log: vrf_13$(EXEEXT) + @p='vrf_13$(EXEEXT)'; \ + b='vrf_13'; \ $(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) \ @@ -2718,7 +2718,7 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/stream4.Po -rm -f ./$(DEPDIR)/verify1.Po -rm -f ./$(DEPDIR)/vrf.Po - -rm -f ./$(DEPDIR)/vrf_03.Po + -rm -f ./$(DEPDIR)/vrf_13.Po -rm -f ./$(DEPDIR)/vrf_batchcompat_13.Po -rm -f ./$(DEPDIR)/vrf_batchverify.Po -rm -f ./$(DEPDIR)/xchacha20.Po @@ -2845,7 +2845,7 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/stream4.Po -rm -f ./$(DEPDIR)/verify1.Po -rm -f ./$(DEPDIR)/vrf.Po - -rm -f ./$(DEPDIR)/vrf_03.Po + -rm -f ./$(DEPDIR)/vrf_13.Po -rm -f ./$(DEPDIR)/vrf_batchcompat_13.Po -rm -f ./$(DEPDIR)/vrf_batchverify.Po -rm -f ./$(DEPDIR)/xchacha20.Po diff --git a/test/default/vrf.c b/test/default/vrf.c index 1c8f6cd36d..834ea6753a 100644 --- a/test/default/vrf.c +++ b/test/default/vrf.c @@ -41,7 +41,7 @@ int main(void) sodium_hex2bin(seed, 32, test_data[i].seed, (size_t) -1U, NULL, NULL, NULL); - crypto_vrf_seed_keypair(pk, sk, seed); + crypto_vrf_keypair_from_seed(pk, sk, seed); printf("%s\n", sodium_bin2hex(pk_hex, sizeof pk_hex, pk, sizeof pk)); if (crypto_vrf_prove(proof, sk, messages[i], i) != 0){ diff --git a/test/default/vrf.exp b/test/default/vrf.exp index 7395a87dfc..68cf0972e9 100644 --- a/test/default/vrf.exp +++ b/test/default/vrf.exp @@ -1,15 +1,15 @@ d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a -7d9c633ffeee27349264cf5c667579fc583b4bda63ab71d001f89c10003ab46f14adf9a3cd8b8412d9038531e865c341cafa73589b023d14311c331a9ad15ff2fb37831e00f0acaa6d73bc9997b06501 -9d574bf9b8302ec0fc1e21c3ec5368269527b87b462ce36dab2d14ccf80c53cccf6758f058c5b1c856b116388152bbe509ee3b9ecfe63d93c3b4346c1fbc6c54 -9d574bf9b8302ec0fc1e21c3ec5368269527b87b462ce36dab2d14ccf80c53cccf6758f058c5b1c856b116388152bbe509ee3b9ecfe63d93c3b4346c1fbc6c54 +b6b4699f87d56126c9117a7da55bd0085246f4c56dbc95d20172612e9d38e8d7ca65e573a126ed88d4e30a46f80a666854d675cf3ba81de0de043c3774f061560f55edc256a787afe701677c0f602900 +5b49b554d05c0cd5a5325376b3387de59d924fd1e13ded44648ab33c21349a603f25b84ec5ed887995b33da5e3bfcb87cd2f64521c4c62cf825cffabbe5d31cc +5b49b554d05c0cd5a5325376b3387de59d924fd1e13ded44648ab33c21349a603f25b84ec5ed887995b33da5e3bfcb87cd2f64521c4c62cf825cffabbe5d31cc 3d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c -47b327393ff2dd81336f8a2ef10339112401253b3c714eeda879f12c509072ef055b48372bb82efbdce8e10c8cb9a2f9d60e93908f93df1623ad78a86a028d6bc064dbfc75a6a57379ef855dc6733801 -38561d6b77b71d30eb97a062168ae12b667ce5c28caccdf76bc88e093e4635987cd96814ce55b4689b3dd2947f80e59aac7b7675f8083865b46c89b2ce9cc735 -38561d6b77b71d30eb97a062168ae12b667ce5c28caccdf76bc88e093e4635987cd96814ce55b4689b3dd2947f80e59aac7b7675f8083865b46c89b2ce9cc735 +ae5b66bdf04b4c010bfe32b2fc126ead2107b697634f6f7337b9bff8785ee111200095ece87dde4dbe87343f6df3b107d91798c8a7eb1245d3bb9c5aafb093358c13e6ae1111a55717e895fd15f99f07 +94f4487e1b2fec954309ef1289ecb2e15043a2461ecc7b2ae7d4470607ef82eb1cfa97d84991fe4a7bfdfd715606bc27e2967a6c557cfb5875879b671740b7d8 +94f4487e1b2fec954309ef1289ecb2e15043a2461ecc7b2ae7d4470607ef82eb1cfa97d84991fe4a7bfdfd715606bc27e2967a6c557cfb5875879b671740b7d8 fc51cd8e6218a1a38da47ed00230f0580816ed13ba3303ac5deb911548908025 -926e895d308f5e328e7aa159c06eddbe56d06846abf5d98c2512235eaa57fdce35b46edfc655bc828d44ad09d1150f31374e7ef73027e14760d42e77341fe05467bb286cc2c9d7fde29120a0b2320d04 -121b7f9b9aaaa29099fc04a94ba52784d44eac976dd1a3cca458733be5cd090a7b5fbd148444f17f8daf1fb55cb04b1ae85a626e30a54b4b0f8abf4a43314a58 -121b7f9b9aaaa29099fc04a94ba52784d44eac976dd1a3cca458733be5cd090a7b5fbd148444f17f8daf1fb55cb04b1ae85a626e30a54b4b0f8abf4a43314a58 +dfa2cba34b611cc8c833a6ea83b8eb1bb5e2ef2dd1b0c481bc42ff36ae7847f6ab52b976cfd5def172fa412defde270c8b8bdfbaae1c7ece17d9833b1bcf31064fff78ef493f820055b561ece45e1009 +2031837f582cd17a9af9e0c7ef5a6540e3453ed894b62c293686ca3c1e319dde9d0aa489a4b59a9594fc2328bc3deff3c8a0929a369a72b1180a596e016b5ded +2031837f582cd17a9af9e0c7ef5a6540e3453ed894b62c293686ca3c1e319dde9d0aa489a4b59a9594fc2328bc3deff3c8a0929a369a72b1180a596e016b5ded diff --git a/test/default/vrf_03.exp b/test/default/vrf_03.exp deleted file mode 100644 index 68cf0972e9..0000000000 --- a/test/default/vrf_03.exp +++ /dev/null @@ -1,15 +0,0 @@ -d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a -b6b4699f87d56126c9117a7da55bd0085246f4c56dbc95d20172612e9d38e8d7ca65e573a126ed88d4e30a46f80a666854d675cf3ba81de0de043c3774f061560f55edc256a787afe701677c0f602900 -5b49b554d05c0cd5a5325376b3387de59d924fd1e13ded44648ab33c21349a603f25b84ec5ed887995b33da5e3bfcb87cd2f64521c4c62cf825cffabbe5d31cc -5b49b554d05c0cd5a5325376b3387de59d924fd1e13ded44648ab33c21349a603f25b84ec5ed887995b33da5e3bfcb87cd2f64521c4c62cf825cffabbe5d31cc - -3d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c -ae5b66bdf04b4c010bfe32b2fc126ead2107b697634f6f7337b9bff8785ee111200095ece87dde4dbe87343f6df3b107d91798c8a7eb1245d3bb9c5aafb093358c13e6ae1111a55717e895fd15f99f07 -94f4487e1b2fec954309ef1289ecb2e15043a2461ecc7b2ae7d4470607ef82eb1cfa97d84991fe4a7bfdfd715606bc27e2967a6c557cfb5875879b671740b7d8 -94f4487e1b2fec954309ef1289ecb2e15043a2461ecc7b2ae7d4470607ef82eb1cfa97d84991fe4a7bfdfd715606bc27e2967a6c557cfb5875879b671740b7d8 - -fc51cd8e6218a1a38da47ed00230f0580816ed13ba3303ac5deb911548908025 -dfa2cba34b611cc8c833a6ea83b8eb1bb5e2ef2dd1b0c481bc42ff36ae7847f6ab52b976cfd5def172fa412defde270c8b8bdfbaae1c7ece17d9833b1bcf31064fff78ef493f820055b561ece45e1009 -2031837f582cd17a9af9e0c7ef5a6540e3453ed894b62c293686ca3c1e319dde9d0aa489a4b59a9594fc2328bc3deff3c8a0929a369a72b1180a596e016b5ded -2031837f582cd17a9af9e0c7ef5a6540e3453ed894b62c293686ca3c1e319dde9d0aa489a4b59a9594fc2328bc3deff3c8a0929a369a72b1180a596e016b5ded - diff --git a/test/default/vrf_03.c b/test/default/vrf_13.c similarity index 73% rename from test/default/vrf_03.c rename to test/default/vrf_13.c index 631b53fd66..d8f3434c3a 100644 --- a/test/default/vrf_03.c +++ b/test/default/vrf_13.c @@ -1,11 +1,11 @@ -#define TEST_NAME "vrf_03" +#define TEST_NAME "vrf_13" #include "cmptest.h" typedef struct TestData_ { const char seed[2 * 32 + 1]; } TestData; /* - * Test data taken from https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-vrf-03#appendix-A.4 + * Test data taken from https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-vrf-13#appendix-A.4 * which contains the seeds. The expected values for the pk, proof and output are in vrf.exp */ static const TestData test_data[] = { @@ -29,59 +29,59 @@ int main(void) unsigned char output[64]; unsigned int i; - seed = (unsigned char *) sodium_malloc(crypto_vrf_ietfdraft03_SEEDBYTES); + seed = (unsigned char *) sodium_malloc(crypto_vrf_ietfdraft13_SEEDBYTES); - assert(crypto_vrf_ietfdraft03_SECRETKEYBYTES == 64); - assert(crypto_vrf_ietfdraft03_PUBLICKEYBYTES == 32); - assert(crypto_vrf_ietfdraft03_SEEDBYTES == 32); - assert(crypto_vrf_ietfdraft03_BYTES == 80); - assert(crypto_vrf_ietfdraft03_OUTPUTBYTES == 64); + assert(crypto_vrf_ietfdraft13_SECRETKEYBYTES == 64); + assert(crypto_vrf_ietfdraft13_PUBLICKEYBYTES == 32); + assert(crypto_vrf_ietfdraft13_SEEDBYTES == 32); + assert(crypto_vrf_ietfdraft13_BYTES == 80); + assert(crypto_vrf_ietfdraft13_OUTPUTBYTES == 64); for (i = 0U; i < (sizeof test_data) / (sizeof test_data[0]); i++) { sodium_hex2bin(seed, 32, test_data[i].seed, (size_t) -1U, NULL, NULL, NULL); - crypto_vrf_ietfdraft03_keypair_from_seed(pk, sk, seed); + crypto_vrf_seed_keypair(pk, sk, seed); printf("%s\n", sodium_bin2hex(pk_hex, sizeof pk_hex, pk, sizeof pk)); - if (crypto_vrf_ietfdraft03_prove(proof, sk, messages[i], i) != 0){ + if (crypto_vrf_ietfdraft13_prove(proof, sk, messages[i], i) != 0){ printf("crypto_vrf_prove() error: [%u]\n", i); } printf("%s\n", sodium_bin2hex(proof_hex, sizeof proof_hex, proof, sizeof proof)); - if (crypto_vrf_ietfdraft03_verify(output, pk, proof, messages[i], i) != 0){ + if (crypto_vrf_ietfdraft13_verify(output, pk, proof, messages[i], i) != 0){ printf("verify error: [%u]\n", i); } printf("%s\n", sodium_bin2hex(output_hex, sizeof output_hex, output, sizeof output)); proof[0] ^= 0x01; - if (crypto_vrf_ietfdraft03_verify(output, pk, proof, messages[i], i) == 0){ + if (crypto_vrf_ietfdraft13_verify(output, pk, proof, messages[i], i) == 0){ printf("verify succeeded with bad gamma: [%u]\n", i); } proof[0] ^= 0x01; proof[32] ^= 0x01; - if (crypto_vrf_ietfdraft03_verify(output, pk, proof, messages[i], i) == 0){ + if (crypto_vrf_ietfdraft13_verify(output, pk, proof, messages[i], i) == 0){ printf("verify succeeded with bad c value: [%u]\n", i); } proof[32] ^= 0x01; proof[48] ^= 0x01; - if (crypto_vrf_ietfdraft03_verify(output, pk, proof, messages[i], i) == 0){ + if (crypto_vrf_ietfdraft13_verify(output, pk, proof, messages[i], i) == 0){ printf("verify succeeded with bad s value: [%u]\n", i); } proof[48] ^= 0x01; proof[79] ^= 0x80; - if (crypto_vrf_ietfdraft03_verify(output, pk, proof, messages[i], i) == 0){ + if (crypto_vrf_ietfdraft13_verify(output, pk, proof, messages[i], i) == 0){ printf("verify succeeded with bad s value (high-order-bit flipped): [%u]\n", i); } proof[79] ^= 0x80; if (i > 0) { - if (crypto_vrf_ietfdraft03_verify(output, pk, proof, messages[i], i-1) == 0){ + if (crypto_vrf_ietfdraft13_verify(output, pk, proof, messages[i], i-1) == 0){ printf("verify succeeded with truncated message: [%u]\n", i); } } - if (crypto_vrf_ietfdraft03_proof_to_hash(output, proof) != 0){ + if (crypto_vrf_ietfdraft13_proof_to_hash(output, proof) != 0){ printf("crypto_vrf_proof_to_hash() error: [%u]\n", i); } printf("%s\n\n", sodium_bin2hex(output_hex, sizeof output_hex, output, sizeof output)); diff --git a/test/default/vrf_13.exp b/test/default/vrf_13.exp new file mode 100644 index 0000000000..7395a87dfc --- /dev/null +++ b/test/default/vrf_13.exp @@ -0,0 +1,15 @@ +d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a +7d9c633ffeee27349264cf5c667579fc583b4bda63ab71d001f89c10003ab46f14adf9a3cd8b8412d9038531e865c341cafa73589b023d14311c331a9ad15ff2fb37831e00f0acaa6d73bc9997b06501 +9d574bf9b8302ec0fc1e21c3ec5368269527b87b462ce36dab2d14ccf80c53cccf6758f058c5b1c856b116388152bbe509ee3b9ecfe63d93c3b4346c1fbc6c54 +9d574bf9b8302ec0fc1e21c3ec5368269527b87b462ce36dab2d14ccf80c53cccf6758f058c5b1c856b116388152bbe509ee3b9ecfe63d93c3b4346c1fbc6c54 + +3d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c +47b327393ff2dd81336f8a2ef10339112401253b3c714eeda879f12c509072ef055b48372bb82efbdce8e10c8cb9a2f9d60e93908f93df1623ad78a86a028d6bc064dbfc75a6a57379ef855dc6733801 +38561d6b77b71d30eb97a062168ae12b667ce5c28caccdf76bc88e093e4635987cd96814ce55b4689b3dd2947f80e59aac7b7675f8083865b46c89b2ce9cc735 +38561d6b77b71d30eb97a062168ae12b667ce5c28caccdf76bc88e093e4635987cd96814ce55b4689b3dd2947f80e59aac7b7675f8083865b46c89b2ce9cc735 + +fc51cd8e6218a1a38da47ed00230f0580816ed13ba3303ac5deb911548908025 +926e895d308f5e328e7aa159c06eddbe56d06846abf5d98c2512235eaa57fdce35b46edfc655bc828d44ad09d1150f31374e7ef73027e14760d42e77341fe05467bb286cc2c9d7fde29120a0b2320d04 +121b7f9b9aaaa29099fc04a94ba52784d44eac976dd1a3cca458733be5cd090a7b5fbd148444f17f8daf1fb55cb04b1ae85a626e30a54b4b0f8abf4a43314a58 +121b7f9b9aaaa29099fc04a94ba52784d44eac976dd1a3cca458733be5cd090a7b5fbd148444f17f8daf1fb55cb04b1ae85a626e30a54b4b0f8abf4a43314a58 +