AusweisApp2
Lade ...
Suche ...
Keine Treffer
SelfAuthenticationData.h
gehe zur Dokumentation dieser Datei
1
7#pragma once
8
9#include "EnumHelper.h"
10
11#include <functional>
12
13#include <QCoreApplication>
14#include <QDateTime>
15#include <QJsonObject>
16#include <QJsonValue>
17#include <QMap>
18#include <QPair>
19#include <QSharedData>
20#include <QString>
21#include <QVector>
22
23namespace governikus
24{
25
26defineEnumType(SelfAuthDataPermission,
27 UNKNOWN /* used for parser only */,
28 ALLOWED,
29 PROHIBITED,
30 NOTONCHIP)
31
32defineEnumType(SelfAuthData,
33 UNKNOWN, /* used for parser only */
50 /* additional fields */
55 PlaceOfResidenceNoPlaceInfo)
56
57
59{
60 public:
61 using OrderedSelfData = QVector<QPair<QString, QString>>;
62
63 private:
64 class SelfData
65 : public QSharedData
66 {
67 Q_DECLARE_TR_FUNCTIONS(governikus::SelfData)
68
69 private:
70 bool parse(const QByteArray& pData);
71 bool parseOperationsAllowedByUser(const QJsonObject& pObject);
72 bool parsePersonalData(const QJsonObject& pObject);
73 void parseStructuredPlace(const QJsonObject& pObjectm, SelfAuthDataPermission pPermission);
74 bool tryToInsertChild(const QJsonValue& pValue, SelfAuthData pAuthData);
75 void add(OrderedSelfData& pSelfData, const QString& pGroupName, const QString& pGroupValue) const;
76 void addAddress(OrderedSelfData& pSelfData) const;
77 static QString formatDate(const QString& pDate);
78
79 public:
80 bool mValid;
81 const QDateTime mDateTime;
82 QMap<SelfAuthData, SelfAuthDataPermission> mOperationsAllowed;
83 QMap<SelfAuthData, QString> mSelfAuthData;
84
85 explicit SelfData(const QByteArray& pData);
86 QString getValue(SelfAuthData pData) const;
87 OrderedSelfData getOrderedSelfInfo() const;
88 };
89
90 QSharedDataPointer<SelfData> d;
91
92 public:
93 explicit SelfAuthenticationData(const QByteArray& pData = QByteArray());
95
99 [[nodiscard]] bool isValid() const;
100 [[nodiscard]] QString getValue(SelfAuthData pData) const;
101 [[nodiscard]] const QDateTime& getDateTime() const;
102 [[nodiscard]] OrderedSelfData getOrderedSelfData() const;
103};
104
105} // namespace governikus
#define defineEnumType(enumName,...)
Definition: EnumHelper.h:96
Definition: SelfAuthenticationData.h:59
QVector< QPair< QString, QString > > OrderedSelfData
Definition: SelfAuthenticationData.h:61
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16
UNKNOWN
Definition: ResponseApdu.h:63
DateOfExpiry
Definition: SelfAuthenticationData.h:36
RestrictedID
Definition: SelfAuthenticationData.h:47
BirthName
Definition: AccessRoleAndRight.h:75
GivenNames
Definition: AccessRoleAndRight.h:82
IssuingState
Definition: SelfAuthenticationData.h:35
PlaceOfResidenceCity
Definition: SelfAuthenticationData.h:52
PlaceOfResidence
Definition: SelfAuthenticationData.h:44
PlaceOfResidenceCountry
Definition: SelfAuthenticationData.h:53
PlaceOfResidenceStreet
Definition: SelfAuthenticationData.h:51
DateOfBirth
Definition: AccessRoleAndRight.h:78
FamilyNames
Definition: SelfAuthenticationData.h:38
ResidencePermitI
Definition: AccessRoleAndRight.h:72
AcademicTitle
Definition: SelfAuthenticationData.h:40
Nationality
Definition: AccessRoleAndRight.h:76
PlaceOfResidenceZipCode
Definition: SelfAuthenticationData.h:54
PlaceVerification
Definition: SelfAuthenticationData.h:49
DocumentType
Definition: AccessRoleAndRight.h:85
ArtisticName
Definition: AccessRoleAndRight.h:80
AgeVerification
Definition: AccessRoleAndRight.h:89
PlaceOfBirth
Definition: AccessRoleAndRight.h:77