Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • cellframe/cellframe-sdk
  • MIKA83/cellframe-sdk
2 results
Show changes
Commits on Source (11)
......@@ -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);
}
......
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
......@@ -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));
}
......@@ -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);
......
......@@ -125,13 +125,58 @@ dap_chain_datum_token_tsd_t* dap_chain_datum_token_tsd_get(dap_chain_datum_token
void dap_chain_datum_token_flags_dump(dap_string_t * a_str_out, uint16_t a_flags)
{
if(!a_flags){
dap_string_append_printf(a_str_out, "<NONE>\n");
dap_string_append_printf(a_str_out, "%s\n",
c_dap_chain_datum_token_flag_str[DAP_CHAIN_DATUM_TOKEN_FLAG_NONE]);
return;
}
for ( uint16_t i = 0; (2^i) <=DAP_CHAIN_DATUM_TOKEN_FLAG_MAX; i++ ){
if( a_flags & (2^i) )
dap_string_append_printf(a_str_out,"%s%s", c_dap_chain_datum_token_flag_str[2^i],
(2^i)==DAP_CHAIN_DATUM_TOKEN_FLAG_MAX?",":"\n" );
bool is_first = true;
for ( uint16_t i = 0; i <= DAP_CHAIN_DATUM_TOKEN_FLAG_MAX; i++){
if( a_flags & (1 << i) ){
if(is_first)
is_first = false;
else
dap_string_append_printf(a_str_out,", ");
dap_string_append_printf(a_str_out,"%s", c_dap_chain_datum_token_flag_str[i]);
}
if(i == DAP_CHAIN_DATUM_TOKEN_FLAG_MAX)
dap_string_append_printf(a_str_out, "\n");
}
}
/**
* @brief dap_chain_datum_token_certs_dump
* @param a_str_out
* @param a_data_n_tsd
* @param a_certs_size
*/
void dap_chain_datum_token_certs_dump(dap_string_t * a_str_out, byte_t * a_data_n_tsd, size_t a_certs_size) {
dap_string_append_printf(a_str_out, "signatures: ");
if (!a_certs_size) {
dap_string_append_printf(a_str_out, "<NONE>\n");
return;
}
dap_string_append_printf(a_str_out, "\n");
size_t l_offset = 0;
for (int i = 1; l_offset < (a_certs_size); i++) {
dap_sign_t *l_sign = (dap_sign_t *) (a_data_n_tsd + l_offset);
l_offset += dap_sign_get_size(l_sign);
if (l_sign->header.sign_size == 0) {
dap_string_append_printf(a_str_out, "<CORRUPTED - 0 size signature>\n");
continue;
}
dap_chain_hash_fast_t l_pkey_hash = {0};
if (dap_sign_get_pkey_hash(l_sign, &l_pkey_hash) == false) {
dap_string_append_printf(a_str_out, "<CORRUPTED - can't calc hash>\n");
continue;
}
char *l_hash_str = dap_chain_hash_fast_to_str_new(&l_pkey_hash);
dap_string_append_printf(a_str_out, "%d) %s, %s, %lu bytes\n", i, l_hash_str,
dap_sign_type_to_str(l_sign->header.type), l_sign->header.sign_size);
}
}
......@@ -237,6 +237,7 @@ extern const char *c_dap_chain_datum_token_emission_type_str[];
dap_chain_datum_token_tsd_t * dap_chain_datum_token_tsd_create(uint16_t a_type, const void * a_data, size_t a_data_size);
dap_chain_datum_token_tsd_t* dap_chain_datum_token_tsd_get(dap_chain_datum_token_t * a_token, size_t a_token_size);
void dap_chain_datum_token_flags_dump(dap_string_t * a_str_out, uint16_t a_flags);
void dap_chain_datum_token_certs_dump(dap_string_t * a_str_out, byte_t * a_data_n_tsd, size_t a_certs_size);
#define dap_chain_datum_token_tsd_create_scalar(type,value) dap_chain_datum_token_tsd_create (type, &value, sizeof(value) )
#define dap_chain_datum_token_tsd_get_scalar(a,typeconv) *((typeconv*) a->data)
......
......@@ -2217,7 +2217,7 @@ void dap_chain_net_dump_datum(dap_string_t * a_str_out, dap_chain_datum_t * a_da
if(l_tsd->size == sizeof(dap_chain_hash_fast_t) ){
char *l_hash_str = dap_chain_hash_fast_to_str_new(
(dap_chain_hash_fast_t*) l_tsd->data );
dap_string_append_printf(a_str_out,"total_signs_remoev: %s\n", l_hash_str );
dap_string_append_printf(a_str_out,"total_signs_remove: %s\n", l_hash_str );
DAP_DELETE( l_hash_str );
}else
dap_string_append_printf(a_str_out,"total_signs_add: <WRONG SIZE %zd>\n", l_tsd->size);
......@@ -2281,13 +2281,14 @@ void dap_chain_net_dump_datum(dap_string_t * a_str_out, dap_chain_datum_t * a_da
dap_string_append_printf(a_str_out,"type: PRIVATE_DECL\n");
dap_string_append_printf(a_str_out,"flags: ");
dap_chain_datum_token_flags_dump(a_str_out, l_token->header_private_decl.flags);
dap_chain_datum_token_tsd_t * l_tsd = dap_chain_datum_token_tsd_get(l_token, l_token_size);
if (l_tsd == NULL)
dap_chain_datum_token_tsd_t * l_tsd_first = dap_chain_datum_token_tsd_get(l_token, l_token_size);
if (l_tsd_first == NULL)
dap_string_append_printf(a_str_out,"<CORRUPTED TSD SECTION>\n");
else{
size_t l_offset = 0;
size_t l_offset_max = l_token->header_private_decl.tsd_total_size;
while( l_offset< l_offset_max){
dap_chain_datum_token_tsd_t * l_tsd = (void*)l_tsd_first + l_offset;
if ( (l_tsd->size+l_offset) >l_offset_max){
log_it(L_WARNING, "<CORRUPTED TSD> too big size %zd when left maximum %zd",
l_tsd->size, l_offset_max - l_offset);
......@@ -2295,7 +2296,7 @@ void dap_chain_net_dump_datum(dap_string_t * a_str_out, dap_chain_datum_t * a_da
}
switch( l_tsd->type){
case DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TOTAL_SUPPLY:
dap_string_append_printf(a_str_out,"total_supply: %u\n",
dap_string_append_printf(a_str_out,"total_supply: %lu\n",
dap_chain_datum_token_tsd_get_scalar(l_tsd, uint128_t) );
break;
case DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TOTAL_SIGNS_VALID :
......@@ -2332,6 +2333,9 @@ void dap_chain_net_dump_datum(dap_string_t * a_str_out, dap_chain_datum_t * a_da
}
}
int l_certs_field_size = l_token_size - sizeof(*l_token) - l_token->header_private_decl.tsd_total_size;
dap_chain_datum_token_certs_dump(a_str_out, l_token->data_n_tsd, l_certs_field_size);
}break;
case DAP_CHAIN_DATUM_TOKEN_TYPE_PUBLIC:{
dap_string_append_printf(a_str_out,"type: PUBLIC\n");
......
......@@ -2294,7 +2294,7 @@ int com_token_update(int argc, char ** argv, void *arg_func, char ** a_str_reply
dap_chain_node_cli_set_reply_text(a_str_reply, "Flag can't be \"%s\"",*l_str_flags);
return -20;
}
l_flags |= l_flag;
l_flags |= (1<<l_flag);
l_str_flags++;
}
// Add flags as set_flags TDS section
......@@ -2337,6 +2337,7 @@ int com_token_update(int argc, char ** argv, void *arg_func, char ** a_str_reply
l_tsd_total_size+= dap_chain_datum_token_tsd_size( l_tsd);
}else if ( strcmp( argv[l_arg_index],"-total_signs_valid" )==0){ // Signs valid
uint16_t l_param_value = (uint16_t)atoi(l_arg_param);
l_signs_total = l_param_value;
dap_chain_datum_token_tsd_t * l_tsd = dap_chain_datum_token_tsd_create_scalar(
DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TOTAL_SIGNS_VALID, l_param_value);
dap_list_append( l_tsd_list, l_tsd);
......@@ -2604,7 +2605,7 @@ int com_token_decl(int argc, char ** argv, void *arg_func, char ** a_str_reply)
dap_chain_node_cli_set_reply_text(a_str_reply, "Flag can't be \"%s\"",*l_str_flags);
return -20;
}
l_flags |= l_flag;
l_flags |= (1<<l_flag);
l_str_flags++;
}
} else if ( strcmp( argv[l_arg_index],"-total_supply" )==0){ // Total supply
......@@ -2613,8 +2614,9 @@ int com_token_decl(int argc, char ** argv, void *arg_func, char ** a_str_reply)
DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TOTAL_SUPPLY, l_param_value);
dap_list_append( l_tsd_list, l_tsd);
l_tsd_total_size+= dap_chain_datum_token_tsd_size( l_tsd);
}else if ( strcmp( argv[l_arg_index],"-signs_valid" )==0){ // Signs valid
}else if ( strcmp( argv[l_arg_index],"-total_signs_valid" )==0){ // Signs valid
uint16_t l_param_value = (uint16_t)atoi(l_arg_param);
l_signs_total = l_param_value;
dap_chain_datum_token_tsd_t * l_tsd = dap_chain_datum_token_tsd_create_scalar(
DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TOTAL_SIGNS_VALID, l_param_value);
dap_list_append( l_tsd_list, l_tsd);
......@@ -2700,7 +2702,7 @@ int com_token_decl(int argc, char ** argv, void *arg_func, char ** a_str_reply)
}
switch (l_tsd->type){
case DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TOTAL_SUPPLY:
log_it(L_DEBUG,"== TOTAL_SUPPLY: %llf.20",
log_it(L_DEBUG,"== TOTAL_SUPPLY: %0.9llf",
dap_chain_balance_to_coins( dap_chain_datum_token_tsd_get_scalar(l_tsd,uint128_t) ) );
break;
case DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TOTAL_SIGNS_VALID:
......