AusweisApp2
 Alle Klassen Namensbereiche Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Propertys Freundbeziehungen Makrodefinitionen
TlsConfiguration.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include <QCryptographicHash>
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 
26 class SecureStorage;
27 using SignatureAlgorithmPair = QPair<QSsl::KeyAlgorithm, QCryptographicHash::Algorithm>;
28 
29 
31  : public QList<QSslCipher>
32 {
33  public:
34  SslCipherList& operator +=(const QString& pCipherName);
35 };
36 
37 
39  : public QVector<QSslEllipticCurve>
40 {
41  public:
42  SslEllipticCurveVector& operator +=(const QString& pEllipticCurveName);
43 };
44 
45 
46 class TlsConfiguration final
47 {
48  friend class SecureStorage;
49  friend class ::test_TlsConfiguration;
50  friend bool operator==(const TlsConfiguration& pLeft, const TlsConfiguration& pRight);
51 
52  private:
53  QSslConfiguration mConfiguration;
54 
57 
58  bool readJsonArray(QJsonArray& pArray, const QJsonObject& pConfig, const QLatin1String pName);
59  QSsl::SslProtocol readSslProtocol(const QJsonObject& pConfig, const QLatin1String pName);
60  QVector<SignatureAlgorithmPair> readSignatureAlgorithms(const QJsonObject& pConfig, const QLatin1String pKey);
61 
62  public:
63  void load(const QJsonObject& pConfig);
64 
65  QSsl::SslProtocol getProtocolVersion() const;
66  QList<QSslCipher> getCiphers() const;
67  QVector<QSslEllipticCurve> getEllipticCurves() const;
68  QVector<SignatureAlgorithmPair> getSignatureAlgorithms() const;
69  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
QList< QSslCipher > getCiphers() const
Definition: TlsConfiguration.cpp:111
Definition: TlsConfiguration.h:46
QVector< SignatureAlgorithmPair > getSignatureAlgorithms() const
Definition: TlsConfiguration.cpp:123
bool operator!=(const CVCertificate &pLeft, const CVCertificate &pRight)
Definition: CVCertificate.h:80
SslEllipticCurveVector & operator+=(const QString &pEllipticCurveName)
Definition: TlsConfiguration.cpp:37
Definition: TlsConfiguration.h:38
QVector< QSslEllipticCurve > getEllipticCurves() const
Definition: TlsConfiguration.cpp:117
bool operator==(const CVCertificate &pLeft, const CVCertificate &pRight)
Definition: CVCertificate.h:74
Definition: TlsConfiguration.h:30
friend bool operator==(const TlsConfiguration &pLeft, const TlsConfiguration &pRight)
Definition: TlsConfiguration.h:73
QPair< QSsl::KeyAlgorithm, QCryptographicHash::Algorithm > SignatureAlgorithmPair
Definition: SecureStorage.h:29
const QSslConfiguration & getConfiguration() const
Definition: TlsConfiguration.cpp:135
QSsl::SslProtocol getProtocolVersion() const
Definition: TlsConfiguration.cpp:105
Definition: SecureStorage.h:31
SslCipherList & operator+=(const QString &pCipherName)
Definition: TlsConfiguration.cpp:21
void load(const QJsonObject &pConfig)
Definition: TlsConfiguration.cpp:64