AusweisApp
Lade ...
Suche ...
Keine Treffer
AccessRoleAndRight.h
gehe zur Dokumentation dieser Datei
1
14#pragma once
15
16#include "EnumHelper.h"
17
18#include <QCoreApplication>
19#include <QList>
20#include <QString>
21#include <functional>
22
23
24namespace governikus
25{
26
28 WRITE_DG17 = 37,
29 WRITE_DG18 = 36,
30 WRITE_DG19 = 35,
31 WRITE_DG20 = 34,
32 WRITE_DG21 = 33,
33 WRITE_DG22 = 32,
34 RFU = 31,
35 PSA = 30,
36 READ_DG22 = 29,
37 READ_DG21 = 28,
38 READ_DG20 = 27,
39 READ_DG19 = 26,
40 READ_DG18 = 25,
41 READ_DG17 = 24,
42 READ_DG16 = 23,
43 READ_DG15 = 22,
44 READ_DG14 = 21,
45 READ_DG13 = 20,
46 READ_DG12 = 19,
47 READ_DG11 = 18,
48 READ_DG10 = 17,
49 READ_DG09 = 16,
50 READ_DG08 = 15,
51 READ_DG07 = 14,
52 READ_DG06 = 13,
53 READ_DG05 = 12,
54 READ_DG04 = 11,
55 READ_DG03 = 10,
56 READ_DG02 = 9,
57 READ_DG01 = 8,
58
60 INSTALL_CERT = 6,
62 CAN_ALLOWED = 4,
67 )
68
69// do NOT change any key/value as this is used as an unique identifier!
70// if you add entries you need to modify the SDK documentation.
71#define TYPE(x) static_cast<std::underlying_type_t<AccessRight>>(x)
72defineTypedEnumType(AccessRightNames, std::underlying_type_t<AccessRight>,
73 ResidencePermitII = TYPE(AccessRight::READ_DG20),
74 ResidencePermitI = TYPE(AccessRight::READ_DG19),
75 CommunityID = TYPE(AccessRight::READ_DG18),
76 Address = TYPE(AccessRight::READ_DG17),
77 BirthName = TYPE(AccessRight::READ_DG13),
78 Nationality = TYPE(AccessRight::READ_DG10),
79 PlaceOfBirth = TYPE(AccessRight::READ_DG09),
80 DateOfBirth = TYPE(AccessRight::READ_DG08),
81 DoctoralDegree = TYPE(AccessRight::READ_DG07),
82 ArtisticName = TYPE(AccessRight::READ_DG06),
83 FamilyName = TYPE(AccessRight::READ_DG05),
84 GivenNames = TYPE(AccessRight::READ_DG04),
85 ValidUntil = TYPE(AccessRight::READ_DG03),
86 IssuingCountry = TYPE(AccessRight::READ_DG02),
87 DocumentType = TYPE(AccessRight::READ_DG01),
88 CanAllowed = TYPE(AccessRight::CAN_ALLOWED),
89 Pseudonym = TYPE(AccessRight::RESTRICTED_IDENTIFICATION),
90 AddressVerification = TYPE(AccessRight::COMMUNITY_ID_VERIFICATION),
91 AgeVerification = TYPE(AccessRight::AGE_VERIFICATION),
92 WriteAddress = TYPE(AccessRight::WRITE_DG17),
93 WriteCommunityID = TYPE(AccessRight::WRITE_DG18),
94 WriteResidencePermitI = TYPE(AccessRight::WRITE_DG19),
95 WriteResidencePermitII = TYPE(AccessRight::WRITE_DG20),
96 PinManagement = TYPE(AccessRight::PIN_MANAGEMENT)
97 )
98#undef TYPE
99
100
102 CVCA = 3, DV_od = 2, DV_no_f = 1, AT = 0, UNKNOWN = -1
103 )
104
105
107{
109
110 public:
111 enum JoinRight
112 {
113 READ = 0x1,
114 WRITE = 0x2,
115 READWRITE = 0x3
116 };
118
119 private:
120 static QList<AccessRight> mAllRights;
121 static QList<AccessRight> mAllDisplayedOrderedRights;
122
123 static bool fromTechnicalName(const char* const pStr, const std::function<void(AccessRight)>& pFunc);
125
126 AccessRoleAndRightsUtil() = delete;
127 ~AccessRoleAndRightsUtil() = delete;
128
129 public:
130 static const QList<AccessRight>& allDisplayedOrderedRights();
131 static const QList<AccessRight>& allRights();
133 static QString toDisplayText(AccessRight pRight);
135 static bool fromTechnicalName(const QString& pStr, const std::function<void(AccessRight)>& pFunc);
136 static QString joinFromTechnicalName(const QStringList& pStr,
137 JoinRights pJoinRight = JoinRight::READWRITE,
138 const QString& pJoin = QStringLiteral(", "));
139};
140
141Q_DECLARE_OPERATORS_FOR_FLAGS(AccessRoleAndRightsUtil::JoinRights)
142
143} // namespace governikus
144
#define TYPE(x)
Q_DECLARE_TYPEINFO(governikus::AccessRight, Q_PRIMITIVE_TYPE)
#define defineTypedEnumType(enumName, enumType,...)
Definition EnumHelper.h:84
#define defineEnumType(enumName,...)
Definition EnumHelper.h:85
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:17
UNKNOWN
Definition ResponseApdu.h:65
BirthName
Definition AccessRoleAndRight.h:77
PinManagement
Definition AccessRoleAndRight.h:96
GivenNames
Definition AccessRoleAndRight.h:84
Pseudonym
Definition AccessRoleAndRight.h:89
AddressVerification
Definition AccessRoleAndRight.h:90
WriteCommunityID
Definition AccessRoleAndRight.h:93
Address
Definition AccessRoleAndRight.h:76
WriteAddress
Definition AccessRoleAndRight.h:92
DateOfBirth
Definition AccessRoleAndRight.h:80
ASN1_OCTET_STRING CommunityID
Definition AuthenticatedAuxiliaryData.cpp:22
CanAllowed
Definition AccessRoleAndRight.h:88
WriteResidencePermitII
Definition AccessRoleAndRight.h:95
ResidencePermitI
Definition AccessRoleAndRight.h:74
Nationality
Definition AccessRoleAndRight.h:78
ResidencePermitII
Definition AccessRoleAndRight.h:73
FamilyName
Definition AccessRoleAndRight.h:83
DocumentType
Definition AccessRoleAndRight.h:87
ValidUntil
Definition AccessRoleAndRight.h:85
QSharedPointer< T > decodeObject(const QByteArray &pData, bool pLogging=true)
Template function for decoding an OpenSSL type from DER encoded QByteArray.
Definition ASN1TemplateUtil.h:114
ArtisticName
Definition AccessRoleAndRight.h:82
IssuingCountry
Definition AccessRoleAndRight.h:86
AgeVerification
Definition AccessRoleAndRight.h:91
WriteResidencePermitI
Definition AccessRoleAndRight.h:94
PlaceOfBirth
Definition AccessRoleAndRight.h:79
DoctoralDegree
Definition AccessRoleAndRight.h:81