deskflow/src/lib/gui/TlsUtility.h

44 lines
1.5 KiB
C++

/*
* Deskflow -- mouse and keyboard sharing utility
* SPDX-FileCopyrightText: (C) 2025 Deskflow Developers
* SPDX-FileCopyrightText: (C) 2024 Symless Ltd.
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
*/
#pragma once
#include <common/Settings.h>
namespace deskflow::gui::TlsUtility {
bool generateCertificate();
/**
* @brief Checks the settings values Settings::Security::TlsEnabled
* @return true when tls is enabled
*/
bool isEnabled();
/**
* @brief isCertValid
* @param certPath the path of the file to check, when not set uses Settings::Security::Certificate value
* @return true if the certificate is valid
*/
bool isCertValid(const QString &certPath = Settings::value(Settings::Security::Certificate).toString());
/**
* @brief Get the lenght of a key
* @param certPath path of the file to check, when unset will use the value of Settings::Security::Certificate
* @return the bitsize of the key
*/
int getCertKeyLength(const QString &certPath = Settings::value(Settings::Security::Certificate).toString());
/**
* @brief get the SHA256 fingerprint of a certificatefile.
* @param certPath path of the file to fingerprint, when not set uses the vaule of Settings::Security::Certificate
* @return A QByteArray of the SHA256 fingerprint of the file or empty array if invalid file is passed
*/
// clang-format off
QByteArray certFingerprint(const QString &certPath = Settings::value(Settings::Security::Certificate).toString());
// clang-format on
} // namespace deskflow::gui::TlsUtility