AusweisApp2
Lade ...
Suche ...
Keine Treffer
SecureStorage.h
gehe zur Dokumentation dieser Datei
1
10#pragma once
11
12#include "Env.h"
13#include "TlsConfiguration.h"
14
15#include <QByteArrayList>
16#include <QDateTime>
17#include <QJsonArray>
18#include <QJsonObject>
19#include <QSslCertificate>
20#include <QSslCipher>
21#include <QString>
22#include <QUrl>
23#include <QVector>
24
25
26class test_SecureStorage;
27class MockSecureStorage;
28
29namespace governikus
30{
31
33{
34 Q_GADGET
35
36 friend class Env;
37 friend class ::MockSecureStorage;
38 friend class ::test_SecureStorage;
39
40 private:
41 bool mLoaded;
42 QString mVendor;
43 QByteArrayList mCvcas;
44 QByteArrayList mCvcasTest;
45 QVector<QSslCertificate> mUpdateCertificates;
46 QUrl mSelfAuthenticationUrl;
47 QUrl mSelfAuthenticationTestUrl;
48 QUrl mUpdateServerBaseUrl;
49 QUrl mWhitelistServerBaseUrl;
50 QUrl mAppcastUpdateUrl;
51 QUrl mAppcastBetaUpdateUrl;
52 QString mSmartPersonalizationUrl;
53 QString mSmartPersonalizationTestUrl;
54 QString mSmartServiceId;
55 QString mSmartVersionTag;
56 QString mSmartSsdAid;
57 QString mLocalIfdPackageName;
58 QString mLocalIfdMinVersion;
59 QByteArrayList mLocalIfAllowedCertificateHashes;
60 int mLocalIfdMinPskSize;
61
62 TlsConfiguration mTlsConfig;
63 TlsConfiguration mTlsConfigPsk;
64 TlsConfiguration mTlsConfigRemoteIfd;
65 TlsConfiguration mTlsConfigRemoteIfdPairing;
66 TlsConfiguration mTlsConfigLocalIfd;
67 QMap<QSsl::KeyAlgorithm, int> mMinStaticKeySizes;
68 QMap<QSsl::KeyAlgorithm, int> mMinEphemeralKeySizes;
69
70 [[nodiscard]] QJsonArray readJsonArray(const QJsonObject& pConfig, const QLatin1String pName) const;
71 [[nodiscard]] QString readGroup(const QJsonObject& pConfig, const QLatin1String pGroup, const QLatin1String pName) const;
72 [[nodiscard]] QMap<QSsl::KeyAlgorithm, int> readKeySizes(const QJsonObject& pConfig, const QLatin1String pKey) const;
73 [[nodiscard]] QByteArrayList readByteArrayList(const QJsonObject& pConfig, const QLatin1String pName) const;
74
75 [[nodiscard]] QJsonObject loadFile(const QStringList& pFiles) const;
76 void load();
77
78 QByteArrayList loadTestCvcsFromAppDir();
79 [[nodiscard]] QByteArray loadTestCvc(const QString& pPath) const;
80
81 protected:
83 ~SecureStorage() = default;
85
86 public:
87 enum class TlsSuite
88 {
89 DEFAULT, PSK,
90 };
91
92 [[nodiscard]] const QString& getVendor() const;
93 [[nodiscard]] const QByteArrayList& getCVRootCertificates(bool pProductive) const;
94 [[nodiscard]] const QVector<QSslCertificate>& getUpdateCertificates() const;
95 [[nodiscard]] const QUrl& getSelfAuthenticationUrl(bool pTest = false) const;
96 [[nodiscard]] const QUrl& getUpdateServerBaseUrl() const;
97 [[nodiscard]] const QUrl& getWhitelistServerBaseUrl() const;
98 [[nodiscard]] const QUrl& getAppcastUpdateUrl() const;
99 [[nodiscard]] const QUrl& getAppcastBetaUpdateUrl() const;
100 [[nodiscard]] const QString& getSmartPersonalizationUrl(bool pTest = false) const;
101 [[nodiscard]] const QString& getSmartServiceId() const;
102 [[nodiscard]] const QString& getSmartVersionTag() const;
103 [[nodiscard]] const QString& getSmartSsdAid() const;
104 [[nodiscard]] const QString& getLocalIfdPackageName() const;
105 [[nodiscard]] const QString& getLocalIfdMinVersion() const;
106 [[nodiscard]] const QByteArrayList& getLocalIfdAllowedCertificateHashes() const;
107 [[nodiscard]] int getLocalIfdMinPskSize() const;
108 [[nodiscard]] const TlsConfiguration& getTlsConfig(TlsSuite pTlsSuite = TlsSuite::DEFAULT) const;
109 [[nodiscard]] const TlsConfiguration& getTlsConfigRemoteIfd(TlsSuite pTlsSuite = TlsSuite::DEFAULT) const;
110 [[nodiscard]] const TlsConfiguration& getTlsConfigLocalIfd() const;
111 [[nodiscard]] int getMinimumStaticKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const;
112 [[nodiscard]] int getMinimumEphemeralKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const;
113 [[nodiscard]] bool isLoaded() const;
114
115 [[nodiscard]] QString getDeveloperConfig() const;
116 [[nodiscard]] QString getCustomConfig() const;
117 [[nodiscard]] QString getEmbeddedConfig() const;
118};
119
120
121} // namespace governikus
Definition Env.h:46
Definition SecureStorage.h:33
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:88
const QUrl & getSelfAuthenticationUrl(bool pTest=false) const
Definition SecureStorage.cpp:337
Definition TlsConfiguration.h:47
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:16