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