AusweisApp
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 <QList>
20#include <QSslCertificate>
21#include <QSslCipher>
22#include <QString>
23#include <QUrl>
24
25
26class test_SecureStorage;
27class MockSecureStorage;
28
29namespace governikus
30{
31
33{
35
36 friend class Env;
37 friend class ::MockSecureStorage;
38 friend class ::test_SecureStorage;
39
40 private:
41 QString mVendor;
42 QByteArrayList mCvcas;
43 QByteArrayList mCvcasTest;
44 QList<QSslCertificate> mUpdateCertificates;
45 QUrl mSelfAuthenticationUrl;
46 QUrl mSelfAuthenticationTestUrl;
47 QUrl mUpdateServerBaseUrl;
48 QUrl mWhitelistServerBaseUrl;
49 QUrl mAppcastUpdateUrl;
50 QUrl mAppcastBetaUpdateUrl;
51 QString mSmartPersonalizationUrl;
52 QString mSmartPersonalizationTestUrl;
53 QString mSmartServiceId;
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;
66 QMap<QSsl::KeyAlgorithm, int> mMinKeySizesIfd;
67 int mCreateKeySizeIfd;
68
69 [[nodiscard]] QJsonArray readJsonArray(const QJsonObject& pConfig, const QLatin1String pName) const;
70 [[nodiscard]] QString readGroup(const QJsonObject& pConfig, const QLatin1String pGroup, const QLatin1String pName) const;
72 [[nodiscard]] QByteArrayList readByteArrayList(const QJsonObject& pConfig, const QLatin1String pName) const;
73
74 [[nodiscard]] QJsonObject loadFile(const QStringList& pFiles) const;
75 void load();
76
77 QByteArrayList loadTestCvcsFromAppDir() const;
78 [[nodiscard]] QByteArray loadTestCvc(const QString& pPath) const;
79
80 protected:
82 ~SecureStorage() = default;
84
85 public:
86 enum class TlsSuite
87 {
88 DEFAULT, PSK,
89 };
90
91 [[nodiscard]] const QString& getVendor() const;
93 [[nodiscard]] const QList<QSslCertificate>& getUpdateCertificates() const;
94 [[nodiscard]] const QUrl& getSelfAuthenticationUrl(bool pTest = false) const;
95 [[nodiscard]] const QUrl& getUpdateServerBaseUrl() const;
96 [[nodiscard]] const QUrl& getWhitelistServerBaseUrl() const;
97 [[nodiscard]] const QUrl& getAppcastUpdateUrl() const;
98 [[nodiscard]] const QUrl& getAppcastBetaUpdateUrl() const;
99 [[nodiscard]] const QString& getSmartPersonalizationUrl(bool pTest = false) const;
100 [[nodiscard]] const QString& getSmartServiceId() const;
101 [[nodiscard]] const QString& getSmartSsdAid() const;
102 [[nodiscard]] const QString& getLocalIfdPackageName() const;
103 [[nodiscard]] const QString& getLocalIfdMinVersion() const;
105 [[nodiscard]] int getLocalIfdMinPskSize() const;
109 [[nodiscard]] int getMinimumKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const;
110 [[nodiscard]] int getMinimumIfdKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const;
111 [[nodiscard]] int getIfdCreateSize() const;
112 [[nodiscard]] bool isValid() const;
113
114 [[nodiscard]] QString getDeveloperConfig() const;
115 [[nodiscard]] QString getCustomConfig() const;
116 [[nodiscard]] QString getCustomConfigPath() const;
117 [[nodiscard]] QString getEmbeddedConfig() const;
118};
119
120
121} // namespace governikus
Definition Env.h:42
Definition SecureStorage.h:33
static SecureStorage & getInstance()
const QString & getSmartServiceId() const
Definition SecureStorage.cpp:392
QString getEmbeddedConfig() const
Definition SecureStorage.cpp:143
const QString & getSmartPersonalizationUrl(bool pTest=false) const
Definition SecureStorage.cpp:386
int getIfdCreateSize() const
Definition SecureStorage.cpp:466
const QByteArrayList & getLocalIfdAllowedCertificateHashes() const
Definition SecureStorage.cpp:434
const TlsConfiguration & getTlsConfigLocalIfd() const
Definition SecureStorage.cpp:416
const QString & getLocalIfdPackageName() const
Definition SecureStorage.cpp:422
const QUrl & getAppcastBetaUpdateUrl() const
Definition SecureStorage.cpp:380
const TlsConfiguration & getTlsConfig(TlsSuite pTlsSuite=TlsSuite::DEFAULT) const
Definition SecureStorage.cpp:404
const QString & getLocalIfdMinVersion() const
Definition SecureStorage.cpp:428
int getMinimumKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const
Definition SecureStorage.cpp:446
const TlsConfiguration & getTlsConfigRemoteIfd(TlsSuite pTlsSuite=TlsSuite::DEFAULT) const
Definition SecureStorage.cpp:410
QString getCustomConfigPath() const
Definition SecureStorage.cpp:137
int getMinimumIfdKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const
Definition SecureStorage.cpp:456
const QString & getSmartSsdAid() const
Definition SecureStorage.cpp:398
bool isValid() const
Definition SecureStorage.cpp:283
const QList< QSslCertificate > & getUpdateCertificates() const
Definition SecureStorage.cpp:350
const QUrl & getWhitelistServerBaseUrl() const
Definition SecureStorage.cpp:368
QString getDeveloperConfig() const
Definition SecureStorage.cpp:114
const QUrl & getUpdateServerBaseUrl() const
Definition SecureStorage.cpp:362
const QString & getVendor() const
Definition SecureStorage.cpp:338
QString getCustomConfig() const
Definition SecureStorage.cpp:125
int getLocalIfdMinPskSize() const
Definition SecureStorage.cpp:440
const QByteArrayList & getCVRootCertificates(bool pProductive) const
Definition SecureStorage.cpp:344
const QUrl & getAppcastUpdateUrl() const
Definition SecureStorage.cpp:374
TlsSuite
Definition SecureStorage.h:87
const QUrl & getSelfAuthenticationUrl(bool pTest=false) const
Definition SecureStorage.cpp:356
Definition TlsConfiguration.h:46
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:17
QSharedPointer< T > decodeObject(const QByteArray &pData, bool pLogging=true)
Template function for decoding an OpenSSL type from DER encoded QByteArray.
Definition ASN1TemplateUtil.h:114