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
48 QCryptographicHash::Algorithm pAlgorithm,
50
55 const std::function<int(QSsl::KeyAlgorithm)>& pFuncMinKeySize = cDefaultFuncMinKeySize);
56
61 const std::function<int(QSsl::KeyAlgorithm)>& pFuncMinKeySize = cDefaultFuncMinKeySize);
63
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
QSharedPointer< T > decodeObject(const QByteArray &pData, bool pLogging=true)
Template function for decoding an OpenSSL type from DER encoded QByteArray.
Definition ASN1TemplateUtil.h:114