AusweisApp
Lade ...
Suche ...
Keine Treffer
SecureStorage.h
gehe zur Dokumentation dieser Datei
1
5#pragma once
6
7#include "Env.h"
8#include "TlsConfiguration.h"
9
10#include <QByteArrayList>
11#include <QDateTime>
12#include <QJsonArray>
13#include <QJsonObject>
14#include <QList>
15#include <QSslCertificate>
16#include <QSslCipher>
17#include <QString>
18#include <QUrl>
19
20
21class test_SecureStorage;
22class MockSecureStorage;
23
24namespace governikus
25{
26
28{
30
31 friend class Env;
32 friend class ::MockSecureStorage;
33 friend class ::test_SecureStorage;
34
35 private:
36 QString mVendor;
37 QByteArrayList mCvcas;
38 QByteArrayList mCvcasTest;
39 QList<QSslCertificate> mUpdateCertificates;
40 QUrl mSelfAuthenticationUrl;
41 QUrl mSelfAuthenticationTestUrl;
42 QUrl mUpdateServerBaseUrl;
43 QUrl mWhitelistServerBaseUrl;
44 QUrl mAppcastUpdateUrl;
45 QUrl mAppcastBetaUpdateUrl;
46 QString mSmartPersonalizationUrl;
47 QString mSmartPersonalizationTestUrl;
48 QString mSmartServiceId;
49 QString mSmartSsdAid;
50 QString mLocalIfdPackageName;
51 QString mLocalIfdMinVersion;
52 QByteArrayList mLocalIfAllowedCertificateHashes;
53 int mLocalIfdMinPskSize;
54
55 TlsConfiguration mTlsConfig;
56 TlsConfiguration mTlsConfigPsk;
57 TlsConfiguration mTlsConfigRemoteIfd;
58 TlsConfiguration mTlsConfigRemoteIfdPairing;
59 TlsConfiguration mTlsConfigLocalIfd;
61 QMap<QSsl::KeyAlgorithm, int> mMinKeySizesIfd;
62 int mCreateKeySizeIfd;
63
64 [[nodiscard]] QJsonArray readJsonArray(const QJsonObject& pConfig, const QLatin1String pName) const;
65 [[nodiscard]] QString readGroup(const QJsonObject& pConfig, const QLatin1String pGroup, const QLatin1String pName) const;
67 [[nodiscard]] QByteArrayList readByteArrayList(const QJsonObject& pConfig, const QLatin1String pName) const;
68
69 [[nodiscard]] QJsonObject loadFile(const QStringList& pFiles) const;
70 void load();
71
72 QByteArrayList loadTestCvcsFromAppDir() const;
73 [[nodiscard]] QByteArray loadTestCvc(const QString& pPath) const;
74
75 protected:
77 ~SecureStorage() = default;
79
80 public:
81 enum class TlsSuite
82 {
83 DEFAULT, PSK,
84 };
85
86 [[nodiscard]] const QString& getVendor() const;
88 [[nodiscard]] const QList<QSslCertificate>& getUpdateCertificates() const;
89 [[nodiscard]] const QUrl& getSelfAuthenticationUrl(bool pTest = false) const;
90 [[nodiscard]] const QUrl& getUpdateServerBaseUrl() const;
91 [[nodiscard]] const QUrl& getWhitelistServerBaseUrl() const;
92 [[nodiscard]] const QUrl& getAppcastUpdateUrl() const;
93 [[nodiscard]] const QUrl& getAppcastBetaUpdateUrl() const;
94 [[nodiscard]] const QString& getSmartPersonalizationUrl(bool pTest = false) const;
95 [[nodiscard]] const QString& getSmartServiceId() const;
96 [[nodiscard]] const QString& getSmartSsdAid() const;
97 [[nodiscard]] const QString& getLocalIfdPackageName() const;
98 [[nodiscard]] const QString& getLocalIfdMinVersion() const;
100 [[nodiscard]] int getLocalIfdMinPskSize() const;
104 [[nodiscard]] int getMinimumKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const;
105 [[nodiscard]] int getMinimumIfdKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const;
106 [[nodiscard]] int getIfdCreateSize() const;
107 [[nodiscard]] bool isValid() const;
108
109 [[nodiscard]] QString getDeveloperConfig() const;
110 [[nodiscard]] QString getCustomConfig() const;
111 [[nodiscard]] QString getCustomConfigPath() const;
112 [[nodiscard]] QString getEmbeddedConfig() const;
113};
114
115
116} // namespace governikus
Definition Env.h:40
Definition SecureStorage.h:28
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:82
const QUrl & getSelfAuthenticationUrl(bool pTest=false) const
Definition SecureStorage.cpp:356
Definition TlsConfiguration.h:42
Defines the AccessRight and AccessRole enum.
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:112