From 535e8cb5173fe2a6b65916ad0a8da0bfceb9991e Mon Sep 17 00:00:00 2001 From: Dmitriy Naidolinskiy <dmitriy.naidolinskiy@demlabs.net> Date: Tue, 30 Nov 2021 18:42:22 +0000 Subject: [PATCH] Implemented add auth_cert --- dap-sdk/CMakeLists.txt | 2 +- dap-sdk/net/client/dap_client.c | 40 +++++++++++++++++++++++++ dap-sdk/net/client/include/dap_client.h | 1 + modules/net/dap_chain_node_client.c | 2 +- 4 files changed, 43 insertions(+), 2 deletions(-) diff --git a/dap-sdk/CMakeLists.txt b/dap-sdk/CMakeLists.txt index 9a6f3fa639..f1b30e0ed0 100644 --- a/dap-sdk/CMakeLists.txt +++ b/dap-sdk/CMakeLists.txt @@ -1,4 +1,4 @@ -set(DAP_SDK_NATIVE_VERSION "2.2-2") +set(DAP_SDK_NATIVE_VERSION "2.3-0") # We switch off SSL until its not switched on back if(DAPSDK_MODULES MATCHES "ssl-support") diff --git a/dap-sdk/net/client/dap_client.c b/dap-sdk/net/client/dap_client.c index d992fe2d8e..d9d364beaf 100644 --- a/dap-sdk/net/client/dap_client.c +++ b/dap-sdk/net/client/dap_client.c @@ -177,6 +177,46 @@ uint16_t dap_client_get_uplink_port_unsafe(dap_client_t * a_client) return DAP_CLIENT_PVT(a_client)->uplink_port; } +/** + * @brief dap_client_set_auth_cert + * @param a_client + * @param a_chain_net_name + * @param a_option + */ +void dap_client_set_auth_cert(dap_client_t *a_client, const char *a_chain_net_name) +{ + const char *l_auth_hash_str = NULL; + + if(a_client == NULL || a_chain_net_name == NULL){ + log_it(L_ERROR,"Chain-net is NULL for dap_client_set_auth_cert"); + return; + } + + char *l_path = dap_strdup_printf("network/%s", a_chain_net_name); + if (!l_path) { + log_it(L_ERROR, "Can't allocate memory: file: %s line: %d", __FILE__, __LINE__); + return; + } + + dap_config_t *l_cfg = dap_config_open(l_path); + free(l_path); + if (!l_cfg) { + log_it(L_ERROR, "Can't allocate memory: file: %s line: %d", __FILE__, __LINE__); + return; + } + + dap_cert_t *l_cert = dap_cert_find_by_name(dap_config_get_item_str(l_cfg, "general", "auth_cert")); + if (!l_cert) { + dap_config_close(l_cfg); + log_it(L_ERROR,"l_cert is NULL by dap_cert_find_by_name"); + return; + } + dap_client_set_auth_cert_unsafe(a_client, l_cert); + + //dap_cert_delete(l_cert); + dap_config_close(l_cfg); +} + void dap_client_set_auth_cert_unsafe(dap_client_t * a_client, dap_cert_t *a_cert) { if(a_client == NULL){ diff --git a/dap-sdk/net/client/include/dap_client.h b/dap-sdk/net/client/include/dap_client.h index 8457e838b7..0173b8cc67 100644 --- a/dap-sdk/net/client/include/dap_client.h +++ b/dap-sdk/net/client/include/dap_client.h @@ -139,6 +139,7 @@ dap_stream_ch_t * dap_client_get_stream_ch_unsafe(dap_client_t * a_client, uint8 const char * dap_client_get_stream_id(dap_client_t * a_client); void dap_client_set_active_channels_unsafe (dap_client_t * a_client, const char * a_active_channels); void dap_client_set_auth_cert_unsafe(dap_client_t * a_client, dap_cert_t *a_cert); +void dap_client_set_auth_cert(dap_client_t *a_client, const char *a_chain_net_name); dap_client_stage_t dap_client_get_stage(dap_client_t * a_client); dap_client_stage_status_t dap_client_get_stage_status(dap_client_t * a_client); diff --git a/modules/net/dap_chain_node_client.c b/modules/net/dap_chain_node_client.c index 46a0b193dd..cf294c6e17 100644 --- a/modules/net/dap_chain_node_client.c +++ b/modules/net/dap_chain_node_client.c @@ -666,7 +666,7 @@ static bool dap_chain_node_client_connect_internal(dap_chain_node_client_t *a_no a_node_client->client->_inheritor = a_node_client; dap_client_set_active_channels_unsafe(a_node_client->client, a_active_channels); - //dap_client_set_auth_cert(a_node_client->client, dap_cert_find_by_name("auth")); // TODO provide the certificate choice + dap_client_set_auth_cert(a_node_client->client, a_node_client->net->pub.name); // TODO provide the certificate choice int hostlen = 128; char host[hostlen]; -- GitLab