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
38#if (QT_VERSION < QT_VERSION_CHECK(6, 7, 0))
39 [[nodiscard]] static QString toString(QSsl::SslProtocol pProtocol);
40 [[nodiscard]] static QString toString(QSsl::KeyAlgorithm pKeyAlgorithm);
41#endif
42
43 [[nodiscard]] static QStringList getFatalErrors(const QList<QSslError>& pErrors);
44 [[nodiscard]] static bool containsFatalError(const QSharedPointer<QNetworkReply>& pReply, const QList<QSslError>& pErrors);
45 [[nodiscard]] static QString sslErrorsToString(const QList<QSslError>& pErrors);
46
51 QCryptographicHash::Algorithm pAlgorithm,
53
58 const std::function<int(QSsl::KeyAlgorithm)>& pFuncMinKeySize = cDefaultFuncMinKeySize);
59
64 const std::function<int(QSsl::KeyAlgorithm)>& pFuncMinKeySize = cDefaultFuncMinKeySize);
66
67 [[nodiscard]] static QSslCertificate getRootCertificate(const QList<QSslCertificate>& pCertificates);
68};
69
70} // namespace governikus
QMap< Info, QString > FailureInfoMap
Definition FailureCode.h:186
Definition LogHandler.h:35
Definition TlsChecker.h:26
static QSslCertificate getRootCertificate(const QList< QSslCertificate > &pCertificates)
Definition TlsChecker.cpp:92
static QStringList getFatalErrors(const QList< QSslError > &pErrors)
Definition TlsChecker.cpp:218
static bool containsFatalError(const QSharedPointer< QNetworkReply > &pReply, const QList< QSslError > &pErrors)
Definition TlsChecker.cpp:261
static void logSslConfig(const QSslConfiguration &pCfg, const MessageLogger &pLogger)
Definition TlsChecker.cpp:292
static QString sslErrorsToString(const QList< QSslError > &pErrors)
Definition TlsChecker.cpp:281
static FailureCode::FailureInfoMap getEphemeralKeyInfoMap(const QSslKey &pEphemeralServerKey)
Definition TlsChecker.cpp:79
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:25
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:41
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:60
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:17
char * toString(const CommandApdu &pCommandApdu)
QSharedPointer< T > decodeObject(const QByteArray &pData, bool pLogging=true)
Template function for decoding an OpenSSL type from DER encoded QByteArray.
Definition ASN1TemplateUtil.h:114