mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-12-24 09:16:45 +08:00
[feat] use fingerprint-based verification for TLS connection
This commit is contained in:
@@ -537,13 +537,13 @@ int Render::CreateConnectionPeer() {
|
||||
std::string signal_server_ip;
|
||||
int signal_server_port;
|
||||
int coturn_server_port;
|
||||
std::string tls_cert_path;
|
||||
std::string tls_cert_fingerprint;
|
||||
|
||||
if (config_center_->IsSelfHosted()) {
|
||||
signal_server_ip = config_center_->GetSignalServerHost();
|
||||
signal_server_port = config_center_->GetSignalServerPort();
|
||||
coturn_server_port = config_center_->GetCoturnServerPort();
|
||||
tls_cert_path = config_center_->GetCertFilePath();
|
||||
tls_cert_fingerprint = config_center_->GetCertFingerprint();
|
||||
|
||||
std::string current_self_hosted_ip = config_center_->GetSignalServerHost();
|
||||
bool use_cached_id = false;
|
||||
@@ -604,7 +604,7 @@ int Render::CreateConnectionPeer() {
|
||||
signal_server_ip = config_center_->GetDefaultServerHost();
|
||||
signal_server_port = config_center_->GetDefaultSignalServerPort();
|
||||
coturn_server_port = config_center_->GetDefaultCoturnServerPort();
|
||||
tls_cert_path = config_center_->GetDefaultCertFilePath();
|
||||
tls_cert_fingerprint = "";
|
||||
params_.user_id = client_id_with_password_;
|
||||
}
|
||||
|
||||
@@ -649,9 +649,22 @@ int Render::CreateConnectionPeer() {
|
||||
strncpy((char*)params_.turn_server_password, "crossdeskpw",
|
||||
sizeof(params_.turn_server_password) - 1);
|
||||
params_.turn_server_password[sizeof(params_.turn_server_password) - 1] = '\0';
|
||||
strncpy(params_.tls_cert_path, tls_cert_path.c_str(),
|
||||
sizeof(params_.tls_cert_path) - 1);
|
||||
params_.tls_cert_path[sizeof(params_.tls_cert_path) - 1] = '\0';
|
||||
strncpy(params_.tls_cert_fingerprint, tls_cert_fingerprint.c_str(),
|
||||
sizeof(params_.tls_cert_fingerprint) - 1);
|
||||
params_.tls_cert_fingerprint[sizeof(params_.tls_cert_fingerprint) - 1] = '\0';
|
||||
|
||||
if (config_center_->IsSelfHosted()) {
|
||||
params_.on_cert_fingerprint = [](const char* fingerprint, void* user_data) {
|
||||
Render* render = static_cast<Render*>(user_data);
|
||||
if (render && render->config_center_) {
|
||||
render->config_center_->SetCertFingerprint(fingerprint);
|
||||
}
|
||||
};
|
||||
params_.fingerprint_user_data = this;
|
||||
} else {
|
||||
params_.on_cert_fingerprint = nullptr;
|
||||
params_.fingerprint_user_data = nullptr;
|
||||
}
|
||||
|
||||
strncpy(params_.log_path, dll_log_path_.c_str(),
|
||||
sizeof(params_.log_path) - 1);
|
||||
|
||||
Reference in New Issue
Block a user