AusweisApp2
Lade ...
Suche ...
Keine Treffer
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
24class test_SecureStorage;
25class MockSecureStorage;
26
27namespace governikus
28{
29
31{
32 Q_GADGET
33
34 friend class Env;
35 friend class ::MockSecureStorage;
36 friend class ::test_SecureStorage;
37
38 private:
39 bool mLoaded;
40 QString mVendor;
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 QString mSmartPersonalizationUrl;
51 QString mSmartPersonalizationTestUrl;
52 QString mSmartServiceId;
53 QString mSmartVersionTag;
54 QString mSmartSsdAid;
55 QString mLocalIfdPackageName;
56 QString mLocalIfdMinVersion;
57 QByteArrayList mLocalIfAllowedCertificateHashes;
58 int mLocalIfdMinPskSize;
59
60 TlsConfiguration mTlsConfig;
61 TlsConfiguration mTlsConfigPsk;
62 TlsConfiguration mTlsConfigRemoteIfd;
63 TlsConfiguration mTlsConfigRemoteIfdPairing;
64 TlsConfiguration mTlsConfigLocalIfd;
65 QMap<QSsl::KeyAlgorithm, int> mMinStaticKeySizes;
66 QMap<QSsl::KeyAlgorithm, int> mMinEphemeralKeySizes;
67
68 [[nodiscard]] QJsonArray readJsonArray(const QJsonObject& pConfig, const QLatin1String pName) const;
69 [[nodiscard]] QString readGroup(const QJsonObject& pConfig, const QLatin1String pGroup, const QLatin1String pName) const;
70 [[nodiscard]] QMap<QSsl::KeyAlgorithm, int> readKeySizes(const QJsonObject& pConfig, const QLatin1String pKey) const;
71 [[nodiscard]] QByteArrayList readByteArrayList(const QJsonObject& pConfig, const QLatin1String pName) const;
72
73 [[nodiscard]] QJsonObject loadFile(const QStringList& pFiles) const;
74 void load();
75
76 QByteArrayList loadTestCvcsFromAppDir();
77 [[nodiscard]] QByteArray loadTestCvc(const QString& pPath) const;
78
79 protected:
81 ~SecureStorage() = default;
83
84 public:
85 enum class TlsSuite
86 {
87 DEFAULT, PSK,
88 };
89
90 [[nodiscard]] const QString& getVendor() const;
91 [[nodiscard]] const QByteArrayList& getCVRootCertificates(bool pProductive) const;
92 [[nodiscard]] const QVector<QSslCertificate>& getUpdateCertificates() const;
93 [[nodiscard]] const QUrl& getSelfAuthenticationUrl(bool pTest = false) const;
94 [[nodiscard]] const QUrl& getUpdateServerBaseUrl() const;
95 [[nodiscard]] const QUrl& getWhitelistServerBaseUrl() const;
96 [[nodiscard]] const QUrl& getAppcastUpdateUrl() const;
97 [[nodiscard]] const QUrl& getAppcastBetaUpdateUrl() const;
98 [[nodiscard]] const QString& getSmartPersonalizationUrl(bool pTest = false) const;
99 [[nodiscard]] const QString& getSmartServiceId() const;
100 [[nodiscard]] const QString& getSmartVersionTag() const;
101 [[nodiscard]] const QString& getSmartSsdAid() const;
102 [[nodiscard]] const QString& getLocalIfdPackageName() const;
103 [[nodiscard]] const QString& getLocalIfdMinVersion() const;
104 [[nodiscard]] const QByteArrayList& getLocalIfdAllowedCertificateHashes() const;
105 [[nodiscard]] int getLocalIfdMinPskSize() const;
106 [[nodiscard]] const TlsConfiguration& getTlsConfig(TlsSuite pTlsSuite = TlsSuite::DEFAULT) const;
107 [[nodiscard]] const TlsConfiguration& getTlsConfigRemoteIfd(TlsSuite pTlsSuite = TlsSuite::DEFAULT) const;
108 [[nodiscard]] const TlsConfiguration& getTlsConfigLocalIfd() const;
109 [[nodiscard]] int getMinimumStaticKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const;
110 [[nodiscard]] int getMinimumEphemeralKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const;
111 [[nodiscard]] bool isLoaded() const;
112
113 [[nodiscard]] QString getDeveloperConfig() const;
114 [[nodiscard]] QString getCustomConfig() const;
115 [[nodiscard]] QString getEmbeddedConfig() const;
116};
117
118
119} // namespace governikus
Definition: Env.h:44
Definition: SecureStorage.h:31
static SecureStorage & getInstance()
const QString & getSmartServiceId() const
Definition: SecureStorage.cpp:373
QString getEmbeddedConfig() const
Definition: SecureStorage.cpp:142
const QString & getSmartPersonalizationUrl(bool pTest=false) const
Definition: SecureStorage.cpp:367
const QByteArrayList & getLocalIfdAllowedCertificateHashes() const
Definition: SecureStorage.cpp:421
const TlsConfiguration & getTlsConfigLocalIfd() const
Definition: SecureStorage.cpp:403
const QString & getLocalIfdPackageName() const
Definition: SecureStorage.cpp:409
const QUrl & getAppcastBetaUpdateUrl() const
Definition: SecureStorage.cpp:361
const TlsConfiguration & getTlsConfig(TlsSuite pTlsSuite=TlsSuite::DEFAULT) const
Definition: SecureStorage.cpp:391
const QVector< QSslCertificate > & getUpdateCertificates() const
Definition: SecureStorage.cpp:331
const QString & getLocalIfdMinVersion() const
Definition: SecureStorage.cpp:415
const TlsConfiguration & getTlsConfigRemoteIfd(TlsSuite pTlsSuite=TlsSuite::DEFAULT) const
Definition: SecureStorage.cpp:397
const QString & getSmartSsdAid() const
Definition: SecureStorage.cpp:385
bool isLoaded() const
Definition: SecureStorage.cpp:113
int getMinimumEphemeralKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const
Definition: SecureStorage.cpp:443
const QString & getSmartVersionTag() const
Definition: SecureStorage.cpp:379
const QUrl & getWhitelistServerBaseUrl() const
Definition: SecureStorage.cpp:349
int getMinimumStaticKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const
Definition: SecureStorage.cpp:433
QString getDeveloperConfig() const
Definition: SecureStorage.cpp:119
const QUrl & getUpdateServerBaseUrl() const
Definition: SecureStorage.cpp:343
const QString & getVendor() const
Definition: SecureStorage.cpp:319
QString getCustomConfig() const
Definition: SecureStorage.cpp:130
int getLocalIfdMinPskSize() const
Definition: SecureStorage.cpp:427
const QByteArrayList & getCVRootCertificates(bool pProductive) const
Definition: SecureStorage.cpp:325
const QUrl & getAppcastUpdateUrl() const
Definition: SecureStorage.cpp:355
TlsSuite
Definition: SecureStorage.h:86
const QUrl & getSelfAuthenticationUrl(bool pTest=false) const
Definition: SecureStorage.cpp:337
Definition: TlsConfiguration.h:45
A simple template renderer.
Definition: ActivationContext.h:15