AusweisApp2
TlsConfiguration.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include <QByteArrayList>
10 #include <QJsonObject>
11 #include <QList>
12 #include <QSslCipher>
13 #include <QSslConfiguration>
14 #include <QSslEllipticCurve>
15 #include <QStringList>
16 #include <QVector>
17 
18 
19 class test_TlsConfiguration;
20 
21 
22 namespace governikus
23 {
24 
25 class SecureStorage;
26 
27 
29  : public QList<QSslCipher>
30 {
31  public:
32  SslCipherList& operator +=(const QString& pCipherName);
33 };
34 
35 
37  : public QVector<QSslEllipticCurve>
38 {
39  public:
40  SslEllipticCurveVector& operator +=(const QString& pEllipticCurveName);
41 };
42 
43 
44 class TlsConfiguration final
45 {
46  friend class SecureStorage;
47  friend class ::test_TlsConfiguration;
48  friend bool operator==(const TlsConfiguration& pLeft, const TlsConfiguration& pRight);
49 
50  private:
51  QSslConfiguration mConfiguration;
52 
55 
56  [[nodiscard]] QJsonArray readJsonArray(const QJsonObject& pConfig, const QLatin1String pName) const;
57  [[nodiscard]] QSsl::SslProtocol readSslProtocol(const QJsonObject& pConfig, const QLatin1String pName) const;
58  [[nodiscard]] bool readOcspStapling(const QJsonObject& pConfig, const QLatin1String pName) const;
59  [[nodiscard]] QByteArrayList readSignatureAlgorithms(const QJsonObject& pConfig, const QLatin1String pKey) const;
60 
61  public:
62  void load(const QJsonObject& pConfig);
63 
64  [[nodiscard]] QSsl::SslProtocol getProtocolVersion() const;
65  [[nodiscard]] bool getOcspStapling() const;
66  [[nodiscard]] QList<QSslCipher> getCiphers() const;
67  [[nodiscard]] QVector<QSslEllipticCurve> getEllipticCurves() const;
68  [[nodiscard]] QByteArrayList getSignatureAlgorithms() const;
69  [[nodiscard]] const QSslConfiguration& getConfiguration() const;
70 };
71 
72 
73 inline bool operator==(const TlsConfiguration& pLeft, const TlsConfiguration& pRight)
74 {
75  return &pLeft == &pRight || (
76  pLeft.mConfiguration == pRight.mConfiguration);
77 }
78 
79 
80 inline bool operator!=(const TlsConfiguration& pLeft, const TlsConfiguration& pRight)
81 {
82  return !(pLeft == pRight);
83 }
84 
85 
86 } // namespace governikus
const QSslConfiguration & getConfiguration() const
Definition: TlsConfiguration.cpp:142
Definition: TlsConfiguration.h:44
bool operator!=(const CVCertificate &pLeft, const CVCertificate &pRight)
Definition: CVCertificate.h:78
bool getOcspStapling() const
Definition: TlsConfiguration.cpp:106
SslEllipticCurveVector & operator+=(const QString &pEllipticCurveName)
Definition: TlsConfiguration.cpp:37
Definition: TlsConfiguration.h:36
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
QByteArrayList getSignatureAlgorithms() const
Definition: TlsConfiguration.cpp:130
QSsl::SslProtocol getProtocolVersion() const
Definition: TlsConfiguration.cpp:100
bool operator==(const CVCertificate &pLeft, const CVCertificate &pRight)
Definition: CVCertificate.h:72
QVector< QSslEllipticCurve > getEllipticCurves() const
Definition: TlsConfiguration.cpp:124
Definition: TlsConfiguration.h:28
friend bool operator==(const TlsConfiguration &pLeft, const TlsConfiguration &pRight)
Definition: TlsConfiguration.h:73
Definition: SecureStorage.h:30
QList< QSslCipher > getCiphers() const
Definition: TlsConfiguration.cpp:118
SslCipherList & operator+=(const QString &pCipherName)
Definition: TlsConfiguration.cpp:21
void load(const QJsonObject &pConfig)
Definition: TlsConfiguration.cpp:64