AusweisApp2
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 
23 namespace governikus
24 {
25 
26 defineEnumType(SelfAuthDataPermission,
27  UNKNOWN /* used for parser only */,
28  ALLOWED,
29  PROHIBITED,
30  NOTONCHIP)
31 
32 defineEnumType(SelfAuthData,
33  UNKNOWN, /* used for parser only */
37  GivenNames,
41  BirthName,
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  bool tryToInsertChild(const QJsonValue& pValue, SelfAuthData pAuthData);
74 
75  public:
76  bool mValid;
77  const QDateTime mDateTime;
78  QMap<SelfAuthData, SelfAuthDataPermission> mOperationsAllowed;
79  QMap<SelfAuthData, QString> mSelfAuthData;
80 
81  explicit SelfData(const QByteArray& pData);
82  QString getValue(SelfAuthData pData) const;
83  OrderedSelfData getOrderedSelfInfo() const;
84  };
85 
86  QSharedDataPointer<SelfData> d;
87 
88  public:
89  explicit SelfAuthenticationData(const QByteArray& pData = QByteArray());
91 
95  bool isValid() const;
96  QString getValue(SelfAuthData pData) const;
97  const QDateTime& getDateTime() const;
98  OrderedSelfData getOrderedSelfData() const;
99 };
100 
101 } // namespace governikus
Definition: SelfAuthenticationData.h:59
QVector< QPair< QString, QString > > OrderedSelfData
Definition: SelfAuthenticationData.h:61
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
UNKNOWN
Definition: SmartCardDefinitions.h:18
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
defineEnumType(KeyAgreementType, DH, ECDH) defineEnumType(MappingType
Method used for key agreement:
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:88
PlaceOfBirth
Definition: AccessRoleAndRight.h:77