diff --git a/dap-sdk/crypto/src/dap_cert.c b/dap-sdk/crypto/src/dap_cert.c index 586d560251f22d42dbd66b1555fc6f87260fbcf6..913d70cd2231f63b073c9c0254fe3d146e038420 100755 --- a/dap-sdk/crypto/src/dap_cert.c +++ b/dap-sdk/crypto/src/dap_cert.c @@ -85,13 +85,13 @@ int dap_cert_init() // TODO deinit too } /** - * @brief + * @brief * 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 dap_cert_t *** array with certificates * @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) { @@ -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) * @param a_cert dap_cert_t * certificate object * @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) { @@ -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 * @param a_cert dap_cert_t * certificate object * @param a_data data for signing * @param a_data_size data size * @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 , 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 if (l_ret) log_it(L_INFO, "Sign sizes: %d %d", l_ret->header.sign_size, l_ret->header.sign_pkey_size); else - log_it(L_ERROR, "dap_sign_create return NULL"); - + log_it(L_ERROR, "dap_sign_create return NULL"); + return l_ret; } /** - * @brief + * @brief * sign certificate with another certificate (a_cert->signs) * @param a_cert dap_cert_t certificate object * @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) { @@ -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 - * + * * @param a_cert_name const char * name of certificate * @param a_key_type dap_enc_key_type_t key type * @param a_seed const void* seed for certificate generation * @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, 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 /** * @brief generate certificate in memory - * + * * @param a_cert_name const char * certificate name * @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) { @@ -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 - * + * * @param a_cert_name const char * certificate name * @param a_file_path const char * path to certificate file * @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 , 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) /** * @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 * * @return */ @@ -362,6 +362,10 @@ dap_cert_t * dap_cert_new(const char * a_name) void dap_cert_delete(dap_cert_t * a_cert) { dap_cert_item_t * l_cert_item = NULL; + + if ( !a_cert ) + return; + HASH_FIND_STR(s_certs, a_cert->name, l_cert_item); if ( 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 /** * @brief save certitificate to folder - * + * * @param a_cert dap_cert_t * certiticate object * @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) { @@ -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 - * get public key from certificate + * get public key from certificate * dap_pkey_from_enc_key( a_cert->enc_key ) * @param a_cert dap_cert_t certificate object * @return dap_pkey_t @@ -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 * @param a_cert dap_cert_t * certificate object * @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) { @@ -523,9 +527,9 @@ void dap_cert_dump(dap_cert_t * a_cert) /** * @brief get certificate folder path - * usage example: dap_cert_get_folder(0) - * @param a_n_folder_path - * @return const char* + * usage example: dap_cert_get_folder(0) + * @param a_n_folder_path + * @return const char* */ 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 - * + * * @param a_folder_path const char * */ 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_type dap_cert_metadata_type_t * @param a_value void * * @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) { @@ -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 - * + * * @param a_cert dap_cert_t * certificate object * @param a_key const char * key * @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 /** * @brief get specified metadata from certificate - * + * * @param a_cert dap_cert_t * certificate object * @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) { @@ -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 - * + * * @param a_cert dap_cert_t * certificate object * @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) { @@ -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 - * + * * @param a_cert dap_cert_t * certificate object * @param a_field const char * field, which will be gotten from metadata - * @return true - * @return false + * @return true + * @return false */ 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 - * + * * @param a_cert dap_cert_t * certificate object * @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) { @@ -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 - * + * * @param a_cert dap_cert_t * certificate object * @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) { @@ -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 - * + * * @param a_cert dap_cert_t * certificate object * @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) { @@ -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 - * + * * @param a_cert dap_cert_t * certificate object * @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) { @@ -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 - * + * * @param a_cert dap_cert_t * certificate object * @param a_field const char * field, which will be gotten from metadata * @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) { diff --git a/modules/wallet/dap_chain_wallet.c b/modules/wallet/dap_chain_wallet.c index f7eee789bb1b3531def1381700c60e087035208f..d51811c615965d35230fe12fb3579a1422212d2b 100644 --- a/modules/wallet/dap_chain_wallet.c +++ b/modules/wallet/dap_chain_wallet.c @@ -182,8 +182,9 @@ void dap_chain_wallet_close( dap_chain_wallet_t * a_wallet) DAP_DELETE(l_wallet_internal->addr); if(l_wallet_internal->file_name) DAP_DELETE(l_wallet_internal->file_name); - for(size_t i = 0; i<l_wallet_internal->certs_count;i++) - dap_cert_delete( l_wallet_internal->certs[i]); + if ( l_wallet_internal->certs ) + 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);