AusweisApp
Lade ...
Suche ...
Keine Treffer
TlsChecker.h
gehe zur Dokumentation dieser Datei
1
9#pragma once
10
11#include "FailureCode.h"
12#include "LogHandler.h"
13
14#include <QCryptographicHash>
15#include <QNetworkReply>
16#include <QSet>
17#include <QSslCertificate>
18#include <QSslCipher>
19#include <QSslConfiguration>
20#include <QSslKey>
21
22namespace governikus
23{
24
26{
27 private:
28 static const std::function<int(QSsl::KeyAlgorithm)> cDefaultFuncMinKeySize;
29
30 [[nodiscard]] static bool isValidKeyLength(int pKeyLength, QSsl::KeyAlgorithm pKeyAlgorithm, int pMinKeySize);
31
32 TlsChecker() = delete;
33 ~TlsChecker() = delete;
34
35 public:
36 static void logSslConfig(const QSslConfiguration& pCfg, const MessageLogger& pLogger);
37 [[nodiscard]] static QString toString(QSsl::SslProtocol pProtocol);
38 [[nodiscard]] static QString toString(QSsl::KeyAlgorithm pKeyAlgorithm);
39
40 [[nodiscard]] static QStringList getFatalErrors(const QList<QSslError>& pErrors);
41 [[nodiscard]] static bool containsFatalError(const QSharedPointer<QNetworkReply>& pReply, const QList<QSslError>& pErrors);
42 [[nodiscard]] static QString sslErrorsToString(const QList<QSslError>& pErrors);
43
47 [[nodiscard]] static bool checkCertificate(const QSslCertificate& pCertificate,
48 QCryptographicHash::Algorithm pAlgorithm,
49 const QSet<QString>& pAcceptedCertificateHashes);
50
54 [[nodiscard]] static bool hasValidCertificateKeyLength(const QSslCertificate& pCertificate,
55 const std::function<int(QSsl::KeyAlgorithm)>& pFuncMinKeySize = cDefaultFuncMinKeySize);
56
60 [[nodiscard]] static bool hasValidEphemeralKeyLength(const QSslKey& pEphemeralServerKey,
61 const std::function<int(QSsl::KeyAlgorithm)>& pFuncMinKeySize = cDefaultFuncMinKeySize);
62 [[nodiscard]] static FailureCode::FailureInfoMap getEphemeralKeyInfoMap(const QSslKey& pEphemeralServerKey);
63
67 [[nodiscard]] static QString getCertificateIssuerName(const QSslCertificate& pCertificate);
68
69 [[nodiscard]] static QSslCertificate getRootCertificate(const QList<QSslCertificate>& pCertificates);
70};
71
72} // namespace governikus
QMap< Info, QString > FailureInfoMap
Definition FailureCode.h:184
Definition LogHandler.h:35
Definition TlsChecker.h:26
static QSslCertificate getRootCertificate(const QList< QSslCertificate > &pCertificates)
Definition TlsChecker.cpp:90
static QString getCertificateIssuerName(const QSslCertificate &pCertificate)
This method is only needed until QSslCertificate provides its own method issuerDisplayName in Qt 5....
Definition TlsChecker.cpp:79
static QStringList getFatalErrors(const QList< QSslError > &pErrors)
Definition TlsChecker.cpp:209
static bool containsFatalError(const QSharedPointer< QNetworkReply > &pReply, const QList< QSslError > &pErrors)
Definition TlsChecker.cpp:252
static void logSslConfig(const QSslConfiguration &pCfg, const MessageLogger &pLogger)
Definition TlsChecker.cpp:283
static QString sslErrorsToString(const QList< QSslError > &pErrors)
Definition TlsChecker.cpp:272
static FailureCode::FailureInfoMap getEphemeralKeyInfoMap(const QSslKey &pEphemeralServerKey)
Definition TlsChecker.cpp:70
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:126
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