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
37 private:
38 bool mLoaded;
39 QByteArrayList mCvcas;
40 QByteArrayList mCvcasTest;
41 QVector<QSslCertificate> mUpdateCertificates;
42 QUrl mSelfAuthenticationUrl;
43 QUrl mSelfAuthenticationTestUrl;
44 QUrl mUpdateServerBaseUrl;
45 QUrl mWhitelistServerBaseUrl;
46 QUrl mAppcastUpdateUrl;
47 QUrl mAppcastBetaUpdateUrl;
48
49 TlsConfiguration mTlsConfig, mTlsConfigPsk, mTlsConfigRemote, mTlsConfigRemotePsk;
50 QMap<QSsl::KeyAlgorithm, int> mMinStaticKeySizes;
51 QMap<QSsl::KeyAlgorithm, int> mMinEphemeralKeySizes;
52
53 [[nodiscard]] QJsonArray readJsonArray(const QJsonObject& pConfig, const QLatin1String pName) const;
54 [[nodiscard]] QString readGroup(const QJsonObject& pConfig, const QLatin1String pGroup, const QLatin1String pName) const;
55 [[nodiscard]] QMap<QSsl::KeyAlgorithm, int> readKeySizes(const QJsonObject& pConfig, const QLatin1String pKey) const;
56 [[nodiscard]] QByteArrayList readByteArrayList(const QJsonObject& pConfig, const QLatin1String pName) const;
57
58 [[nodiscard]] QJsonObject loadFile(const QStringList& pFiles) const;
59 void load();
60
61 QByteArrayList loadTestCvcsFromAppDir();
62 [[nodiscard]] QByteArray loadTestCvc(const QString& pPath) const;
63
64 protected:
66 virtual ~SecureStorage();
68
69 public:
70 enum class TlsSuite
71 {
72 DEFAULT, PSK,
73 };
74
75 [[nodiscard]] const QByteArrayList& getCVRootCertificates(bool pProductive) const;
76 [[nodiscard]] const QVector<QSslCertificate>& getUpdateCertificates() const;
77 [[nodiscard]] const QUrl& getSelfAuthenticationUrl(bool pTest = false) const;
78 [[nodiscard]] const QUrl& getUpdateServerBaseUrl() const;
79 [[nodiscard]] const QUrl& getWhitelistServerBaseUrl() const;
80 [[nodiscard]] const QUrl& getAppcastUpdateUrl() const;
81 [[nodiscard]] const QUrl& getAppcastBetaUpdateUrl() const;
82 [[nodiscard]] const TlsConfiguration& getTlsConfig(TlsSuite pTlsSuite = TlsSuite::DEFAULT) const;
83 [[nodiscard]] const TlsConfiguration& getTlsConfigRemote(TlsSuite pTlsSuite = TlsSuite::DEFAULT) const;
84 [[nodiscard]] int getMinimumStaticKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const;
85 [[nodiscard]] int getMinimumEphemeralKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const;
86 [[nodiscard]] bool isLoaded() const;
87};
88
89
90} // namespace governikus
Definition: Env.h:44
Definition: SecureStorage.h:31
static SecureStorage & getInstance()
const QUrl & getAppcastBetaUpdateUrl() const
Definition: SecureStorage.cpp:271
const TlsConfiguration & getTlsConfigRemote(TlsSuite pTlsSuite=TlsSuite::DEFAULT) const
Definition: SecureStorage.cpp:283
const TlsConfiguration & getTlsConfig(TlsSuite pTlsSuite=TlsSuite::DEFAULT) const
Definition: SecureStorage.cpp:277
const QVector< QSslCertificate > & getUpdateCertificates() const
Definition: SecureStorage.cpp:241
bool isLoaded() const
Definition: SecureStorage.cpp:88
int getMinimumEphemeralKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const
Definition: SecureStorage.cpp:299
const QUrl & getWhitelistServerBaseUrl() const
Definition: SecureStorage.cpp:259
int getMinimumStaticKeySize(QSsl::KeyAlgorithm pKeyAlgorithm) const
Definition: SecureStorage.cpp:289
const QUrl & getUpdateServerBaseUrl() const
Definition: SecureStorage.cpp:253
const QByteArrayList & getCVRootCertificates(bool pProductive) const
Definition: SecureStorage.cpp:235
const QUrl & getAppcastUpdateUrl() const
Definition: SecureStorage.cpp:265
TlsSuite
Definition: SecureStorage.h:71
const QUrl & getSelfAuthenticationUrl(bool pTest=false) const
Definition: SecureStorage.cpp:247
Definition: TlsConfiguration.h:45
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15