diff --git a/.gitignore b/.gitignore index 814806e51..22c1d930d 100644 --- a/.gitignore +++ b/.gitignore @@ -64,13 +64,6 @@ VisualStudio/**/x64/ VisualStudio/include/ VisualStudio/**/*.user -# External sources -external -!src/sig_picnic/external -src/sig_picnic/external/build/** -src/sig_picnic/external/msbuild/** -/temp/ - # Travis files cmake-3.8.0.tar.gz cmake-3.8.0/** diff --git a/VisualStudio/oqs/dll.def b/VisualStudio/oqs/dll.def index 3fcd760c6..7c8735265 100644 --- a/VisualStudio/oqs/dll.def +++ b/VisualStudio/oqs/dll.def @@ -1,33 +1,105 @@ LIBRARY oqs EXPORTS - OQS_MEM_cleanse - OQS_MEM_secure_free - OQS_MEM_insecure_free - OQS_randombytes_switch_algorithm - OQS_randombytes_custom_algorithm - OQS_randombytes - OQS_randombytes_nist_kat_init - OQS_KEM_frodokem_640_aes_keypair - OQS_KEM_frodokem_640_aes_encaps - OQS_KEM_frodokem_640_aes_decaps - OQS_KEM_frodokem_976_aes_keypair - OQS_KEM_frodokem_976_aes_encaps - OQS_KEM_frodokem_976_aes_decaps - OQS_KEM_frodokem_640_cshake_keypair - OQS_KEM_frodokem_640_cshake_encaps - OQS_KEM_frodokem_640_cshake_decaps - OQS_KEM_frodokem_976_cshake_keypair - OQS_KEM_frodokem_976_cshake_encaps - OQS_KEM_frodokem_976_cshake_decaps OQS_KEM_alg_identifier OQS_KEM_new OQS_KEM_keypair OQS_KEM_encaps OQS_KEM_decaps OQS_KEM_free + OQS_KEM_bike1_l1_decaps + OQS_KEM_bike1_l1_encaps + OQS_KEM_bike1_l1_keypair + OQS_KEM_bike1_l3_decaps + OQS_KEM_bike1_l3_encaps + OQS_KEM_bike1_l3_keypair + OQS_KEM_bike1_l5_decaps + OQS_KEM_bike1_l5_encaps + OQS_KEM_bike1_l5_keypair + OQS_KEM_bike2_l1_decaps + OQS_KEM_bike2_l1_encaps + OQS_KEM_bike2_l1_keypair + OQS_KEM_bike2_l3_decaps + OQS_KEM_bike2_l3_encaps + OQS_KEM_bike2_l3_keypair + OQS_KEM_bike2_l5_decaps + OQS_KEM_bike2_l5_encaps + OQS_KEM_bike2_l5_keypair + OQS_KEM_bike3_l1_decaps + OQS_KEM_bike3_l1_encaps + OQS_KEM_bike3_l1_keypair + OQS_KEM_bike3_l3_decaps + OQS_KEM_bike3_l3_encaps + OQS_KEM_bike3_l3_keypair + OQS_KEM_bike3_l5_decaps + OQS_KEM_bike3_l5_encaps + OQS_KEM_bike3_l5_keypair + OQS_KEM_frodokem_640_aes_decaps + OQS_KEM_frodokem_640_aes_encaps + OQS_KEM_frodokem_640_aes_keypair + OQS_KEM_frodokem_640_cshake_decaps + OQS_KEM_frodokem_640_cshake_encaps + OQS_KEM_frodokem_640_cshake_keypair + OQS_KEM_frodokem_976_aes_decaps + OQS_KEM_frodokem_976_aes_encaps + OQS_KEM_frodokem_976_aes_keypair + OQS_KEM_frodokem_976_cshake_decaps + OQS_KEM_frodokem_976_cshake_encaps + OQS_KEM_frodokem_976_cshake_keypair + OQS_KEM_newhope_1024_cca_kem_decaps + OQS_KEM_newhope_1024_cca_kem_encaps + OQS_KEM_newhope_1024_cca_kem_keypair + OQS_KEM_newhope_512_cca_kem_decaps + OQS_KEM_newhope_512_cca_kem_encaps + OQS_KEM_newhope_512_cca_kem_keypair + OQS_KEM_sidh_p503_decaps + OQS_KEM_sidh_p503_encaps + OQS_KEM_sidh_p503_keypair + OQS_KEM_sidh_p751_decaps + OQS_KEM_sidh_p751_encaps + OQS_KEM_sidh_p751_keypair + OQS_KEM_sike_p503_decaps + OQS_KEM_sike_p503_encaps + OQS_KEM_sike_p503_keypair + OQS_KEM_sike_p751_decaps + OQS_KEM_sike_p751_encaps + OQS_KEM_sike_p751_keypair + OQS_MEM_cleanse + OQS_MEM_insecure_free + OQS_MEM_secure_free + OQS_randombytes + OQS_randombytes_custom_algorithm + OQS_randombytes_nist_kat_init + OQS_randombytes_switch_algorithm OQS_SIG_alg_identifier OQS_SIG_new OQS_SIG_keypair OQS_SIG_sign OQS_SIG_verify OQS_SIG_free + OQS_SIG_picnic_L1_FS_keypair + OQS_SIG_picnic_L1_FS_sign + OQS_SIG_picnic_L1_FS_verify + OQS_SIG_picnic_L1_UR_keypair + OQS_SIG_picnic_L1_UR_sign + OQS_SIG_picnic_L1_UR_verify + OQS_SIG_picnic_L3_FS_keypair + OQS_SIG_picnic_L3_FS_sign + OQS_SIG_picnic_L3_FS_verify + OQS_SIG_picnic_L3_UR_keypair + OQS_SIG_picnic_L3_UR_sign + OQS_SIG_picnic_L3_UR_verify + OQS_SIG_picnic_L5_FS_keypair + OQS_SIG_picnic_L5_FS_sign + OQS_SIG_picnic_L5_FS_verify + OQS_SIG_picnic_L5_UR_keypair + OQS_SIG_picnic_L5_UR_sign + OQS_SIG_picnic_L5_UR_verify + OQS_SIG_qTESLA_I_keypair + OQS_SIG_qTESLA_I_sign + OQS_SIG_qTESLA_I_verify + OQS_SIG_qTESLA_III_size_keypair + OQS_SIG_qTESLA_III_size_sign + OQS_SIG_qTESLA_III_size_verify + OQS_SIG_qTESLA_III_speed_keypair + OQS_SIG_qTESLA_III_speed_sign + OQS_SIG_qTESLA_III_speed_verify diff --git a/docs/algorithms/kem_bike.md b/docs/algorithms/kem_bike.md index ca20c13c5..9eea14add 100644 --- a/docs/algorithms/kem_bike.md +++ b/docs/algorithms/kem_bike.md @@ -31,7 +31,7 @@ Implementation -------------- - **Source of implementation:** http://bikesuite.org/#implementation -- **Implementation version:** 1.0.0 +- **Implementation version:** Additional implementation: 05/23/2018; reference implementation: 06/29/2018 (with NTL calls replaced by OpenSSL calls and the decoder of the additional implementation) - **License:** MIT License - **Language:** C - **Constant-time:** No diff --git a/src/kem/bike/Makefile.am b/src/kem/bike/Makefile.am index d06ef4694..c44c01222 100644 --- a/src/kem/bike/Makefile.am +++ b/src/kem/bike/Makefile.am @@ -1,5 +1,5 @@ AUTOMAKE_OPTIONS = foreign -noinst_LTLIBRARIES = libkembike.la +noinst_LTLIBRARIES = libkembike.la noinst_LTLIBRARIES += libkembike1_l1.la libkembike1_l3.la libkembike1_l5.la noinst_LTLIBRARIES += libkembike2_l1.la libkembike2_l3.la libkembike2_l5.la noinst_LTLIBRARIES += libkembike3_l1.la libkembike3_l3.la libkembike3_l5.la @@ -8,7 +8,7 @@ libkembike_la_LIBADD = libkembike1_l1.la libkembike1_l3.la libkembike1_l5.la libkembike_la_LIBADD += libkembike2_l1.la libkembike2_l3.la libkembike2_l5.la libkembike_la_LIBADD += libkembike3_l1.la libkembike3_l3.la libkembike3_l5.la -libkembike_la_SOURCES = kem_bike.c +libkembike_la_SOURCES = kem_bike.c COMMON_FLAGS = $(AM_CFLAGS) -include functions_renaming.h libkembike_la_CFLAGS = $(COMMON_FLAGS) @@ -17,12 +17,14 @@ libkembike_la_LIBTOOLFLAGS = $(AM_LIBTOOLFLAGS) #When AVX2 is supported also AVX512 is supported and we can use the additional implementation. if BIKE_ADDITIONAL_IMPL BIKE_SRC_DIR=x86_64/ + libkembike_la_CFLAGS += -DOQS_KEM_BIKE_ADDITIONAL_IMPLEMENTATION else BIKE_SRC_DIR=ref/ + libkembike_la_CFLAGS += -DOQS_KEM_BIKE_REFERENCE_IMPLEMENTATION endif -COMMON_CSRCS = $(BIKE_SRC_DIR)/kem.c $(BIKE_SRC_DIR)/aes_ctr_prf.c $(BIKE_SRC_DIR)/parallel_hash.c -COMMON_CSRCS += $(BIKE_SRC_DIR)/sampling.c $(BIKE_SRC_DIR)/utilities.c $(BIKE_SRC_DIR)/decode.c $(BIKE_SRC_DIR)/openssl_utils.c +COMMON_CSRCS = $(BIKE_SRC_DIR)/kem.c $(BIKE_SRC_DIR)/aes_ctr_prf.c $(BIKE_SRC_DIR)/parallel_hash.c +COMMON_CSRCS += $(BIKE_SRC_DIR)/sampling.c $(BIKE_SRC_DIR)/utilities.c $(BIKE_SRC_DIR)/decode.c $(BIKE_SRC_DIR)/openssl_utils.c if BIKE_ADDITIONAL_IMPL @@ -32,7 +34,7 @@ if BIKE_ADDITIONAL_IMPL COMMON_CSRCS += $(BIKE_SRC_DIR)/sha384_update_mb.S $(BIKE_SRC_DIR)/red.S COMMON_CSRCS += $(BIKE_SRC_DIR)/sampling_x86_64.S $(BIKE_SRC_DIR)/decode_x86_64.S else - COMMON_CSRCS += $(BIKE_SRC_DIR)/conversions.c + COMMON_CSRCS += $(BIKE_SRC_DIR)/conversions.c endif libkembike1_l1_la_SOURCES = $(COMMON_CSRCS) diff --git a/src/kem/bike/kem_bike.c b/src/kem/bike/kem_bike.c index fbde311f8..be2fb676a 100644 --- a/src/kem/bike/kem_bike.c +++ b/src/kem/bike/kem_bike.c @@ -11,7 +11,13 @@ OQS_KEM *OQS_KEM_bike1_l1_new() { return NULL; } kem->method_name = OQS_KEM_alg_bike1_l1; - kem->alg_version = "TODO"; +#if defined(OQS_KEM_BIKE_REFERENCE_IMPLEMENTATION) + kem->alg_version = "Reference - 06/29/2018"; +#elif defined(DOQS_KEM_BIKE_ADDITIONAL_IMPLEMENTATION) + kem->alg_version = "Additional - 05/23/2018"; +#else +#error "BIKE version macro not specified correctly" +#endif kem->claimed_nist_level = 1; kem->ind_cca = false; @@ -39,7 +45,13 @@ OQS_KEM *OQS_KEM_bike1_l3_new() { return NULL; } kem->method_name = OQS_KEM_alg_bike1_l3; - kem->alg_version = "TODO"; +#if defined(OQS_KEM_BIKE_REFERENCE_IMPLEMENTATION) + kem->alg_version = "Reference - 06/29/2018"; +#elif defined(DOQS_KEM_BIKE_ADDITIONAL_IMPLEMENTATION) + kem->alg_version = "Additional - 05/23/2018"; +#else +#error "BIKE version macro not specified correctly" +#endif kem->claimed_nist_level = 3; kem->ind_cca = false; @@ -67,7 +79,13 @@ OQS_KEM *OQS_KEM_bike1_l5_new() { return NULL; } kem->method_name = OQS_KEM_alg_bike1_l5; - kem->alg_version = "TODO"; +#if defined(OQS_KEM_BIKE_REFERENCE_IMPLEMENTATION) + kem->alg_version = "Reference - 06/29/2018"; +#elif defined(DOQS_KEM_BIKE_ADDITIONAL_IMPLEMENTATION) + kem->alg_version = "Additional - 05/23/2018"; +#else +#error "BIKE version macro not specified correctly" +#endif kem->claimed_nist_level = 5; kem->ind_cca = false; @@ -95,7 +113,13 @@ OQS_KEM *OQS_KEM_bike2_l1_new() { return NULL; } kem->method_name = OQS_KEM_alg_bike2_l1; - kem->alg_version = "TODO"; +#if defined(OQS_KEM_BIKE_REFERENCE_IMPLEMENTATION) + kem->alg_version = "Reference - 06/29/2018"; +#elif defined(DOQS_KEM_BIKE_ADDITIONAL_IMPLEMENTATION) + kem->alg_version = "Additional - 05/23/2018"; +#else +#error "BIKE version macro not specified correctly" +#endif kem->claimed_nist_level = 1; kem->ind_cca = false; @@ -123,7 +147,13 @@ OQS_KEM *OQS_KEM_bike2_l3_new() { return NULL; } kem->method_name = OQS_KEM_alg_bike2_l3; - kem->alg_version = "TODO"; +#if defined(OQS_KEM_BIKE_REFERENCE_IMPLEMENTATION) + kem->alg_version = "Reference - 06/29/2018"; +#elif defined(DOQS_KEM_BIKE_ADDITIONAL_IMPLEMENTATION) + kem->alg_version = "Additional - 05/23/2018"; +#else +#error "BIKE version macro not specified correctly" +#endif kem->claimed_nist_level = 3; kem->ind_cca = false; @@ -151,7 +181,13 @@ OQS_KEM *OQS_KEM_bike2_l5_new() { return NULL; } kem->method_name = OQS_KEM_alg_bike2_l5; - kem->alg_version = "TODO"; +#if defined(OQS_KEM_BIKE_REFERENCE_IMPLEMENTATION) + kem->alg_version = "Reference - 06/29/2018"; +#elif defined(DOQS_KEM_BIKE_ADDITIONAL_IMPLEMENTATION) + kem->alg_version = "Additional - 05/23/2018"; +#else +#error "BIKE version macro not specified correctly" +#endif kem->claimed_nist_level = 5; kem->ind_cca = false; @@ -179,7 +215,13 @@ OQS_KEM *OQS_KEM_bike3_l1_new() { return NULL; } kem->method_name = OQS_KEM_alg_bike3_l1; - kem->alg_version = "TODO"; +#if defined(OQS_KEM_BIKE_REFERENCE_IMPLEMENTATION) + kem->alg_version = "Reference - 06/29/2018"; +#elif defined(DOQS_KEM_BIKE_ADDITIONAL_IMPLEMENTATION) + kem->alg_version = "Additional - 05/23/2018"; +#else +#error "BIKE version macro not specified correctly" +#endif kem->claimed_nist_level = 1; kem->ind_cca = false; @@ -207,7 +249,13 @@ OQS_KEM *OQS_KEM_bike3_l3_new() { return NULL; } kem->method_name = OQS_KEM_alg_bike3_l3; - kem->alg_version = "TODO"; +#if defined(OQS_KEM_BIKE_REFERENCE_IMPLEMENTATION) + kem->alg_version = "Reference - 06/29/2018"; +#elif defined(DOQS_KEM_BIKE_ADDITIONAL_IMPLEMENTATION) + kem->alg_version = "Additional - 05/23/2018"; +#else +#error "BIKE version macro not specified correctly" +#endif kem->claimed_nist_level = 3; kem->ind_cca = false; @@ -235,7 +283,13 @@ OQS_KEM *OQS_KEM_bike3_l5_new() { return NULL; } kem->method_name = OQS_KEM_alg_bike3_l5; - kem->alg_version = "TODO"; +#if defined(OQS_KEM_BIKE_REFERENCE_IMPLEMENTATION) + kem->alg_version = "Reference - 06/29/2018"; +#elif defined(DOQS_KEM_BIKE_ADDITIONAL_IMPLEMENTATION) + kem->alg_version = "Additional - 05/23/2018"; +#else +#error "BIKE version macro not specified correctly" +#endif kem->claimed_nist_level = 5; kem->ind_cca = false; diff --git a/src/kem/bike/kem_bike.h b/src/kem/bike/kem_bike.h index dec93db7b..ff890e160 100644 --- a/src/kem/bike/kem_bike.h +++ b/src/kem/bike/kem_bike.h @@ -21,12 +21,12 @@ OQS_KEM *OQS_KEM_bike1_l1_new(); -OQS_STATUS OQS_KEM_bike1_l1_keypair(uint8_t *public_key, +OQS_API OQS_STATUS OQS_KEM_bike1_l1_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_STATUS OQS_KEM_bike1_l1_encaps(uint8_t *ciphertext, +OQS_API OQS_STATUS OQS_KEM_bike1_l1_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_STATUS OQS_KEM_bike1_l1_decaps(uint8_t *shared_secret, +OQS_API OQS_STATUS OQS_KEM_bike1_l1_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key); @@ -49,12 +49,12 @@ OQS_STATUS OQS_KEM_bike1_l1_decaps(uint8_t *shared_secret, OQS_KEM *OQS_KEM_bike1_l3_new(); -OQS_STATUS OQS_KEM_bike1_l3_keypair(uint8_t *public_key, +OQS_API OQS_STATUS OQS_KEM_bike1_l3_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_STATUS OQS_KEM_bike1_l3_encaps(uint8_t *ciphertext, +OQS_API OQS_STATUS OQS_KEM_bike1_l3_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_STATUS OQS_KEM_bike1_l3_decaps(uint8_t *shared_secret, +OQS_API OQS_STATUS OQS_KEM_bike1_l3_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key); @@ -77,12 +77,12 @@ OQS_STATUS OQS_KEM_bike1_l3_decaps(uint8_t *shared_secret, OQS_KEM *OQS_KEM_bike1_l5_new(); -OQS_STATUS OQS_KEM_bike1_l5_keypair(uint8_t *public_key, +OQS_API OQS_STATUS OQS_KEM_bike1_l5_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_STATUS OQS_KEM_bike1_l5_encaps(uint8_t *ciphertext, +OQS_API OQS_STATUS OQS_KEM_bike1_l5_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_STATUS OQS_KEM_bike1_l5_decaps(uint8_t *shared_secret, +OQS_API OQS_STATUS OQS_KEM_bike1_l5_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key); @@ -107,12 +107,12 @@ OQS_STATUS OQS_KEM_bike1_l5_decaps(uint8_t *shared_secret, OQS_KEM *OQS_KEM_bike2_l1_new(); -OQS_STATUS OQS_KEM_bike2_l1_keypair(uint8_t *public_key, +OQS_API OQS_STATUS OQS_KEM_bike2_l1_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_STATUS OQS_KEM_bike2_l1_encaps(uint8_t *ciphertext, +OQS_API OQS_STATUS OQS_KEM_bike2_l1_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_STATUS OQS_KEM_bike2_l1_decaps(uint8_t *shared_secret, +OQS_API OQS_STATUS OQS_KEM_bike2_l1_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key); @@ -138,12 +138,12 @@ OQS_STATUS OQS_KEM_bike2_l1_decaps(uint8_t *shared_secret, OQS_KEM *OQS_KEM_bike2_l3_new(); -OQS_STATUS OQS_KEM_bike2_l3_keypair(uint8_t *public_key, +OQS_API OQS_STATUS OQS_KEM_bike2_l3_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_STATUS OQS_KEM_bike2_l3_encaps(uint8_t *ciphertext, +OQS_API OQS_STATUS OQS_KEM_bike2_l3_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_STATUS OQS_KEM_bike2_l3_decaps(uint8_t *shared_secret, +OQS_API OQS_STATUS OQS_KEM_bike2_l3_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key); @@ -169,12 +169,12 @@ OQS_STATUS OQS_KEM_bike2_l3_decaps(uint8_t *shared_secret, OQS_KEM *OQS_KEM_bike2_l5_new(); -OQS_STATUS OQS_KEM_bike2_l5_keypair(uint8_t *public_key, +OQS_API OQS_STATUS OQS_KEM_bike2_l5_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_STATUS OQS_KEM_bike2_l5_encaps(uint8_t *ciphertext, +OQS_API OQS_STATUS OQS_KEM_bike2_l5_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_STATUS OQS_KEM_bike2_l5_decaps(uint8_t *shared_secret, +OQS_API OQS_STATUS OQS_KEM_bike2_l5_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key); @@ -198,12 +198,12 @@ OQS_STATUS OQS_KEM_bike2_l5_decaps(uint8_t *shared_secret, OQS_KEM *OQS_KEM_bike3_l1_new(); -OQS_STATUS OQS_KEM_bike3_l1_keypair(uint8_t *public_key, +OQS_API OQS_STATUS OQS_KEM_bike3_l1_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_STATUS OQS_KEM_bike3_l1_encaps(uint8_t *ciphertext, +OQS_API OQS_STATUS OQS_KEM_bike3_l1_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_STATUS OQS_KEM_bike3_l1_decaps(uint8_t *shared_secret, +OQS_API OQS_STATUS OQS_KEM_bike3_l1_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key); @@ -226,12 +226,12 @@ OQS_STATUS OQS_KEM_bike3_l1_decaps(uint8_t *shared_secret, OQS_KEM *OQS_KEM_bike3_l3_new(); -OQS_STATUS OQS_KEM_bike3_l3_keypair(uint8_t *public_key, +OQS_API OQS_STATUS OQS_KEM_bike3_l3_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_STATUS OQS_KEM_bike3_l3_encaps(uint8_t *ciphertext, +OQS_API OQS_STATUS OQS_KEM_bike3_l3_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_STATUS OQS_KEM_bike3_l3_decaps(uint8_t *shared_secret, +OQS_API OQS_STATUS OQS_KEM_bike3_l3_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key); @@ -254,12 +254,12 @@ OQS_STATUS OQS_KEM_bike3_l3_decaps(uint8_t *shared_secret, OQS_KEM *OQS_KEM_bike3_l5_new(); -OQS_STATUS OQS_KEM_bike3_l5_keypair(uint8_t *public_key, +OQS_API OQS_STATUS OQS_KEM_bike3_l5_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_STATUS OQS_KEM_bike3_l5_encaps(uint8_t *ciphertext, +OQS_API OQS_STATUS OQS_KEM_bike3_l5_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_STATUS OQS_KEM_bike3_l5_decaps(uint8_t *shared_secret, +OQS_API OQS_STATUS OQS_KEM_bike3_l5_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key); diff --git a/src/kem/bike/ref/kem.c b/src/kem/bike/ref/kem.c index fb5b8ed59..742b79eae 100644 --- a/src/kem/bike/ref/kem.c +++ b/src/kem/bike/ref/kem.c @@ -169,7 +169,7 @@ EXIT: //////////////////////////////////////////////////////////////// // The three APIs below (keypair, enc, dec) are defined by NIST: //////////////////////////////////////////////////////////////// -OQS_STATUS keypair(OUT unsigned char *pk, OUT unsigned char *sk) { +OQS_API OQS_STATUS keypair(OUT unsigned char *pk, OUT unsigned char *sk) { // Convert to this implementation types sk_t *l_sk = (sk_t *) sk; pk_t *l_pk = (pk_t *) pk; @@ -256,7 +256,7 @@ EXIT: // Encapsulate - pk is the public key, // ct is a key encapsulation message (ciphertext), // ss is the shared secret. -OQS_STATUS encaps(OUT unsigned char *ct, +OQS_API OQS_STATUS encaps(OUT unsigned char *ct, OUT unsigned char *ss, IN const unsigned char *pk) { DMSG(" Enter crypto_kem_enc.\n"); @@ -322,7 +322,7 @@ EXIT: // Decapsulate - ct is a key encapsulation message (ciphertext), // sk is the private key, // ss is the shared secret -OQS_STATUS decaps(OUT unsigned char *ss, +OQS_API OQS_STATUS decaps(OUT unsigned char *ss, IN const unsigned char *ct, IN const unsigned char *sk) { DMSG(" Enter crypto_kem_dec.\n"); diff --git a/src/kem/bike/x86_64/kem.c b/src/kem/bike/x86_64/kem.c index 4343d6910..5f7c9efcb 100644 --- a/src/kem/bike/x86_64/kem.c +++ b/src/kem/bike/x86_64/kem.c @@ -1,5 +1,5 @@ /*************************************************************************** -* Additional implementation of "BIKE: Bit Flipping Key Encapsulation". +* Additional implementation of "BIKE: Bit Flipping Key Encapsulation". * Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Written by Nir Drucker and Shay Gueron @@ -307,7 +307,7 @@ _INLINE_ void get_ss(OUT ss_t *out, IN const e_t *e) { //////////////////////////////////////////////////////////////// // The three APIs below (keygeneration, encapsulate, decapsulate) are defined by NIST: //////////////////////////////////////////////////////////////// -int keypair(OUT unsigned char *pk, OUT unsigned char *sk) { +OQS_API OQS_STATUS keypair(OUT unsigned char *pk, OUT unsigned char *sk) { // Convert to this implementation types sk_t *l_sk = (sk_t *) sk; pk_t *l_pk = (pk_t *) pk; @@ -390,7 +390,7 @@ EXIT: // Encapsulate - pk is the public key, // ct is a key encapsulation message (ciphertext), // ss is the shared secret. -int encaps(OUT unsigned char *ct, +OQS_API OQS_STATUS encaps(OUT unsigned char *ct, OUT unsigned char *ss, IN const unsigned char *pk) { DMSG(" Enter crypto_kem_enc.\n"); @@ -463,7 +463,7 @@ EXIT: // Decapsulate - ct is a key encapsulation message (ciphertext), // sk is the private key, // ss is the shared secret -int decaps(OUT unsigned char *ss, +OQS_API OQS_STATUS decaps(OUT unsigned char *ss, IN const unsigned char *ct, IN const unsigned char *sk) { OQS_STATUS res = OQS_SUCCESS; diff --git a/src/kem/newhopenist/kem_newhopenist.h b/src/kem/newhopenist/kem_newhopenist.h index cfef3c04c..864e1d798 100644 --- a/src/kem/newhopenist/kem_newhopenist.h +++ b/src/kem/newhopenist/kem_newhopenist.h @@ -12,12 +12,12 @@ OQS_KEM *OQS_KEM_newhope_512_cca_kem_new(); -OQS_STATUS OQS_KEM_newhope_512_cca_kem_keypair(uint8_t *public_key, +OQS_API OQS_STATUS OQS_KEM_newhope_512_cca_kem_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_STATUS OQS_KEM_newhope_512_cca_kem_encaps(uint8_t *ciphertext, +OQS_API OQS_STATUS OQS_KEM_newhope_512_cca_kem_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_STATUS OQS_KEM_newhope_512_cca_kem_decaps(uint8_t *shared_secret, +OQS_API OQS_STATUS OQS_KEM_newhope_512_cca_kem_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key); #endif @@ -31,12 +31,12 @@ OQS_STATUS OQS_KEM_newhope_512_cca_kem_decaps(uint8_t *shared_secret, OQS_KEM *OQS_KEM_newhope_1024_cca_kem_new(); -OQS_STATUS OQS_KEM_newhope_1024_cca_kem_keypair(uint8_t *public_key, +OQS_API OQS_STATUS OQS_KEM_newhope_1024_cca_kem_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_STATUS OQS_KEM_newhope_1024_cca_kem_encaps(uint8_t *ciphertext, +OQS_API OQS_STATUS OQS_KEM_newhope_1024_cca_kem_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_STATUS OQS_KEM_newhope_1024_cca_kem_decaps(uint8_t *shared_secret, +OQS_API OQS_STATUS OQS_KEM_newhope_1024_cca_kem_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key); #endif diff --git a/src/kem/newhopenist/optimized/kem.c b/src/kem/newhopenist/optimized/kem.c index 2e9d34d66..3675b8b8b 100644 --- a/src/kem/newhopenist/optimized/kem.c +++ b/src/kem/newhopenist/optimized/kem.c @@ -19,7 +19,7 @@ * * Returns 0 (success) **************************************************/ -int crypto_kem_keypair(unsigned char *pk, unsigned char *sk) { +OQS_API OQS_STATUS crypto_kem_keypair(unsigned char *pk, unsigned char *sk) { size_t i; cpapke_keypair(pk, sk); @@ -34,7 +34,7 @@ int crypto_kem_keypair(unsigned char *pk, unsigned char *sk) { OQS_randombytes(sk, NEWHOPE_SYMBYTES); /* Append the value s for pseudo-random output on reject */ - return 0; + return OQS_SUCCESS; } /************************************************* @@ -49,7 +49,7 @@ int crypto_kem_keypair(unsigned char *pk, unsigned char *sk) { * * Returns 0 (success) **************************************************/ -int crypto_kem_enc(unsigned char *ct, unsigned char *ss, const unsigned char *pk) { +OQS_API OQS_STATUS crypto_kem_enc(unsigned char *ct, unsigned char *ss, const unsigned char *pk) { unsigned char k_coins_d[3 * NEWHOPE_SYMBYTES]; /* Will contain key, coins, qrom-hash */ unsigned char buf[2 * NEWHOPE_SYMBYTES]; int i; @@ -67,7 +67,7 @@ int crypto_kem_enc(unsigned char *ct, unsigned char *ss, const unsigned char *pk OQS_SHA3_shake256(k_coins_d + NEWHOPE_SYMBYTES, NEWHOPE_SYMBYTES, ct, NEWHOPE_CCAKEM_CIPHERTEXTBYTES); /* overwrite coins in k_coins_d with h(c) */ OQS_SHA3_shake256(ss, NEWHOPE_SYMBYTES, k_coins_d, 2 * NEWHOPE_SYMBYTES); /* hash concatenation of pre-k and h(c) to ss */ - return 0; + return OQS_SUCCESS; } /************************************************* @@ -84,7 +84,7 @@ int crypto_kem_enc(unsigned char *ct, unsigned char *ss, const unsigned char *pk * * On failure, ss will contain a randomized value. **************************************************/ -int crypto_kem_dec(unsigned char *ss, const unsigned char *ct, const unsigned char *sk) { +OQS_API OQS_STATUS crypto_kem_dec(unsigned char *ss, const unsigned char *ct, const unsigned char *sk) { int i, fail; unsigned char ct_cmp[NEWHOPE_CCAKEM_CIPHERTEXTBYTES]; unsigned char buf[2 * NEWHOPE_SYMBYTES]; @@ -108,5 +108,6 @@ int crypto_kem_dec(unsigned char *ss, const unsigned char *ct, const unsigned ch cmov(k_coins_d, sk + NEWHOPE_CCAKEM_SECRETKEYBYTES - NEWHOPE_SYMBYTES, NEWHOPE_SYMBYTES, fail); /* Overwrite pre-k with z on re-encryption failure */ OQS_SHA3_shake256(ss, NEWHOPE_SYMBYTES, k_coins_d, 2 * NEWHOPE_SYMBYTES); /* hash concatenation of pre-k and h(c) to k */ - return -fail; + return (OQS_STATUS) -fail; + } diff --git a/src/kem/sike/kem_sike.c b/src/kem/sike/kem_sike.c index 8edb2af44..f74848e27 100644 --- a/src/kem/sike/kem_sike.c +++ b/src/kem/sike/kem_sike.c @@ -111,14 +111,14 @@ OQS_KEM *OQS_KEM_sidh_p503_new() { } /* Forward KEM API calls to SIDH's API */ -OQS_STATUS OQS_KEM_sidh_p503_keypair(uint8_t *public_key, uint8_t *secret_key) { +OQS_API OQS_STATUS OQS_KEM_sidh_p503_keypair(uint8_t *public_key, uint8_t *secret_key) { if (oqs_kem_sidh_p503_EphemeralKeyGeneration_A((unsigned char *) secret_key, (unsigned char *) public_key) != 0) { return OQS_ERROR; } return OQS_SUCCESS; } -OQS_STATUS OQS_KEM_sidh_p503_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key) { +OQS_API OQS_STATUS OQS_KEM_sidh_p503_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key) { OQS_STATUS ret = OQS_ERROR; unsigned char *secret_key = malloc(OQS_KEM_sidh_p503_length_secret_key); if (oqs_kem_sidh_p503_EphemeralKeyGeneration_B(secret_key, (unsigned char *) ciphertext)) { @@ -141,7 +141,7 @@ cleanup: return ret; } -OQS_STATUS OQS_KEM_sidh_p503_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key) { +OQS_API OQS_STATUS OQS_KEM_sidh_p503_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key) { if (oqs_kem_sidh_p503_EphemeralSecretAgreement_A((unsigned char *) secret_key, (unsigned char *) ciphertext, (unsigned char *) shared_secret) != 0) { return OQS_ERROR; } @@ -189,14 +189,14 @@ OQS_KEM *OQS_KEM_sidh_p751_new() { } /* Forward KEM API calls to SIDH's API */ -OQS_STATUS OQS_KEM_sidh_p751_keypair(uint8_t *public_key, uint8_t *secret_key) { +OQS_API OQS_STATUS OQS_KEM_sidh_p751_keypair(uint8_t *public_key, uint8_t *secret_key) { if (oqs_kem_sidh_p751_EphemeralKeyGeneration_A((unsigned char *) secret_key, (unsigned char *) public_key) != 0) { return OQS_ERROR; } return OQS_SUCCESS; } -OQS_STATUS OQS_KEM_sidh_p751_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key) { +OQS_API OQS_STATUS OQS_KEM_sidh_p751_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key) { OQS_STATUS ret = OQS_ERROR; unsigned char *secret_key = malloc(OQS_KEM_sidh_p751_length_secret_key); if (oqs_kem_sidh_p751_EphemeralKeyGeneration_B(secret_key, (unsigned char *) ciphertext)) { @@ -219,7 +219,7 @@ cleanup: return ret; } -OQS_STATUS OQS_KEM_sidh_p751_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key) { +OQS_API OQS_STATUS OQS_KEM_sidh_p751_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key) { if (oqs_kem_sidh_p751_EphemeralSecretAgreement_A((unsigned char *) secret_key, (unsigned char *) ciphertext, (unsigned char *) shared_secret) != 0) { return OQS_ERROR; } diff --git a/src/kem/sike/kem_sike.h b/src/kem/sike/kem_sike.h index 2aa3c0fbe..b10b10881 100644 --- a/src/kem/sike/kem_sike.h +++ b/src/kem/sike/kem_sike.h @@ -12,9 +12,9 @@ OQS_KEM *OQS_KEM_sike_p503_new(); -OQS_STATUS OQS_KEM_sike_p503_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_STATUS OQS_KEM_sike_p503_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_STATUS OQS_KEM_sike_p503_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key); +OQS_API OQS_STATUS OQS_KEM_sike_p503_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_KEM_sike_p503_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_KEM_sike_p503_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key); #endif @@ -27,9 +27,9 @@ OQS_STATUS OQS_KEM_sike_p503_decaps(uint8_t *shared_secret, const unsigned char OQS_KEM *OQS_KEM_sike_p751_new(); -OQS_STATUS OQS_KEM_sike_p751_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_STATUS OQS_KEM_sike_p751_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_STATUS OQS_KEM_sike_p751_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key); +OQS_API OQS_STATUS OQS_KEM_sike_p751_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_KEM_sike_p751_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_KEM_sike_p751_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key); #endif @@ -42,9 +42,9 @@ OQS_STATUS OQS_KEM_sike_p751_decaps(uint8_t *shared_secret, const unsigned char OQS_KEM *OQS_KEM_sidh_p503_new(); -OQS_STATUS OQS_KEM_sidh_p503_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_STATUS OQS_KEM_sidh_p503_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_STATUS OQS_KEM_sidh_p503_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key); +OQS_API OQS_STATUS OQS_KEM_sidh_p503_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_KEM_sidh_p503_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_KEM_sidh_p503_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key); #endif @@ -57,9 +57,9 @@ OQS_STATUS OQS_KEM_sidh_p503_decaps(uint8_t *shared_secret, const unsigned char OQS_KEM *OQS_KEM_sidh_p751_new(); -OQS_STATUS OQS_KEM_sidh_p751_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_STATUS OQS_KEM_sidh_p751_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); -OQS_STATUS OQS_KEM_sidh_p751_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key); +OQS_API OQS_STATUS OQS_KEM_sidh_p751_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_KEM_sidh_p751_encaps(uint8_t *ciphertext, uint8_t *shared_secret, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_KEM_sidh_p751_decaps(uint8_t *shared_secret, const unsigned char *ciphertext, const uint8_t *secret_key); #endif diff --git a/src/kem/sike/sike.c b/src/kem/sike/sike.c index 7e1fe7f6a..c603d1ac7 100644 --- a/src/kem/sike/sike.c +++ b/src/kem/sike/sike.c @@ -8,7 +8,7 @@ #include #include -OQS_STATUS crypto_kem_keypair(unsigned char *pk, unsigned char *sk) { // SIKE's key generation +OQS_API OQS_STATUS crypto_kem_keypair(unsigned char *pk, unsigned char *sk) { // SIKE's key generation // Outputs: secret key sk (CRYPTO_SECRETKEYBYTES = MSG_BYTES + SECRETKEY_B_BYTES + CRYPTO_PUBLICKEYBYTES bytes) // public key pk (CRYPTO_PUBLICKEYBYTES bytes) @@ -25,7 +25,7 @@ OQS_STATUS crypto_kem_keypair(unsigned char *pk, unsigned char *sk) { // SIKE's return OQS_SUCCESS; } -OQS_STATUS crypto_kem_enc(unsigned char *ct, unsigned char *ss, const unsigned char *pk) { // SIKE's encapsulation +OQS_API OQS_STATUS crypto_kem_enc(unsigned char *ct, unsigned char *ss, const unsigned char *pk) { // SIKE's encapsulation // Input: public key pk (CRYPTO_PUBLICKEYBYTES bytes) // Outputs: shared secret ss (CRYPTO_BYTES bytes) // ciphertext message ct (CRYPTO_CIPHERTEXTBYTES = CRYPTO_PUBLICKEYBYTES + MSG_BYTES bytes) @@ -58,7 +58,7 @@ OQS_STATUS crypto_kem_enc(unsigned char *ct, unsigned char *ss, const unsigned c return OQS_SUCCESS; } -OQS_STATUS crypto_kem_dec(unsigned char *ss, const unsigned char *ct, const unsigned char *sk) { // SIKE's decapsulation +OQS_API OQS_STATUS crypto_kem_dec(unsigned char *ss, const unsigned char *ct, const unsigned char *sk) { // SIKE's decapsulation // Input: secret key sk (CRYPTO_SECRETKEYBYTES = MSG_BYTES + SECRETKEY_B_BYTES + CRYPTO_PUBLICKEYBYTES bytes) // ciphertext message ct (CRYPTO_CIPHERTEXTBYTES = CRYPTO_PUBLICKEYBYTES + MSG_BYTES bytes) // Outputs: shared secret ss (CRYPTO_BYTES bytes) diff --git a/src/sig/picnic/sig_picnic.c b/src/sig/picnic/sig_picnic.c index d7334003d..510ed27e5 100644 --- a/src/sig/picnic/sig_picnic.c +++ b/src/sig/picnic/sig_picnic.c @@ -106,15 +106,15 @@ OQS_SIG *OQS_SIG_picnic_L1_FS_new() { return sig; } -OQS_STATUS OQS_SIG_picnic_L1_FS_keypair(uint8_t *public_key, uint8_t *secret_key) { +OQS_API OQS_STATUS OQS_SIG_picnic_L1_FS_keypair(uint8_t *public_key, uint8_t *secret_key) { return common_picnic_keypair(Picnic_L1_FS, secret_key, public_key); } -OQS_STATUS OQS_SIG_picnic_L1_FS_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key) { +OQS_API OQS_STATUS OQS_SIG_picnic_L1_FS_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key) { return common_picnic_sign(Picnic_L1_FS, secret_key, message, message_len, signature, signature_len); } -OQS_STATUS OQS_SIG_picnic_L1_FS_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key) { +OQS_API OQS_STATUS OQS_SIG_picnic_L1_FS_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key) { return common_picnic_verify(Picnic_L1_FS, public_key, message, message_len, signature, signature_len); } @@ -145,15 +145,15 @@ OQS_SIG *OQS_SIG_picnic_L1_UR_new() { return sig; } -OQS_STATUS OQS_SIG_picnic_L1_UR_keypair(uint8_t *public_key, uint8_t *secret_key) { +OQS_API OQS_STATUS OQS_SIG_picnic_L1_UR_keypair(uint8_t *public_key, uint8_t *secret_key) { return common_picnic_keypair(Picnic_L1_UR, secret_key, public_key); } -OQS_STATUS OQS_SIG_picnic_L1_UR_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key) { +OQS_API OQS_STATUS OQS_SIG_picnic_L1_UR_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key) { return common_picnic_sign(Picnic_L1_UR, secret_key, message, message_len, signature, signature_len); } -OQS_STATUS OQS_SIG_picnic_L1_UR_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key) { +OQS_API OQS_STATUS OQS_SIG_picnic_L1_UR_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key) { return common_picnic_verify(Picnic_L1_UR, public_key, message, message_len, signature, signature_len); } @@ -184,15 +184,15 @@ OQS_SIG *OQS_SIG_picnic_L3_FS_new() { return sig; } -OQS_STATUS OQS_SIG_picnic_L3_FS_keypair(uint8_t *public_key, uint8_t *secret_key) { +OQS_API OQS_STATUS OQS_SIG_picnic_L3_FS_keypair(uint8_t *public_key, uint8_t *secret_key) { return common_picnic_keypair(Picnic_L3_FS, secret_key, public_key); } -OQS_STATUS OQS_SIG_picnic_L3_FS_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key) { +OQS_API OQS_STATUS OQS_SIG_picnic_L3_FS_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key) { return common_picnic_sign(Picnic_L3_FS, secret_key, message, message_len, signature, signature_len); } -OQS_STATUS OQS_SIG_picnic_L3_FS_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key) { +OQS_API OQS_STATUS OQS_SIG_picnic_L3_FS_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key) { return common_picnic_verify(Picnic_L3_FS, public_key, message, message_len, signature, signature_len); } @@ -223,15 +223,15 @@ OQS_SIG *OQS_SIG_picnic_L3_UR_new() { return sig; } -OQS_STATUS OQS_SIG_picnic_L3_UR_keypair(uint8_t *public_key, uint8_t *secret_key) { +OQS_API OQS_STATUS OQS_SIG_picnic_L3_UR_keypair(uint8_t *public_key, uint8_t *secret_key) { return common_picnic_keypair(Picnic_L3_UR, secret_key, public_key); } -OQS_STATUS OQS_SIG_picnic_L3_UR_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key) { +OQS_API OQS_STATUS OQS_SIG_picnic_L3_UR_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key) { return common_picnic_sign(Picnic_L3_UR, secret_key, message, message_len, signature, signature_len); } -OQS_STATUS OQS_SIG_picnic_L3_UR_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key) { +OQS_API OQS_STATUS OQS_SIG_picnic_L3_UR_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key) { return common_picnic_verify(Picnic_L3_UR, public_key, message, message_len, signature, signature_len); } @@ -262,15 +262,15 @@ OQS_SIG *OQS_SIG_picnic_L5_FS_new() { return sig; } -OQS_STATUS OQS_SIG_picnic_L5_FS_keypair(uint8_t *public_key, uint8_t *secret_key) { +OQS_API OQS_STATUS OQS_SIG_picnic_L5_FS_keypair(uint8_t *public_key, uint8_t *secret_key) { return common_picnic_keypair(Picnic_L5_FS, secret_key, public_key); } -OQS_STATUS OQS_SIG_picnic_L5_FS_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key) { +OQS_API OQS_STATUS OQS_SIG_picnic_L5_FS_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key) { return common_picnic_sign(Picnic_L5_FS, secret_key, message, message_len, signature, signature_len); } -OQS_STATUS OQS_SIG_picnic_L5_FS_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key) { +OQS_API OQS_STATUS OQS_SIG_picnic_L5_FS_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key) { return common_picnic_verify(Picnic_L5_FS, public_key, message, message_len, signature, signature_len); } @@ -302,15 +302,15 @@ OQS_SIG *OQS_SIG_picnic_L5_UR_new() { return sig; } -OQS_STATUS OQS_SIG_picnic_L5_UR_keypair(uint8_t *public_key, uint8_t *secret_key) { +OQS_API OQS_STATUS OQS_SIG_picnic_L5_UR_keypair(uint8_t *public_key, uint8_t *secret_key) { return common_picnic_keypair(Picnic_L5_UR, secret_key, public_key); } -OQS_STATUS OQS_SIG_picnic_L5_UR_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key) { +OQS_API OQS_STATUS OQS_SIG_picnic_L5_UR_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key) { return common_picnic_sign(Picnic_L5_UR, secret_key, message, message_len, signature, signature_len); } -OQS_STATUS OQS_SIG_picnic_L5_UR_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key) { +OQS_API OQS_STATUS OQS_SIG_picnic_L5_UR_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key) { return common_picnic_verify(Picnic_L5_UR, public_key, message, message_len, signature, signature_len); } diff --git a/src/sig/picnic/sig_picnic.h b/src/sig/picnic/sig_picnic.h index ecb1cb0d0..482c615ff 100644 --- a/src/sig/picnic/sig_picnic.h +++ b/src/sig/picnic/sig_picnic.h @@ -11,9 +11,9 @@ OQS_SIG *OQS_SIG_picnic_L1_FS_new(); -OQS_STATUS OQS_SIG_picnic_L1_FS_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_STATUS OQS_SIG_picnic_L1_FS_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); -OQS_STATUS OQS_SIG_picnic_L1_FS_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_SIG_picnic_L1_FS_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_SIG_picnic_L1_FS_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); +OQS_API OQS_STATUS OQS_SIG_picnic_L1_FS_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); #endif @@ -25,9 +25,9 @@ OQS_STATUS OQS_SIG_picnic_L1_FS_verify(const uint8_t *message, size_t message_le OQS_SIG *OQS_SIG_picnic_L1_UR_new(); -OQS_STATUS OQS_SIG_picnic_L1_UR_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_STATUS OQS_SIG_picnic_L1_UR_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); -OQS_STATUS OQS_SIG_picnic_L1_UR_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_SIG_picnic_L1_UR_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_SIG_picnic_L1_UR_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); +OQS_API OQS_STATUS OQS_SIG_picnic_L1_UR_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); #endif @@ -39,9 +39,9 @@ OQS_STATUS OQS_SIG_picnic_L1_UR_verify(const uint8_t *message, size_t message_le OQS_SIG *OQS_SIG_picnic_L3_FS_new(); -OQS_STATUS OQS_SIG_picnic_L3_FS_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_STATUS OQS_SIG_picnic_L3_FS_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); -OQS_STATUS OQS_SIG_picnic_L3_FS_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_SIG_picnic_L3_FS_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_SIG_picnic_L3_FS_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); +OQS_API OQS_STATUS OQS_SIG_picnic_L3_FS_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); #endif @@ -53,9 +53,9 @@ OQS_STATUS OQS_SIG_picnic_L3_FS_verify(const uint8_t *message, size_t message_le OQS_SIG *OQS_SIG_picnic_L3_UR_new(); -OQS_STATUS OQS_SIG_picnic_L3_UR_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_STATUS OQS_SIG_picnic_L3_UR_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); -OQS_STATUS OQS_SIG_picnic_L3_UR_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_SIG_picnic_L3_UR_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_SIG_picnic_L3_UR_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); +OQS_API OQS_STATUS OQS_SIG_picnic_L3_UR_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); #endif @@ -67,9 +67,9 @@ OQS_STATUS OQS_SIG_picnic_L3_UR_verify(const uint8_t *message, size_t message_le OQS_SIG *OQS_SIG_picnic_L5_FS_new(); -OQS_STATUS OQS_SIG_picnic_L5_FS_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_STATUS OQS_SIG_picnic_L5_FS_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); -OQS_STATUS OQS_SIG_picnic_L5_FS_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_SIG_picnic_L5_FS_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_SIG_picnic_L5_FS_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); +OQS_API OQS_STATUS OQS_SIG_picnic_L5_FS_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); #endif @@ -81,9 +81,9 @@ OQS_STATUS OQS_SIG_picnic_L5_FS_verify(const uint8_t *message, size_t message_le OQS_SIG *OQS_SIG_picnic_L5_UR_new(); -OQS_STATUS OQS_SIG_picnic_L5_UR_keypair(uint8_t *public_key, uint8_t *secret_key); -OQS_STATUS OQS_SIG_picnic_L5_UR_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); -OQS_STATUS OQS_SIG_picnic_L5_UR_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); +OQS_API OQS_STATUS OQS_SIG_picnic_L5_UR_keypair(uint8_t *public_key, uint8_t *secret_key); +OQS_API OQS_STATUS OQS_SIG_picnic_L5_UR_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); +OQS_API OQS_STATUS OQS_SIG_picnic_L5_UR_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key); #endif diff --git a/src/sig/qtesla/external/qTESLA_I.c b/src/sig/qtesla/external/qTESLA_I.c index a5a5dab1a..ee865a5c2 100644 --- a/src/sig/qtesla/external/qTESLA_I.c +++ b/src/sig/qtesla/external/qTESLA_I.c @@ -1839,14 +1839,14 @@ static void sparse_mul32(poly prod, const int32_t *pk, const uint32_t pos_list[P #include "qTESLA_api.c" -OQS_API int OQS_SIG_qTESLA_I_keypair(unsigned char *pk, unsigned char *sk) { +OQS_API OQS_STATUS OQS_SIG_qTESLA_I_keypair(unsigned char *pk, unsigned char *sk) { return crypto_sign_keypair(pk, sk); } -OQS_API int OQS_SIG_qTESLA_I_sign(unsigned char *sm, unsigned long long *smlen, const unsigned char *m, unsigned long long mlen, const unsigned char *sk) { +OQS_API OQS_STATUS OQS_SIG_qTESLA_I_sign(unsigned char *sm, unsigned long long *smlen, const unsigned char *m, unsigned long long mlen, const unsigned char *sk) { return crypto_sign(sm, smlen, m, mlen, sk); } -OQS_API int OQS_SIG_qTESLA_I_verify(unsigned char *m, unsigned long long mlen, const unsigned char *sm, unsigned long long smlen, const unsigned char *pk) { +OQS_API OQS_STATUS OQS_SIG_qTESLA_I_verify(unsigned char *m, unsigned long long mlen, const unsigned char *sm, unsigned long long smlen, const unsigned char *pk) { return crypto_verify(m, mlen, sm, smlen, pk); } diff --git a/src/sig/qtesla/external/qTESLA_I.h b/src/sig/qtesla/external/qTESLA_I.h index 50000d378..cc1fe7374 100644 --- a/src/sig/qtesla/external/qTESLA_I.h +++ b/src/sig/qtesla/external/qTESLA_I.h @@ -1,13 +1,13 @@ -OQS_API int OQS_SIG_qTESLA_I_keypair( +OQS_API OQS_STATUS OQS_SIG_qTESLA_I_keypair( unsigned char *, unsigned char *); -OQS_API int OQS_SIG_qTESLA_I_sign( +OQS_API OQS_STATUS OQS_SIG_qTESLA_I_sign( unsigned char *, unsigned long long *, const unsigned char *, unsigned long long, const unsigned char *); -OQS_API int OQS_SIG_qTESLA_I_verify( +OQS_API OQS_STATUS OQS_SIG_qTESLA_I_verify( unsigned char *, unsigned long long, const unsigned char *, unsigned long long, const unsigned char *); diff --git a/src/sig/qtesla/external/qTESLA_III_size.c b/src/sig/qtesla/external/qTESLA_III_size.c index 2aaad02af..de375fef3 100644 --- a/src/sig/qtesla/external/qTESLA_III_size.c +++ b/src/sig/qtesla/external/qTESLA_III_size.c @@ -2878,14 +2878,14 @@ static void sparse_mul32(poly prod, const int32_t *pk, const uint32_t pos_list[P #include "qTESLA_api.c" -OQS_API int OQS_SIG_qTESLA_III_size_keypair(unsigned char *pk, unsigned char *sk) { +OQS_API OQS_STATUS OQS_SIG_qTESLA_III_size_keypair(unsigned char *pk, unsigned char *sk) { return crypto_sign_keypair(pk, sk); } -OQS_API int OQS_SIG_qTESLA_III_size_sign(unsigned char *sm, unsigned long long *smlen, const unsigned char *m, unsigned long long mlen, const unsigned char *sk) { +OQS_API OQS_STATUS OQS_SIG_qTESLA_III_size_sign(unsigned char *sm, unsigned long long *smlen, const unsigned char *m, unsigned long long mlen, const unsigned char *sk) { return crypto_sign(sm, smlen, m, mlen, sk); } -OQS_API int OQS_SIG_qTESLA_III_size_verify(unsigned char *m, unsigned long long mlen, const unsigned char *sm, unsigned long long smlen, const unsigned char *pk) { +OQS_API OQS_STATUS OQS_SIG_qTESLA_III_size_verify(unsigned char *m, unsigned long long mlen, const unsigned char *sm, unsigned long long smlen, const unsigned char *pk) { return crypto_verify(m, mlen, sm, smlen, pk); } diff --git a/src/sig/qtesla/external/qTESLA_III_size.h b/src/sig/qtesla/external/qTESLA_III_size.h index ba1984c9e..427af4a1f 100644 --- a/src/sig/qtesla/external/qTESLA_III_size.h +++ b/src/sig/qtesla/external/qTESLA_III_size.h @@ -1,13 +1,13 @@ -OQS_API int OQS_SIG_qTESLA_III_size_keypair( +OQS_API OQS_STATUS OQS_SIG_qTESLA_III_size_keypair( unsigned char *, unsigned char *); -OQS_API int OQS_SIG_qTESLA_III_size_sign( +OQS_API OQS_STATUS OQS_SIG_qTESLA_III_size_sign( unsigned char *, unsigned long long *, const unsigned char *, unsigned long long, const unsigned char *); -OQS_API int OQS_SIG_qTESLA_III_size_verify( +OQS_API OQS_STATUS OQS_SIG_qTESLA_III_size_verify( unsigned char *, unsigned long long, const unsigned char *, unsigned long long, const unsigned char *); diff --git a/src/sig/qtesla/external/qTESLA_III_speed.c b/src/sig/qtesla/external/qTESLA_III_speed.c index f95dcf772..fb31c5bcf 100644 --- a/src/sig/qtesla/external/qTESLA_III_speed.c +++ b/src/sig/qtesla/external/qTESLA_III_speed.c @@ -2804,14 +2804,14 @@ static void sparse_mul32(poly prod, const int32_t *pk, const uint32_t pos_list[P #include "qTESLA_api.c" -OQS_API int OQS_SIG_qTESLA_III_speed_keypair(unsigned char *pk, unsigned char *sk) { +OQS_API OQS_STATUS OQS_SIG_qTESLA_III_speed_keypair(unsigned char *pk, unsigned char *sk) { return crypto_sign_keypair(pk, sk); } -OQS_API int OQS_SIG_qTESLA_III_speed_sign(unsigned char *sm, unsigned long long *smlen, const unsigned char *m, unsigned long long mlen, const unsigned char *sk) { +OQS_API OQS_STATUS OQS_SIG_qTESLA_III_speed_sign(unsigned char *sm, unsigned long long *smlen, const unsigned char *m, unsigned long long mlen, const unsigned char *sk) { return crypto_sign(sm, smlen, m, mlen, sk); } -OQS_API int OQS_SIG_qTESLA_III_speed_verify(unsigned char *m, unsigned long long mlen, const unsigned char *sm, unsigned long long smlen, const unsigned char *pk) { +OQS_API OQS_STATUS OQS_SIG_qTESLA_III_speed_verify(unsigned char *m, unsigned long long mlen, const unsigned char *sm, unsigned long long smlen, const unsigned char *pk) { return crypto_verify(m, mlen, sm, smlen, pk); } diff --git a/src/sig/qtesla/external/qTESLA_III_speed.h b/src/sig/qtesla/external/qTESLA_III_speed.h index 9411f54c7..934ff6b7d 100644 --- a/src/sig/qtesla/external/qTESLA_III_speed.h +++ b/src/sig/qtesla/external/qTESLA_III_speed.h @@ -1,13 +1,13 @@ -OQS_API int OQS_SIG_qTESLA_III_speed_keypair( +OQS_API OQS_STATUS OQS_SIG_qTESLA_III_speed_keypair( unsigned char *, unsigned char *); -OQS_API int OQS_SIG_qTESLA_III_speed_sign( +OQS_API OQS_STATUS OQS_SIG_qTESLA_III_speed_sign( unsigned char *, unsigned long long *, const unsigned char *, unsigned long long, const unsigned char *); -OQS_API int OQS_SIG_qTESLA_III_speed_verify( +OQS_API OQS_STATUS OQS_SIG_qTESLA_III_speed_verify( unsigned char *, unsigned long long, const unsigned char *, unsigned long long, const unsigned char *); diff --git a/src/sig/qtesla/external/qTESLA_api.c b/src/sig/qtesla/external/qTESLA_api.c index 9cbd1acad..1018f24e1 100644 --- a/src/sig/qtesla/external/qTESLA_api.c +++ b/src/sig/qtesla/external/qTESLA_api.c @@ -9,7 +9,7 @@ * - unsigned char *sk: secret key * Returns: 0 for successful execution **********************************************************/ -static int crypto_sign_keypair(unsigned char *pk, unsigned char *sk) { +static OQS_STATUS crypto_sign_keypair(unsigned char *pk, unsigned char *sk) { unsigned char randomness[CRYPTO_RANDOMBYTES], randomness_extended[4 * CRYPTO_SEEDBYTES]; poly s, e, a, t; int nonce = 0; // Initialize domain separator for error and secret polynomials @@ -50,7 +50,7 @@ static int crypto_sign_keypair(unsigned char *pk, unsigned char *sk) { pack_sk(sk, s, e, &randomness_extended[2 * CRYPTO_SEEDBYTES]); encode_pk(pk, t, &randomness_extended[2 * CRYPTO_SEEDBYTES]); - return 0; + return OQS_SUCCESS; } /*************************************************************** @@ -66,7 +66,7 @@ static int crypto_sign_keypair(unsigned char *pk, unsigned char *sk) { * - unsigned long long *smlen: signature length* * Returns: 0 for successful execution ***************************************************************/ -static int crypto_sign(unsigned char *sm, unsigned long long *smlen, const unsigned char *m, unsigned long long mlen, const unsigned char *sk) { +static OQS_STATUS crypto_sign(unsigned char *sm, unsigned long long *smlen, const unsigned char *m, unsigned long long mlen, const unsigned char *sk) { unsigned char c[CRYPTO_C_BYTES], randomness[CRYPTO_SEEDBYTES], randomness_input[CRYPTO_RANDOMBYTES + CRYPTO_SEEDBYTES + mlen]; uint32_t pos_list[PARAM_W]; int16_t sign_list[PARAM_W]; @@ -122,7 +122,7 @@ static int crypto_sign(unsigned char *sm, unsigned long long *smlen, const unsig *smlen = CRYPTO_BYTES; encode_sig(sm, c, z); - return 0; + return OQS_SUCCESS; } } @@ -139,7 +139,7 @@ static int crypto_sign(unsigned char *sm, unsigned long long *smlen, const unsig * Returns: 0 for valid signature * <0 for invalid signature ************************************************************/ -static int crypto_verify(unsigned char *m, unsigned long long mlen, const unsigned char *sm, unsigned long long smlen, const unsigned char *pk) { +static OQS_STATUS crypto_verify(unsigned char *m, unsigned long long mlen, const unsigned char *sm, unsigned long long smlen, const unsigned char *pk) { unsigned char c[CRYPTO_C_BYTES], c_sig[CRYPTO_C_BYTES], seed[CRYPTO_SEEDBYTES]; uint32_t pos_list[PARAM_W]; int16_t sign_list[PARAM_W]; @@ -147,11 +147,11 @@ static int crypto_verify(unsigned char *m, unsigned long long mlen, const unsign poly w, z, a, Tc; if (smlen < CRYPTO_BYTES) - return -1; + return OQS_ERROR; decode_sig(c, z, sm); if (test_z(z) != 0) - return -2; // Check norm of z + return OQS_ERROR; // Check norm of z decode_pk((int32_t *) pk_t, seed, pk); poly_uniform(a, seed); encode_c(pos_list, sign_list, c); @@ -162,7 +162,7 @@ static int crypto_verify(unsigned char *m, unsigned long long mlen, const unsign // Check if the calculated c matches c from the signature if (memcmp(c, c_sig, CRYPTO_C_BYTES)) - return -3; + return OQS_ERROR; - return 0; + return OQS_SUCCESS; } diff --git a/src/sig/qtesla/sig_qtesla.c b/src/sig/qtesla/sig_qtesla.c index d52689f19..9c829e5fe 100644 --- a/src/sig/qtesla/sig_qtesla.c +++ b/src/sig/qtesla/sig_qtesla.c @@ -4,7 +4,7 @@ #ifdef OQS_ENABLE_SIG_qTESLA_I -OQS_API OQS_SIG *OQS_SIG_qTESLA_I_new() { +OQS_SIG *OQS_SIG_qTESLA_I_new() { OQS_SIG *sig = malloc(sizeof(OQS_SIG)); if (sig == NULL) { @@ -31,7 +31,7 @@ OQS_API OQS_SIG *OQS_SIG_qTESLA_I_new() { #ifdef OQS_ENABLE_SIG_qTESLA_III_size -OQS_API OQS_SIG *OQS_SIG_qTESLA_III_size_new() { +OQS_SIG *OQS_SIG_qTESLA_III_size_new() { OQS_SIG *sig = malloc(sizeof(OQS_SIG)); if (sig == NULL) { @@ -58,7 +58,7 @@ OQS_API OQS_SIG *OQS_SIG_qTESLA_III_size_new() { #ifdef OQS_ENABLE_SIG_qTESLA_III_speed -OQS_API OQS_SIG *OQS_SIG_qTESLA_III_speed_new() { +OQS_SIG *OQS_SIG_qTESLA_III_speed_new() { OQS_SIG *sig = malloc(sizeof(OQS_SIG)); if (sig == NULL) { diff --git a/src/sig/qtesla/sig_qtesla.h b/src/sig/qtesla/sig_qtesla.h index 5cbf93f06..3a8a04ba1 100644 --- a/src/sig/qtesla/sig_qtesla.h +++ b/src/sig/qtesla/sig_qtesla.h @@ -9,7 +9,7 @@ #define OQS_SIG_qTESLA_I_length_secret_key 2112 #define OQS_SIG_qTESLA_I_length_signature 1376 -OQS_API OQS_SIG *OQS_SIG_qTESLA_I_new(); +OQS_SIG *OQS_SIG_qTESLA_I_new(); OQS_API OQS_STATUS OQS_SIG_qTESLA_I_keypair(uint8_t *public_key, uint8_t *secret_key); OQS_API OQS_STATUS OQS_SIG_qTESLA_I_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); @@ -23,7 +23,7 @@ OQS_API OQS_STATUS OQS_SIG_qTESLA_I_verify(const uint8_t *message, size_t messag #define OQS_SIG_qTESLA_III_size_length_secret_key 4160 #define OQS_SIG_qTESLA_III_size_length_signature 2720 -OQS_API OQS_SIG *OQS_SIG_qTESLA_III_size_new(); +OQS_SIG *OQS_SIG_qTESLA_III_size_new(); OQS_API OQS_STATUS OQS_SIG_qTESLA_III_size_keypair(uint8_t *public_key, uint8_t *secret_key); OQS_API OQS_STATUS OQS_SIG_qTESLA_III_size_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key); @@ -37,7 +37,7 @@ OQS_API OQS_STATUS OQS_SIG_qTESLA_III_size_verify(const uint8_t *message, size_t #define OQS_SIG_qTESLA_III_speed_length_secret_key 4160 #define OQS_SIG_qTESLA_III_speed_length_signature 2848 -OQS_API OQS_SIG *OQS_SIG_qTESLA_III_speed_new(); +OQS_SIG *OQS_SIG_qTESLA_III_speed_new(); OQS_API OQS_STATUS OQS_SIG_qTESLA_III_speed_keypair(uint8_t *public_key, uint8_t *secret_key); OQS_API OQS_STATUS OQS_SIG_qTESLA_III_speed_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key);