Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
cellframe-sdk
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Code
Merge requests
17
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
cellframe
cellframe-sdk
Commits
bc7a9b70
Commit
bc7a9b70
authored
2 years ago
by
ruslan.laishev
💬
Browse files
Options
Downloads
Patches
Plain Diff
[*] Fixed crash on opening Wallet Vol 2
parent
2a204508
No related branches found
No related tags found
1 merge request
!897
hotfix-6925
Pipeline
#20468
passed with stage
in 5 minutes and 10 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
dap-sdk/crypto/src/dap_cert.c
+52
-48
52 additions, 48 deletions
dap-sdk/crypto/src/dap_cert.c
modules/wallet/dap_chain_wallet.c
+3
-2
3 additions, 2 deletions
modules/wallet/dap_chain_wallet.c
with
55 additions
and
50 deletions
dap-sdk/crypto/src/dap_cert.c
+
52
−
48
View file @
bc7a9b70
...
@@ -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
)
{
{
...
...
This diff is collapsed.
Click to expand it.
modules/wallet/dap_chain_wallet.c
+
3
−
2
View file @
bc7a9b70
...
@@ -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
);
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment