AusweisApp2
Oid.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "EnumHelper.h"
10 
11 #include <QByteArray>
12 #include <openssl/objects.h>
13 
14 
15 class test_Oid;
16 
17 
18 namespace governikus
19 {
20 
22  , ID_SIGNED_DATA
23  , EC_PS_PUBLICKEY
24  , STANDARDIZED_DOMAINPARAMETERS
25  , BSI_DE_PROTOCOLS_SMARTCARD
26  , ID_PK
27  , ID_PK_DH
28  , ID_PK_ECDH
29  , ID_PS_PK
30  , ID_PS_PK_ECDH_ESCHNORR
31  , ID_TA
32  , ID_TA_RSA
33  , ID_TA_RSA_V1_5_SHA_1
34  , ID_TA_RSA_V1_5_SHA_256
35  , ID_TA_RSA_PSS_SHA_1
36  , ID_TA_RSA_PSS_SHA_256
37  , ID_TA_RSA_V1_5_SHA_512
38  , ID_TA_RSA_PSS_SHA_512
39  , ID_TA_ECDSA
40  , ID_TA_ECDSA_SHA_1
41  , ID_TA_ECDSA_SHA_224
42  , ID_TA_ECDSA_SHA_256
43  , ID_TA_ECDSA_SHA_384
44  , ID_TA_ECDSA_SHA_512
45  , ID_CA
46  , ID_CA_DH
47  , ID_CA_DH_3DES_CBC_CBC
48  , ID_CA_DH_AES_CBC_CMAC_128
49  , ID_CA_DH_AES_CBC_CMAC_192
50  , ID_CA_DH_AES_CBC_CMAC_256
51  , ID_CA_ECDH
52  , ID_CA_ECDH_3DES_CBC_CBC
53  , ID_CA_ECDH_AES_CBC_CMAC_128
54  , ID_CA_ECDH_AES_CBC_CMAC_192
55  , ID_CA_ECDH_AES_CBC_CMAC_256
56  , ID_PACE
57  , ID_PACE_DH_GM
58  , ID_PACE_DH_GM_3DES_CBC_CBC
59  , ID_PACE_DH_GM_AES_CBC_CMAC_128
60  , ID_PACE_DH_GM_AES_CBC_CMAC_192
61  , ID_PACE_DH_GM_AES_CBC_CMAC_256
62  , ID_PACE_ECDH_GM
63  , ID_PACE_ECDH_GM_3DES_CBC_CBC
64  , ID_PACE_ECDH_GM_AES_CBC_CMAC_128
65  , ID_PACE_ECDH_GM_AES_CBC_CMAC_192
66  , ID_PACE_ECDH_GM_AES_CBC_CMAC_256
67  , ID_PACE_DH_IM
68  , ID_PACE_DH_IM_3DES_CBC_CBC
69  , ID_PACE_DH_IM_AES_CBC_CMAC_128
70  , ID_PACE_DH_IM_AES_CBC_CMAC_192
71  , ID_PACE_DH_IM_AES_CBC_CMAC_256
72  , ID_PACE_ECDH_IM
73  , ID_PACE_ECDH_IM_3DES_CBC_CBC
74  , ID_PACE_ECDH_IM_AES_CBC_CMAC_128
75  , ID_PACE_ECDH_IM_AES_CBC_CMAC_192
76  , ID_PACE_ECDH_IM_AES_CBC_CMAC_256
77  , ID_PACE_ECDH_CAM
78  , ID_PACE_ECDH_CAM_AES_CBC_CMAC_128
79  , ID_PACE_ECDH_CAM_AES_CBC_CMAC_192
80  , ID_PACE_ECDH_CAM_AES_CBC_CMAC_256
81  , ID_RI
82  , ID_RI_DH
83  , ID_RI_DH_SHA_1
84  , ID_RI_DH_SHA_224
85  , ID_RI_DH_SHA_256
86  , ID_RI_DH_SHA_384
87  , ID_RI_DH_SHA_512
88  , ID_RI_ECDH
89  , ID_RI_ECDH_SHA_1
90  , ID_RI_ECDH_SHA_224
91  , ID_RI_ECDH_SHA_256
92  , ID_RI_ECDH_SHA_384
93  , ID_RI_ECDH_SHA_512
94  , ID_CI
95  , ID_EID_SECURITY
96  , ID_PT
97  , ID_PS
98  , ID_PSA
99  , ID_PSA_ECDH_ECSCHNORR
100  , ID_PSA_ECDH_ECSCHNORR_SHA_256
101  , ID_PSA_ECDH_ECSCHNORR_SHA_384
102  , ID_PSA_ECDH_ECSCHNORR_SHA_512
103  , ID_PASSWORDTYPE
104  , ID_PASSWORDTYPE_MRZ
105  , ID_PASSWORDTYPE_CAN
106  , ID_PASSWORDTYPE_PIN
107  , ID_PASSWORDTYPE_PUK
108  , ID_AUXILIARY_DATA
109  , ID_DATE_OF_BIRTH
110  , ID_DATE_OF_EXPIRY
111  , ID_MUNICIPALITY_ID
112  , ID_PSM_MESSAGE
113  , ID_SECURITY_OBJECT
114  , ID_ROLES
115  , ID_IS
116  , ID_AT
117  , ID_ST
118  , ID_EXTENSIONS
119  , ID_DESCRIPTION
120  , ID_PLAIN_FORMAT
121  , ID_HTML_FORMAT
122  , ID_PFD_FORMAT
123  , ID_SECTOR
124  , ID_EID_TYPE
125  , ID_CARD_EID_TYPE
126  , ID_MOBILE_EID_TYPE
127  , ID_MOBILE_EID_TYPE_SE_CERTIFIED
128  , ID_MOBILE_EID_TYPE_SE_ENDORSED
129  , ID_MOBILE_EID_TYPE_HW_KEYSTORE)
130 
131 class Oid
132 {
133  friend class ::test_Oid;
134 
135  private:
136  static QMap<KnownOid, int> cKnownOids;
137 
138  ASN1_OBJECT* mObject;
139 
140  public:
141  static void createKnownOids();
142 
143  Oid();
144  Oid(KnownOid pOid);
145  explicit Oid(const ASN1_OBJECT* pObject);
146  explicit Oid(const QByteArray& pTxt);
147  Oid(const Oid& pOid);
148  Oid(Oid&& pOid) noexcept;
149  ~Oid();
150 
151  Oid& operator=(const Oid& pOid);
152  Oid& operator=(Oid&&) noexcept;
153 
154  bool isUndefined() const;
155  QByteArray getData() const;
156 
157  explicit operator QByteArray() const;
158  bool operator==(const Oid& pOther) const;
159  bool operator!=(const Oid& pOther) const;
160 };
161 
162 inline auto qHash(const Oid& pOid)
163 {
164  return qHash(pOid.getData());
165 }
166 
167 
168 inline QDebug operator<<(QDebug pDbg, const Oid& pOid)
169 {
170  QDebugStateSaver saver(pDbg);
171  pDbg.noquote() << QByteArray(pOid);
172  return pDbg;
173 }
174 
175 
176 } // namespace governikus
A simple template renderer.
Definition: ActivationContext.h:15
application_template_st & operator=(const application_template_st &)=delete
bool operator!=(const CVCertificate &pLeft, const CVCertificate &pRight)
Definition: CVCertificate.h:81
auto qHash(const Oid &pOid)
Definition: Oid.h:162
defineEnumType(ActivationType, UNKNOWN, SHOWUI, STATUS, TCTOKENURL) defineEnumType(StatusFormat
Format types for status responses.
QDebug operator<<(QDebug pDbg, const CommandApdu &pCommandApdu)
Definition: CommandApdu.h:91
bool operator==(const CommandApdu &pLeft, const CommandApdu &pRight)
Definition: CommandApdu.h:102