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 
30 using SignatureAlgorithmPair = QPair<QSsl::KeyAlgorithm, QCryptographicHash::Algorithm>;
31 
33 {
34  Q_GADGET
35 
36  friend class Env;
37  friend class ::MockSecureStorage;
38 
39  private:
40  bool mLoaded;
41  QByteArrayList mCvcas;
42  QByteArrayList mCvcasTest;
43  QVector<QSslCertificate> mUpdateCertificates;
44  QUrl mSelfAuthenticationUrl;
45  QUrl mSelfAuthenticationTestUrl;
46  QUrl mUpdateServerBaseUrl;
47  QUrl mWhitelistServerBaseUrl;
48  QUrl mAppcastUpdateUrl;
49  QUrl mAppcastBetaUpdateUrl;
50 
51  TlsConfiguration mTlsConfig, mTlsConfigPsk, mTlsConfigRemote, mTlsConfigRemotePsk;
52  QMap<QSsl::KeyAlgorithm, int> mMinStaticKeySizes;
53  QMap<QSsl::KeyAlgorithm, int> mMinEphemeralKeySizes;
54 
55  bool readJsonArray(QJsonArray& pArray, const QJsonObject& pConfig, const QLatin1String pName);
56  QString readGroup(const QJsonObject& pConfig, const QLatin1String pGroup, const QLatin1String pName);
57  QMap<QSsl::KeyAlgorithm, int> readKeySizes(const QJsonObject& pConfig, const QLatin1String pKey);
58  void readByteArrayList(QByteArrayList& pArray, const QJsonObject& pConfig, const QLatin1String pName);
59 
60  void load();
61 
62  QByteArrayList loadTestCvcsFromAppDir();
63  QByteArray loadTestCvc(const QString& pPath);
64 
65  protected:
66  SecureStorage();
67  virtual ~SecureStorage();
68  static SecureStorage& getInstance();
69 
70  public:
71  enum class TlsSuite
72  {
73  DEFAULT, PSK,
74  };
75 
76  const QByteArrayList& getCVRootCertificates(bool pProductive) const;
77  const QVector<QSslCertificate>& getUpdateCertificates() const;
78  const QUrl& getSelfAuthenticationUrl(bool pTest = false) const;
79  const QUrl& getUpdateServerBaseUrl() const;
80  const QUrl& getWhitelistServerBaseUrl() const;
81  const QUrl& getAppcastUpdateUrl() const;
82  const QUrl& getAppcastBetaUpdateUrl() const;
83  const TlsConfiguration& getTlsConfig(TlsSuite pTlsSuite = TlsSuite::DEFAULT) const;
85  int getMinimumStaticKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const;
86  int getMinimumEphemeralKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const;
87  bool isLoaded() const;
88 };
89 
90 
91 } // namespace governikus
const TlsConfiguration & getTlsConfig(TlsSuite pTlsSuite=TlsSuite::DEFAULT) const
Definition: SecureStorage.cpp:271
int getMinimumStaticKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const
Definition: SecureStorage.cpp:283
int getMinimumEphemeralKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const
Definition: SecureStorage.cpp:293
const QVector< QSslCertificate > & getUpdateCertificates() const
Definition: SecureStorage.cpp:235
Definition: TlsConfiguration.h:45
bool isLoaded() const
Definition: SecureStorage.cpp:96
const QUrl & getAppcastBetaUpdateUrl() const
Definition: SecureStorage.cpp:265
const QUrl & getWhitelistServerBaseUrl() const
Definition: SecureStorage.cpp:253
TlsSuite
Definition: SecureStorage.h:71
const QUrl & getAppcastUpdateUrl() const
Definition: SecureStorage.cpp:259
QPair< QSsl::KeyAlgorithm, QCryptographicHash::Algorithm > SignatureAlgorithmPair
Definition: SecureStorage.h:30
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:277
static SecureStorage & getInstance()
Definition: SecureStorage.cpp:90
virtual ~SecureStorage()
Definition: SecureStorage.cpp:85
Definition: test_SecureStorage.cpp:23
const QUrl & getSelfAuthenticationUrl(bool pTest=false) const
Definition: SecureStorage.cpp:241
Definition: test_StateSendWhitelistSurvey.cpp:22
Definition: Env.h:38
Definition: SecureStorage.h:32
const QUrl & getUpdateServerBaseUrl() const
Definition: SecureStorage.cpp:247
const QByteArrayList & getCVRootCertificates(bool pProductive) const
Definition: SecureStorage.cpp:229