AusweisApp
Lade ...
Suche ...
Keine Treffer
TlsChecker.h
gehe zur Dokumentation dieser Datei
1
9#pragma once
10
11#include "LogHandler.h"
12
13#include <QCryptographicHash>
14#include <QNetworkReply>
15#include <QSet>
16#include <QSslCertificate>
17#include <QSslCipher>
18#include <QSslConfiguration>
19#include <QSslKey>
20
21namespace governikus
22{
23
25{
26 private:
27 static const std::function<int(QSsl::KeyAlgorithm)> cDefaultFuncMinKeySize;
28
29 [[nodiscard]] static bool isValidKeyLength(int pKeyLength, QSsl::KeyAlgorithm pKeyAlgorithm, int pMinKeySize);
30
31 TlsChecker() = delete;
32 ~TlsChecker() = delete;
33
34 public:
35 static void logSslConfig(const QSslConfiguration& pCfg, const MessageLogger& pLogger);
36 [[nodiscard]] static QString toString(QSsl::SslProtocol pProtocol);
37 [[nodiscard]] static QString toString(QSsl::KeyAlgorithm pKeyAlgorithm);
38
39 [[nodiscard]] static QStringList getFatalErrors(const QList<QSslError>& pErrors);
40 [[nodiscard]] static bool containsFatalError(const QSharedPointer<QNetworkReply>& pReply, const QList<QSslError>& pErrors);
41 [[nodiscard]] static QString sslErrorsToString(const QList<QSslError>& pErrors);
42
46 [[nodiscard]] static bool checkCertificate(const QSslCertificate& pCertificate,
47 QCryptographicHash::Algorithm pAlgorithm,
48 const QSet<QString>& pAcceptedCertificateHashes);
49
53 [[nodiscard]] static bool hasValidCertificateKeyLength(const QSslCertificate& pCertificate,
54 const std::function<int(QSsl::KeyAlgorithm)>& pFuncMinKeySize = cDefaultFuncMinKeySize);
55
59 [[nodiscard]] static bool hasValidEphemeralKeyLength(const QSslKey& pEphemeralServerKey,
60 const std::function<int(QSsl::KeyAlgorithm)>& pFuncMinKeySize = cDefaultFuncMinKeySize);
61
65 [[nodiscard]] static QString getCertificateIssuerName(const QSslCertificate& pCertificate);
66
67 [[nodiscard]] static QSslCertificate getRootCertificate(const QList<QSslCertificate>& pCertificates);
68};
69
70} // namespace governikus
Definition LogHandler.h:35
Definition TlsChecker.h:25
static QSslCertificate getRootCertificate(const QList< QSslCertificate > &pCertificates)
Definition TlsChecker.cpp:81
static QString getCertificateIssuerName(const QSslCertificate &pCertificate)
This method is only needed until QSslCertificate provides its own method issuerDisplayName in Qt 5....
Definition TlsChecker.cpp:70
static QStringList getFatalErrors(const QList< QSslError > &pErrors)
Definition TlsChecker.cpp:200
static bool containsFatalError(const QSharedPointer< QNetworkReply > &pReply, const QList< QSslError > &pErrors)
Definition TlsChecker.cpp:243
static void logSslConfig(const QSslConfiguration &pCfg, const MessageLogger &pLogger)
Definition TlsChecker.cpp:274
static QString sslErrorsToString(const QList< QSslError > &pErrors)
Definition TlsChecker.cpp:263
static bool checkCertificate(const QSslCertificate &pCertificate, QCryptographicHash::Algorithm pAlgorithm, const QSet< QString > &pAcceptedCertificateHashes)
Checks, whether the certificate's hash is contained in a set of accepted certificate hashes.
Definition TlsChecker.cpp:24
static bool hasValidCertificateKeyLength(const QSslCertificate &pCertificate, const std::function< int(QSsl::KeyAlgorithm)> &pFuncMinKeySize=cDefaultFuncMinKeySize)
Checks, whether the key length of the SSL certificate is of sufficient length.
Definition TlsChecker.cpp:40
static QString toString(QSsl::SslProtocol pProtocol)
Definition TlsChecker.cpp:117
static bool hasValidEphemeralKeyLength(const QSslKey &pEphemeralServerKey, const std::function< int(QSsl::KeyAlgorithm)> &pFuncMinKeySize=cDefaultFuncMinKeySize)
Checks, whether the length of the ephemeral key is of sufficient length.
Definition TlsChecker.cpp:55
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:16