AusweisApp2
 Alle Klassen Namensbereiche Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Propertys Freundbeziehungen Makrodefinitionen
SecureStorage.h
gehe zur Dokumentation dieser Datei
1 
8 #pragma once
9 
10 #include "TlsConfiguration.h"
11 
12 #include <QByteArrayList>
13 #include <QDateTime>
14 #include <QJsonArray>
15 #include <QJsonObject>
16 #include <QSslCertificate>
17 #include <QSslCipher>
18 #include <QString>
19 #include <QUrl>
20 #include <QVector>
21 
22 
23 class test_SecureStorage;
24 
25 
26 namespace governikus
27 {
28 
29 using SignatureAlgorithmPair = QPair<QSsl::KeyAlgorithm, QCryptographicHash::Algorithm>;
30 
32 {
33  friend class ::test_SecureStorage;
34 
35  private:
36  QDateTime mLoadedTime;
37  QByteArrayList mCvcas;
38  QByteArrayList mCvcasTest;
39  QVector<QSslCertificate> mUpdateCertificates;
40  QUrl mSelfAuthenticationUrl;
41  QUrl mSelfAuthenticationTestUrl;
42  QUrl mUpdateServerBaseUrl;
43  QUrl mAppcastUpdateUrl;
44  QUrl mAppcastBetaUpdateUrl;
45 
46  TlsConfiguration mTlsConfig, mTlsConfigPsk, mTlsConfigRemote, mTlsConfigRemotePsk;
47  QMap<QSsl::KeyAlgorithm, int> mMinStaticKeySizes;
48  QMap<QSsl::KeyAlgorithm, int> mMinEphemeralKeySizes;
49 
50  bool readJsonArray(QJsonArray& pArray, const QJsonObject& pConfig, const QLatin1String pName);
51  QString readGroup(const QJsonObject& pConfig, const QLatin1String pGroup, const QLatin1String pName);
52  QMap<QSsl::KeyAlgorithm, int> readKeySizes(const QJsonObject& pConfig, const QLatin1String pKey);
53  void readByteArrayList(QByteArrayList& pArray, const QJsonObject& pConfig, const QLatin1String pName);
54 
55  void load();
56 
57  protected:
58  SecureStorage();
59  virtual ~SecureStorage();
60 
61  public:
62  static SecureStorage& getInstance();
63 
64  enum class TlsSuite
65  {
66  DEFAULT, PSK,
67  };
68 
69  const QByteArrayList& getCVRootCertificates(bool pProductive) const;
70  const QVector<QSslCertificate>& getUpdateCertificates() const;
71  const QUrl& getSelfAuthenticationUrl(bool pTest = false) const;
72  const QUrl& getUpdateServerBaseUrl() const;
73  const QUrl& getAppcastUpdateUrl() const;
74  const QUrl& getAppcastBetaUpdateUrl() const;
75  const TlsConfiguration& getTlsConfig(TlsSuite pTlsSuite = TlsSuite::DEFAULT) const;
77  int getMinimumStaticKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const;
78  int getMinimumEphemeralKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const;
79 };
80 
81 
82 } // namespace governikus
const QByteArrayList & getCVRootCertificates(bool pProductive) const
Definition: SecureStorage.cpp:185
Definition: TlsConfiguration.h:46
SecureStorage()
Definition: SecureStorage.cpp:60
int getMinimumStaticKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const
Definition: SecureStorage.cpp:233
const QUrl & getAppcastUpdateUrl() const
Definition: SecureStorage.cpp:209
TlsSuite
Definition: SecureStorage.h:64
const QUrl & getSelfAuthenticationUrl(bool pTest=false) const
Definition: SecureStorage.cpp:197
const QUrl & getUpdateServerBaseUrl() const
Definition: SecureStorage.cpp:203
const TlsConfiguration & getTlsConfig(TlsSuite pTlsSuite=TlsSuite::DEFAULT) const
Definition: SecureStorage.cpp:221
const QUrl & getAppcastBetaUpdateUrl() const
Definition: SecureStorage.cpp:215
const QVector< QSslCertificate > & getUpdateCertificates() const
Definition: SecureStorage.cpp:191
static SecureStorage & getInstance()
Definition: SecureStorage.cpp:86
virtual ~SecureStorage()
Definition: SecureStorage.cpp:81
const TlsConfiguration & getTlsConfigRemote(TlsSuite pTlsSuite=TlsSuite::DEFAULT) const
Definition: SecureStorage.cpp:227
QPair< QSsl::KeyAlgorithm, QCryptographicHash::Algorithm > SignatureAlgorithmPair
Definition: SecureStorage.h:29
int getMinimumEphemeralKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const
Definition: SecureStorage.cpp:243
Definition: SecureStorage.h:31