From 081db4b2609fc046e566df3c0ccef12ebebc0b38 Mon Sep 17 00:00:00 2001 From: "ivan.fedorov" <ivan.fedorov@demlabs.net> Date: Sun, 10 May 2020 20:03:21 +0300 Subject: [PATCH] multi_sign bug resolved --- dap-sdk/crypto/src/dap_sign.c | 20 +++++++++---------- dap-sdk/crypto/src/newhope/newhope.pri | 2 +- .../test/crypto/dap_enc_sign_multi_test.c | 2 +- dap-sdk/crypto/test/crypto/main.c | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/dap-sdk/crypto/src/dap_sign.c b/dap-sdk/crypto/src/dap_sign.c index b27c2c2c57..fea8f12eb6 100755 --- a/dap-sdk/crypto/src/dap_sign.c +++ b/dap-sdk/crypto/src/dap_sign.c @@ -479,14 +479,14 @@ dap_multi_sign_t *dap_multi_sign_deserialize(dap_sign_type_enum_t a_type, uint8_ l_mem_shift++; memcpy(&l_sign->sign_count, &a_sign[l_mem_shift], 1); l_mem_shift++; - l_sign->key_seq = DAP_NEW_SIZE(dap_multi_sign_keys_t, l_sign->sign_count * sizeof(dap_multi_sign_keys_t)); + l_sign->key_seq = DAP_NEW_Z_SIZE(dap_multi_sign_keys_t, l_sign->sign_count * sizeof(dap_multi_sign_keys_t)); for (int i = 0; i < l_sign->sign_count; i++) { memcpy(&l_sign->key_seq[i].num, &a_sign[l_mem_shift], 1); l_mem_shift++; memcpy(&l_sign->key_seq[i].type, &a_sign[l_mem_shift], sizeof(dap_sign_type_t)); l_mem_shift += sizeof(dap_sign_type_t); } - l_sign->meta = DAP_NEW_SIZE(dap_multi_sign_meta_t, l_sign->sign_count * sizeof(dap_multi_sign_meta_t)); + l_sign->meta = DAP_NEW_Z_SIZE(dap_multi_sign_meta_t, l_sign->sign_count * sizeof(dap_multi_sign_meta_t)); size_t l_pkeys_size = 0, l_signes_size = 0; for (int i = 0; i < l_sign->sign_count; i++) { memcpy(&l_sign->meta[i].pkey_size, &a_sign[l_mem_shift], sizeof(uint32_t)); @@ -496,13 +496,13 @@ dap_multi_sign_t *dap_multi_sign_deserialize(dap_sign_type_enum_t a_type, uint8_ l_mem_shift += sizeof(uint32_t); l_signes_size += l_sign->meta[i].sign_size; } - l_sign->key_hashes = DAP_NEW_SIZE(dap_chain_hash_fast_t, l_sign->total_count * sizeof(dap_chain_hash_fast_t)); + l_sign->key_hashes = DAP_NEW_Z_SIZE(dap_chain_hash_fast_t, l_sign->total_count * sizeof(dap_chain_hash_fast_t)); for (int i = 0; i < l_sign->total_count; i++) { memcpy(&l_sign->key_hashes[i], &a_sign[l_mem_shift], sizeof(dap_chain_hash_fast_t)); l_mem_shift += sizeof(dap_chain_hash_fast_t); } uint32_t l_data_shift = 0, l_data_size = 0; - l_sign->pub_keys = DAP_NEW_SIZE(uint8_t, l_pkeys_size); + l_sign->pub_keys = DAP_NEW_Z_SIZE(uint8_t, l_pkeys_size); for (int i = 0; i < l_sign->sign_count; i++) { l_data_size = l_sign->meta[i].pkey_size; memcpy( &l_sign->pub_keys[l_data_shift], &a_sign[l_mem_shift],l_data_size); @@ -510,7 +510,7 @@ dap_multi_sign_t *dap_multi_sign_deserialize(dap_sign_type_enum_t a_type, uint8_ l_data_shift += l_data_size; } l_data_shift = l_data_size = 0; - l_sign->sign_data = DAP_NEW_SIZE(uint8_t, l_signes_size); + l_sign->sign_data = DAP_NEW_Z_SIZE(uint8_t, l_signes_size); for (int i = 0; i < l_sign->sign_count; i++) { l_data_size = l_sign->meta[i].sign_size; memcpy(&l_sign->sign_data[l_data_shift], &a_sign[l_mem_shift], l_data_size); @@ -632,7 +632,7 @@ dap_multi_sign_t *dap_multi_sign_create(dap_multi_sign_params_t *a_params, const dap_multi_sign_t *l_sign = DAP_NEW_Z(dap_multi_sign_t); l_sign->type = a_params->type; l_sign->total_count = a_params->total_count; - l_sign->key_hashes = DAP_NEW_SIZE(dap_chain_hash_fast_t, a_params->total_count * sizeof(dap_chain_hash_fast_t)); + l_sign->key_hashes = DAP_NEW_Z_SIZE(dap_chain_hash_fast_t, a_params->total_count * sizeof(dap_chain_hash_fast_t)); for (int i = 0; i < a_params->total_count; i++) { if (!dap_hash_fast(a_params->keys[i]->pub_key_data, a_params->keys[i]->pub_key_data_size, &l_sign->key_hashes[i])) { log_it (L_ERROR, "Can't create multi-signature hash"); @@ -641,8 +641,8 @@ dap_multi_sign_t *dap_multi_sign_create(dap_multi_sign_params_t *a_params, const } } l_sign->sign_count = a_params->sign_count; - l_sign->key_seq = DAP_NEW_SIZE(dap_multi_sign_keys_t, a_params->sign_count * sizeof(dap_multi_sign_keys_t)); - l_sign->meta = DAP_NEW_SIZE(dap_multi_sign_meta_t, a_params->sign_count * sizeof(dap_multi_sign_meta_t)); + l_sign->key_seq = DAP_NEW_Z_SIZE(dap_multi_sign_keys_t, a_params->sign_count * sizeof(dap_multi_sign_keys_t)); + l_sign->meta = DAP_NEW_Z_SIZE(dap_multi_sign_meta_t, a_params->sign_count * sizeof(dap_multi_sign_meta_t)); for (int i = 0; i < l_sign->sign_count; i++) { uint8_t l_num = a_params->key_seq[i]; l_sign->key_seq[i].num = l_num; @@ -674,7 +674,7 @@ dap_multi_sign_t *dap_multi_sign_create(dap_multi_sign_params_t *a_params, const uint8_t *l_pkey = dap_sign_get_pkey(l_dap_sign_step, &l_pkey_size); l_sign->meta[i].pkey_size = l_pkey_size; if (l_pkeys_mem_shift == 0) { - l_sign->pub_keys = DAP_NEW_SIZE(uint8_t, l_pkey_size); + l_sign->pub_keys = DAP_NEW_Z_SIZE(uint8_t, l_pkey_size); } else { l_sign->pub_keys = DAP_REALLOC(l_sign->pub_keys, l_pkeys_mem_shift + l_pkey_size); } @@ -683,7 +683,7 @@ dap_multi_sign_t *dap_multi_sign_create(dap_multi_sign_params_t *a_params, const uint8_t *l_sign_step = dap_sign_get_sign(l_dap_sign_step, &l_sign_size); l_sign->meta[i].sign_size = l_sign_size; if (l_signs_mem_shift == 0) { - l_sign->sign_data = DAP_NEW_SIZE(uint8_t, l_sign_size); + l_sign->sign_data = DAP_NEW_Z_SIZE(uint8_t, l_sign_size); } else { l_sign->sign_data = DAP_REALLOC(l_sign->sign_data, l_signs_mem_shift + l_sign_size); } diff --git a/dap-sdk/crypto/src/newhope/newhope.pri b/dap-sdk/crypto/src/newhope/newhope.pri index 7f618fd998..19a232bca1 100755 --- a/dap-sdk/crypto/src/newhope/newhope.pri +++ b/dap-sdk/crypto/src/newhope/newhope.pri @@ -1,3 +1,3 @@ -INCLUDEPATH += $$PW +INCLUDEPATH += $$PWD HEADERS += $$PWD/newhope_api.h $$PWD/newhope_cpakem.h $$PWD/newhope_cpapke.h $$PWD/newhope_ntt.h $$PWD/newhope_params.h $$PWD/newhope_poly.h $$PWD/newhope_reduce.h SOURCES += $$PWD/newhope_cpakem.c $$PWD/newhope_cpapke.c $$PWD/newhope_ntt.c $$PWD/newhope_poly.c $$PWD/newhope_precomp.c $$PWD/newhope_reduce.c diff --git a/dap-sdk/crypto/test/crypto/dap_enc_sign_multi_test.c b/dap-sdk/crypto/test/crypto/dap_enc_sign_multi_test.c index 2a7a47bb0b..ffb2c87b5c 100755 --- a/dap-sdk/crypto/test/crypto/dap_enc_sign_multi_test.c +++ b/dap-sdk/crypto/test/crypto/dap_enc_sign_multi_test.c @@ -69,5 +69,5 @@ void dap_enc_multi_sign_tests_run() dap_print_module_name("dap_enc_sign_multi"); init_test_case(); - benchmark_mgs_time("Signing and verifying message 1 time", benchmark_test_time(test_signing_verifying, 1)); + benchmark_mgs_time("Signing and verifying message 1 time", benchmark_test_time(test_signing_verifying, 10)); } diff --git a/dap-sdk/crypto/test/crypto/main.c b/dap-sdk/crypto/test/crypto/main.c index fe0887d99f..e1073d6860 100755 --- a/dap-sdk/crypto/test/crypto/main.c +++ b/dap-sdk/crypto/test/crypto/main.c @@ -20,7 +20,7 @@ int main(void) // switch off debug info from library dap_log_level_set(L_CRITICAL); const int test_numbers = 100; - //dap_enc_multi_sign_tests_run();return 0; + dap_enc_multi_sign_tests_run(); dap_enc_newhope_tests_run(test_numbers); test_encypt_decrypt (test_numbers, DAP_ENC_KEY_TYPE_SEED_OFB, 32); test_encypt_decrypt_fast (test_numbers, DAP_ENC_KEY_TYPE_SEED_OFB, 32); -- GitLab