Skip to content
Snippets Groups Projects
Commit bc7a9b70 authored by ruslan.laishev's avatar ruslan.laishev 💬
Browse files

[*] Fixed crash on opening Wallet Vol 2

parent 2a204508
No related branches found
No related tags found
1 merge request!897hotfix-6925
Pipeline #20468 passed with stage
in 5 minutes and 10 seconds
...@@ -85,13 +85,13 @@ int dap_cert_init() // TODO deinit too ...@@ -85,13 +85,13 @@ int dap_cert_init() // TODO deinit too
} }
/** /**
* @brief * @brief
* parse list of certificate from config file (if it is presented) * parse list of certificate from config file (if it is presented)
* in current implementation this function is used when node certificate (node-addr.dcert) is not generated * in current implementation this function is used when node certificate (node-addr.dcert) is not generated
* @param a_certs_str const char * string with certificate name (node-addr) * @param a_certs_str const char * string with certificate name (node-addr)
* @param a_certs dap_cert_t *** array with certificates * @param a_certs dap_cert_t *** array with certificates
* @param a_certs_size size of certificate * @param a_certs_size size of certificate
* @return size_t * @return size_t
*/ */
size_t dap_cert_parse_str_list(const char * a_certs_str, dap_cert_t *** a_certs, size_t * a_certs_size) size_t dap_cert_parse_str_list(const char * a_certs_str, dap_cert_t *** a_certs, size_t * a_certs_size)
{ {
...@@ -139,11 +139,11 @@ size_t dap_cert_parse_str_list(const char * a_certs_str, dap_cert_t *** a_certs, ...@@ -139,11 +139,11 @@ size_t dap_cert_parse_str_list(const char * a_certs_str, dap_cert_t *** a_certs,
/** /**
* @brief * @brief
* simply call dap_sign_create_output_unserialized_calc_size( a_cert->enc_key,a_size_wished) * simply call dap_sign_create_output_unserialized_calc_size( a_cert->enc_key,a_size_wished)
* @param a_cert dap_cert_t * certificate object * @param a_cert dap_cert_t * certificate object
* @param a_size_wished wished data size (don't used in current implementation) * @param a_size_wished wished data size (don't used in current implementation)
* @return size_t * @return size_t
*/ */
size_t dap_cert_sign_output_size(dap_cert_t * a_cert, size_t a_size_wished) size_t dap_cert_sign_output_size(dap_cert_t * a_cert, size_t a_size_wished)
{ {
...@@ -166,13 +166,13 @@ size_t dap_cert_sign_output_size(dap_cert_t * a_cert, size_t a_size_wished) ...@@ -166,13 +166,13 @@ size_t dap_cert_sign_output_size(dap_cert_t * a_cert, size_t a_size_wished)
}*/ }*/
/** /**
* @brief * @brief
* sign data by encryption key from certificate * sign data by encryption key from certificate
* @param a_cert dap_cert_t * certificate object * @param a_cert dap_cert_t * certificate object
* @param a_data data for signing * @param a_data data for signing
* @param a_data_size data size * @param a_data_size data size
* @param a_output_size_wished wished data size (don't used in current implementation) * @param a_output_size_wished wished data size (don't used in current implementation)
* @return dap_sign_t* * @return dap_sign_t*
*/ */
dap_sign_t * dap_cert_sign(dap_cert_t * a_cert, const void * a_data dap_sign_t * dap_cert_sign(dap_cert_t * a_cert, const void * a_data
, size_t a_data_size, size_t a_output_size_wished ) , size_t a_data_size, size_t a_output_size_wished )
...@@ -182,17 +182,17 @@ dap_sign_t * dap_cert_sign(dap_cert_t * a_cert, const void * a_data ...@@ -182,17 +182,17 @@ dap_sign_t * dap_cert_sign(dap_cert_t * a_cert, const void * a_data
if (l_ret) if (l_ret)
log_it(L_INFO, "Sign sizes: %d %d", l_ret->header.sign_size, l_ret->header.sign_pkey_size); log_it(L_INFO, "Sign sizes: %d %d", l_ret->header.sign_size, l_ret->header.sign_pkey_size);
else else
log_it(L_ERROR, "dap_sign_create return NULL"); log_it(L_ERROR, "dap_sign_create return NULL");
return l_ret; return l_ret;
} }
/** /**
* @brief * @brief
* sign certificate with another certificate (a_cert->signs) * sign certificate with another certificate (a_cert->signs)
* @param a_cert dap_cert_t certificate object * @param a_cert dap_cert_t certificate object
* @param a_cert_signer dap_cert_t certificate object, which signs a_cert * @param a_cert_signer dap_cert_t certificate object, which signs a_cert
* @return int * @return int
*/ */
int dap_cert_add_cert_sign(dap_cert_t * a_cert, dap_cert_t * a_cert_signer) int dap_cert_add_cert_sign(dap_cert_t * a_cert, dap_cert_t * a_cert_signer)
{ {
...@@ -210,12 +210,12 @@ int dap_cert_add_cert_sign(dap_cert_t * a_cert, dap_cert_t * a_cert_signer) ...@@ -210,12 +210,12 @@ int dap_cert_add_cert_sign(dap_cert_t * a_cert, dap_cert_t * a_cert_signer)
/** /**
* @brief generate certificate in memory with specified seed * @brief generate certificate in memory with specified seed
* *
* @param a_cert_name const char * name of certificate * @param a_cert_name const char * name of certificate
* @param a_key_type dap_enc_key_type_t key type * @param a_key_type dap_enc_key_type_t key type
* @param a_seed const void* seed for certificate generation * @param a_seed const void* seed for certificate generation
* @param a_seed_size size_t size of seed * @param a_seed_size size_t size of seed
* @return dap_cert_t* * @return dap_cert_t*
*/ */
dap_cert_t * dap_cert_generate_mem_with_seed(const char * a_cert_name, dap_enc_key_type_t a_key_type, dap_cert_t * dap_cert_generate_mem_with_seed(const char * a_cert_name, dap_enc_key_type_t a_key_type,
const void* a_seed, size_t a_seed_size) const void* a_seed, size_t a_seed_size)
...@@ -240,10 +240,10 @@ dap_cert_t * dap_cert_generate_mem_with_seed(const char * a_cert_name, dap_enc_k ...@@ -240,10 +240,10 @@ dap_cert_t * dap_cert_generate_mem_with_seed(const char * a_cert_name, dap_enc_k
/** /**
* @brief generate certificate in memory * @brief generate certificate in memory
* *
* @param a_cert_name const char * certificate name * @param a_cert_name const char * certificate name
* @param a_key_type encryption key type * @param a_key_type encryption key type
* @return dap_cert_t* * @return dap_cert_t*
*/ */
dap_cert_t * dap_cert_generate_mem(const char * a_cert_name, dap_enc_key_type_t a_key_type) dap_cert_t * dap_cert_generate_mem(const char * a_cert_name, dap_enc_key_type_t a_key_type)
{ {
...@@ -252,11 +252,11 @@ dap_cert_t * dap_cert_generate_mem(const char * a_cert_name, dap_enc_key_type_t ...@@ -252,11 +252,11 @@ dap_cert_t * dap_cert_generate_mem(const char * a_cert_name, dap_enc_key_type_t
/** /**
* @brief generate certificate and save it to file * @brief generate certificate and save it to file
* *
* @param a_cert_name const char * certificate name * @param a_cert_name const char * certificate name
* @param a_file_path const char * path to certificate file * @param a_file_path const char * path to certificate file
* @param a_key_type dap_enc_key_type_t key_type * @param a_key_type dap_enc_key_type_t key_type
* @return dap_cert_t* * @return dap_cert_t*
*/ */
dap_cert_t * dap_cert_generate(const char * a_cert_name dap_cert_t * dap_cert_generate(const char * a_cert_name
, const char * a_file_path,dap_enc_key_type_t a_key_type ) , const char * a_file_path,dap_enc_key_type_t a_key_type )
...@@ -292,7 +292,7 @@ void dap_cert_delete_by_name(const char * a_cert_name) ...@@ -292,7 +292,7 @@ void dap_cert_delete_by_name(const char * a_cert_name)
/** /**
* @brief * @brief
* find certificate by name in path, which is configured ca_folders parameter in chain config * find certificate by name in path, which is configured ca_folders parameter in chain config
* @param a_cert_name const char * * @param a_cert_name const char *
* @return * @return
*/ */
...@@ -362,6 +362,10 @@ dap_cert_t * dap_cert_new(const char * a_name) ...@@ -362,6 +362,10 @@ dap_cert_t * dap_cert_new(const char * a_name)
void dap_cert_delete(dap_cert_t * a_cert) void dap_cert_delete(dap_cert_t * a_cert)
{ {
dap_cert_item_t * l_cert_item = NULL; dap_cert_item_t * l_cert_item = NULL;
if ( !a_cert )
return;
HASH_FIND_STR(s_certs, a_cert->name, l_cert_item); HASH_FIND_STR(s_certs, a_cert->name, l_cert_item);
if ( l_cert_item ){ if ( l_cert_item ){
HASH_DEL(s_certs,l_cert_item); HASH_DEL(s_certs,l_cert_item);
...@@ -405,10 +409,10 @@ dap_cert_t * dap_cert_add_file(const char * a_cert_name,const char *a_folder_pat ...@@ -405,10 +409,10 @@ dap_cert_t * dap_cert_add_file(const char * a_cert_name,const char *a_folder_pat
/** /**
* @brief save certitificate to folder * @brief save certitificate to folder
* *
* @param a_cert dap_cert_t * certiticate object * @param a_cert dap_cert_t * certiticate object
* @param a_file_dir_path const char * path to directory with certificate * @param a_file_dir_path const char * path to directory with certificate
* @return int * @return int
*/ */
int dap_cert_save_to_folder(dap_cert_t * a_cert, const char *a_file_dir_path) int dap_cert_save_to_folder(dap_cert_t * a_cert, const char *a_file_dir_path)
{ {
...@@ -424,7 +428,7 @@ int dap_cert_save_to_folder(dap_cert_t * a_cert, const char *a_file_dir_path) ...@@ -424,7 +428,7 @@ int dap_cert_save_to_folder(dap_cert_t * a_cert, const char *a_file_dir_path)
/** /**
* @brief dap_cert_to_pkey * @brief dap_cert_to_pkey
* get public key from certificate * get public key from certificate
* dap_pkey_from_enc_key( a_cert->enc_key ) * dap_pkey_from_enc_key( a_cert->enc_key )
* @param a_cert dap_cert_t certificate object * @param a_cert dap_cert_t certificate object
* @return dap_pkey_t * @return dap_pkey_t
...@@ -438,11 +442,11 @@ dap_pkey_t * dap_cert_to_pkey(dap_cert_t * a_cert) ...@@ -438,11 +442,11 @@ dap_pkey_t * dap_cert_to_pkey(dap_cert_t * a_cert)
} }
/** /**
* @brief * @brief
* compare certificate encryption key with key, which was used for event or block signing * compare certificate encryption key with key, which was used for event or block signing
* @param a_cert dap_cert_t * certificate object * @param a_cert dap_cert_t * certificate object
* @param a_sign dap_sign_t * dap_sign_t object (signed block or event) * @param a_sign dap_sign_t * dap_sign_t object (signed block or event)
* @return int * @return int
*/ */
int dap_cert_compare_with_sign (dap_cert_t * a_cert,const dap_sign_t * a_sign) int dap_cert_compare_with_sign (dap_cert_t * a_cert,const dap_sign_t * a_sign)
{ {
...@@ -523,9 +527,9 @@ void dap_cert_dump(dap_cert_t * a_cert) ...@@ -523,9 +527,9 @@ void dap_cert_dump(dap_cert_t * a_cert)
/** /**
* @brief get certificate folder path * @brief get certificate folder path
* usage example: dap_cert_get_folder(0) * usage example: dap_cert_get_folder(0)
* @param a_n_folder_path * @param a_n_folder_path
* @return const char* * @return const char*
*/ */
const char* dap_cert_get_folder(int a_n_folder_path) const char* dap_cert_get_folder(int a_n_folder_path)
{ {
...@@ -536,7 +540,7 @@ const char* dap_cert_get_folder(int a_n_folder_path) ...@@ -536,7 +540,7 @@ const char* dap_cert_get_folder(int a_n_folder_path)
/** /**
* @brief load certificates from specified folder * @brief load certificates from specified folder
* *
* @param a_folder_path const char * * @param a_folder_path const char *
*/ */
void dap_cert_add_folder(const char *a_folder_path) void dap_cert_add_folder(const char *a_folder_path)
...@@ -572,13 +576,13 @@ void dap_cert_add_folder(const char *a_folder_path) ...@@ -572,13 +576,13 @@ void dap_cert_add_folder(const char *a_folder_path)
} }
/** /**
* @brief * @brief
* *
* @param a_key const char * * @param a_key const char *
* @param a_type dap_cert_metadata_type_t * @param a_type dap_cert_metadata_type_t
* @param a_value void * * @param a_value void *
* @param a_value_size size_t * @param a_value_size size_t
* @return dap_cert_metadata_t* * @return dap_cert_metadata_t*
*/ */
dap_cert_metadata_t *dap_cert_new_meta(const char *a_key, dap_cert_metadata_type_t a_type, void *a_value, size_t a_value_size) dap_cert_metadata_t *dap_cert_new_meta(const char *a_key, dap_cert_metadata_type_t a_type, void *a_value, size_t a_value_size)
{ {
...@@ -620,7 +624,7 @@ void dap_cert_add_meta(dap_cert_t *a_cert, const char *a_key, dap_cert_metadata_ ...@@ -620,7 +624,7 @@ void dap_cert_add_meta(dap_cert_t *a_cert, const char *a_key, dap_cert_metadata_
/** /**
* @brief Add metadata to certificate with additional value modification * @brief Add metadata to certificate with additional value modification
* *
* @param a_cert dap_cert_t * certificate object * @param a_cert dap_cert_t * certificate object
* @param a_key const char * key * @param a_key const char * key
* @param a_type dap_cert_metadata_type_t type * @param a_type dap_cert_metadata_type_t type
...@@ -667,10 +671,10 @@ void dap_cert_add_meta_scalar(dap_cert_t *a_cert, const char *a_key, dap_cert_me ...@@ -667,10 +671,10 @@ void dap_cert_add_meta_scalar(dap_cert_t *a_cert, const char *a_key, dap_cert_me
/** /**
* @brief get specified metadata from certificate * @brief get specified metadata from certificate
* *
* @param a_cert dap_cert_t * certificate object * @param a_cert dap_cert_t * certificate object
* @param a_field const char * field, which will be gotten from metadata * @param a_field const char * field, which will be gotten from metadata
* @return dap_cert_metadata_t* * @return dap_cert_metadata_t*
*/ */
dap_cert_metadata_t *dap_cert_get_meta(dap_cert_t *a_cert, const char *a_field) dap_cert_metadata_t *dap_cert_get_meta(dap_cert_t *a_cert, const char *a_field)
{ {
...@@ -679,10 +683,10 @@ dap_cert_metadata_t *dap_cert_get_meta(dap_cert_t *a_cert, const char *a_field) ...@@ -679,10 +683,10 @@ dap_cert_metadata_t *dap_cert_get_meta(dap_cert_t *a_cert, const char *a_field)
/** /**
* @brief get specified metadata from certificate in string (DAP_CERT_META_STRING) format * @brief get specified metadata from certificate in string (DAP_CERT_META_STRING) format
* *
* @param a_cert dap_cert_t * certificate object * @param a_cert dap_cert_t * certificate object
* @param a_field const char * field, which will be gotten from metadata * @param a_field const char * field, which will be gotten from metadata
* @return char* * @return char*
*/ */
char *dap_cert_get_meta_string(dap_cert_t *a_cert, const char *a_field) char *dap_cert_get_meta_string(dap_cert_t *a_cert, const char *a_field)
{ {
...@@ -699,11 +703,11 @@ char *dap_cert_get_meta_string(dap_cert_t *a_cert, const char *a_field) ...@@ -699,11 +703,11 @@ char *dap_cert_get_meta_string(dap_cert_t *a_cert, const char *a_field)
/** /**
* @brief get metadata from certificate with boolean (DAP_CERT_META_BOOL) type * @brief get metadata from certificate with boolean (DAP_CERT_META_BOOL) type
* *
* @param a_cert dap_cert_t * certificate object * @param a_cert dap_cert_t * certificate object
* @param a_field const char * field, which will be gotten from metadata * @param a_field const char * field, which will be gotten from metadata
* @return true * @return true
* @return false * @return false
*/ */
bool dap_cert_get_meta_bool(dap_cert_t *a_cert, const char *a_field) bool dap_cert_get_meta_bool(dap_cert_t *a_cert, const char *a_field)
{ {
...@@ -723,10 +727,10 @@ bool dap_cert_get_meta_bool(dap_cert_t *a_cert, const char *a_field) ...@@ -723,10 +727,10 @@ bool dap_cert_get_meta_bool(dap_cert_t *a_cert, const char *a_field)
/** /**
* @brief get metadata from certificate with int (DAP_CERT_META_INT) type * @brief get metadata from certificate with int (DAP_CERT_META_INT) type
* *
* @param a_cert dap_cert_t * certificate object * @param a_cert dap_cert_t * certificate object
* @param a_field const char * field, which will be gotten from metadata * @param a_field const char * field, which will be gotten from metadata
* @return int * @return int
*/ */
int dap_cert_get_meta_int(dap_cert_t *a_cert, const char *a_field) int dap_cert_get_meta_int(dap_cert_t *a_cert, const char *a_field)
{ {
...@@ -746,10 +750,10 @@ int dap_cert_get_meta_int(dap_cert_t *a_cert, const char *a_field) ...@@ -746,10 +750,10 @@ int dap_cert_get_meta_int(dap_cert_t *a_cert, const char *a_field)
/** /**
* @brief get metadata from certificate with datetime (DAP_CERT_META_DATETIME) type * @brief get metadata from certificate with datetime (DAP_CERT_META_DATETIME) type
* *
* @param a_cert dap_cert_t * certificate object * @param a_cert dap_cert_t * certificate object
* @param a_field const char * field, which will be gotten from metadata * @param a_field const char * field, which will be gotten from metadata
* @return time_t * @return time_t
*/ */
time_t dap_cert_get_meta_time(dap_cert_t *a_cert, const char *a_field) time_t dap_cert_get_meta_time(dap_cert_t *a_cert, const char *a_field)
{ {
...@@ -769,10 +773,10 @@ time_t dap_cert_get_meta_time(dap_cert_t *a_cert, const char *a_field) ...@@ -769,10 +773,10 @@ time_t dap_cert_get_meta_time(dap_cert_t *a_cert, const char *a_field)
/** /**
* @brief get metadata from certificate with datetime (DAP_CERT_META_DATETIME_PERIOD) type * @brief get metadata from certificate with datetime (DAP_CERT_META_DATETIME_PERIOD) type
* *
* @param a_cert dap_cert_t * certificate object * @param a_cert dap_cert_t * certificate object
* @param a_field const char * field, which will be gotten from metadata * @param a_field const char * field, which will be gotten from metadata
* @return time_t * @return time_t
*/ */
time_t dap_cert_get_meta_period(dap_cert_t *a_cert, const char *a_field) time_t dap_cert_get_meta_period(dap_cert_t *a_cert, const char *a_field)
{ {
...@@ -792,10 +796,10 @@ time_t dap_cert_get_meta_period(dap_cert_t *a_cert, const char *a_field) ...@@ -792,10 +796,10 @@ time_t dap_cert_get_meta_period(dap_cert_t *a_cert, const char *a_field)
/** /**
* @brief get metadata from certificate with dap_sign_t (DAP_CERT_META_SIGN) type * @brief get metadata from certificate with dap_sign_t (DAP_CERT_META_SIGN) type
* *
* @param a_cert dap_cert_t * certificate object * @param a_cert dap_cert_t * certificate object
* @param a_field const char * field, which will be gotten from metadata * @param a_field const char * field, which will be gotten from metadata
* @return dap_sign_t* * @return dap_sign_t*
*/ */
dap_sign_t *dap_cert_get_meta_sign(dap_cert_t *a_cert, const char *a_field) dap_sign_t *dap_cert_get_meta_sign(dap_cert_t *a_cert, const char *a_field)
{ {
...@@ -816,11 +820,11 @@ dap_sign_t *dap_cert_get_meta_sign(dap_cert_t *a_cert, const char *a_field) ...@@ -816,11 +820,11 @@ dap_sign_t *dap_cert_get_meta_sign(dap_cert_t *a_cert, const char *a_field)
/** /**
* @brief get metadata from certificate with custom (DAP_CERT_META_CUSTOM) type * @brief get metadata from certificate with custom (DAP_CERT_META_CUSTOM) type
* *
* @param a_cert dap_cert_t * certificate object * @param a_cert dap_cert_t * certificate object
* @param a_field const char * field, which will be gotten from metadata * @param a_field const char * field, which will be gotten from metadata
* @param a_meta_size_out size_t size of recieved data * @param a_meta_size_out size_t size of recieved data
* @return void* * @return void*
*/ */
void *dap_cert_get_meta_custom(dap_cert_t *a_cert, const char *a_field, size_t *a_meta_size_out) void *dap_cert_get_meta_custom(dap_cert_t *a_cert, const char *a_field, size_t *a_meta_size_out)
{ {
......
...@@ -182,8 +182,9 @@ void dap_chain_wallet_close( dap_chain_wallet_t * a_wallet) ...@@ -182,8 +182,9 @@ void dap_chain_wallet_close( dap_chain_wallet_t * a_wallet)
DAP_DELETE(l_wallet_internal->addr); DAP_DELETE(l_wallet_internal->addr);
if(l_wallet_internal->file_name) if(l_wallet_internal->file_name)
DAP_DELETE(l_wallet_internal->file_name); DAP_DELETE(l_wallet_internal->file_name);
for(size_t i = 0; i<l_wallet_internal->certs_count;i++) if ( l_wallet_internal->certs )
dap_cert_delete( l_wallet_internal->certs[i]); for(size_t i = 0; i<l_wallet_internal->certs_count;i++)
dap_cert_delete( l_wallet_internal->certs[i]);
DAP_DELETE(l_wallet_internal->certs); DAP_DELETE(l_wallet_internal->certs);
DAP_DELETE(l_wallet_internal); DAP_DELETE(l_wallet_internal);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment