AusweisApp2
SecureStorage.h
gehe zur Dokumentation dieser Datei
1 
8 #pragma once
9 
10 #include "Env.h"
11 #include "TlsConfiguration.h"
12 
13 #include <QByteArrayList>
14 #include <QDateTime>
15 #include <QJsonArray>
16 #include <QJsonObject>
17 #include <QSslCertificate>
18 #include <QSslCipher>
19 #include <QString>
20 #include <QUrl>
21 #include <QVector>
22 
23 
24 class test_SecureStorage;
25 class MockSecureStorage;
26 
27 namespace governikus
28 {
29 
31 {
32  Q_GADGET
33 
34  friend class Env;
35  friend class ::MockSecureStorage;
36 
37  private:
38  bool mLoaded;
39  QByteArrayList mCvcas;
40  QByteArrayList mCvcasTest;
41  QVector<QSslCertificate> mUpdateCertificates;
42  QUrl mSelfAuthenticationUrl;
43  QUrl mSelfAuthenticationTestUrl;
44  QUrl mUpdateServerBaseUrl;
45  QUrl mWhitelistServerBaseUrl;
46  QUrl mAppcastUpdateUrl;
47  QUrl mAppcastBetaUpdateUrl;
48 
49  TlsConfiguration mTlsConfig, mTlsConfigPsk, mTlsConfigRemote, mTlsConfigRemotePsk;
50  QMap<QSsl::KeyAlgorithm, int> mMinStaticKeySizes;
51  QMap<QSsl::KeyAlgorithm, int> mMinEphemeralKeySizes;
52 
53  [[nodiscard]] QJsonArray readJsonArray(const QJsonObject& pConfig, const QLatin1String pName) const;
54  [[nodiscard]] QString readGroup(const QJsonObject& pConfig, const QLatin1String pGroup, const QLatin1String pName) const;
55  [[nodiscard]] QMap<QSsl::KeyAlgorithm, int> readKeySizes(const QJsonObject& pConfig, const QLatin1String pKey) const;
56  [[nodiscard]] QByteArrayList readByteArrayList(const QJsonObject& pConfig, const QLatin1String pName) const;
57 
58  [[nodiscard]] QJsonObject loadFile(const QStringList& pFiles) const;
59  void load();
60 
61  QByteArrayList loadTestCvcsFromAppDir();
62  [[nodiscard]] QByteArray loadTestCvc(const QString& pPath) const;
63 
64  protected:
65  SecureStorage();
66  virtual ~SecureStorage();
67  static SecureStorage& getInstance();
68 
69  public:
70  enum class TlsSuite
71  {
72  DEFAULT, PSK,
73  };
74 
75  [[nodiscard]] const QByteArrayList& getCVRootCertificates(bool pProductive) const;
76  [[nodiscard]] const QVector<QSslCertificate>& getUpdateCertificates() const;
77  [[nodiscard]] const QUrl& getSelfAuthenticationUrl(bool pTest = false) const;
78  [[nodiscard]] const QUrl& getUpdateServerBaseUrl() const;
79  [[nodiscard]] const QUrl& getWhitelistServerBaseUrl() const;
80  [[nodiscard]] const QUrl& getAppcastUpdateUrl() const;
81  [[nodiscard]] const QUrl& getAppcastBetaUpdateUrl() const;
82  [[nodiscard]] const TlsConfiguration& getTlsConfig(TlsSuite pTlsSuite = TlsSuite::DEFAULT) const;
83  [[nodiscard]] const TlsConfiguration& getTlsConfigRemote(TlsSuite pTlsSuite = TlsSuite::DEFAULT) const;
84  [[nodiscard]] int getMinimumStaticKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const;
85  [[nodiscard]] int getMinimumEphemeralKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const;
86  [[nodiscard]] bool isLoaded() const;
87 };
88 
89 
90 } // namespace governikus
const TlsConfiguration & getTlsConfig(TlsSuite pTlsSuite=TlsSuite::DEFAULT) const
Definition: SecureStorage.cpp:277
int getMinimumStaticKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const
Definition: SecureStorage.cpp:289
static SecureStorage & getInstance()
int getMinimumEphemeralKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const
Definition: SecureStorage.cpp:299
const QVector< QSslCertificate > & getUpdateCertificates() const
Definition: SecureStorage.cpp:241
Definition: TlsConfiguration.h:44
bool isLoaded() const
Definition: SecureStorage.cpp:88
const QUrl & getAppcastBetaUpdateUrl() const
Definition: SecureStorage.cpp:271
const QUrl & getWhitelistServerBaseUrl() const
Definition: SecureStorage.cpp:259
TlsSuite
Definition: SecureStorage.h:70
const QUrl & getAppcastUpdateUrl() const
Definition: SecureStorage.cpp:265
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
const TlsConfiguration & getTlsConfigRemote(TlsSuite pTlsSuite=TlsSuite::DEFAULT) const
Definition: SecureStorage.cpp:283
const QUrl & getSelfAuthenticationUrl(bool pTest=false) const
Definition: SecureStorage.cpp:247
Definition: Env.h:43
Definition: SecureStorage.h:30
const QUrl & getUpdateServerBaseUrl() const
Definition: SecureStorage.cpp:253
const QByteArrayList & getCVRootCertificates(bool pProductive) const
Definition: SecureStorage.cpp:235