AusweisApp2
PcscReaderFeature.h
gehe zur Dokumentation dieser Datei
1 
5 #pragma once
6 
7 #include "EnumHelper.h"
8 #include "PcscUtils.h"
9 
10 #include <QMap>
11 
12 namespace governikus
13 {
14 defineEnumType(FeatureID,
15  VERIFY_PIN_START = 0x1,
16  VERIFY_PIN_FINISH = 0x2,
17  MODIFY_PIN_START = 0x3,
18  MODIFY_PIN_FINISH = 0x4,
19  GET_KEY_PRESSED = 0x5,
20  VERIFY_PIN_DIRECT = 0x6,
21  MODIFY_PIN_DIRECT = 0x7,
22  MCT_READERDIRECT = 0x8,
23  MCT_UNIVERSAL = 0x9,
24  IFD_PIN_PROP = 0xA,
25  ABORT = 0xB,
26  SET_SPE_MESSAGE = 0x0C,
27  VERIFY_PIN_DIRECT_APP_ID = 0x0D,
28  MODIFY_PIN_DIRECT_APP_ID = 0x0E,
29  WRITE_DISPLAY = 0x0F,
30  GET_KEY = 0x10,
31  IFD_DISPLAY_PROPERTIES = 0x11,
32  TLV_PROPERTIES = 0x12,
33  CCID_ESC_COMMAND = 0x13,
34  EXECUTE_PACE = 0x20)
35 
36 class PcscReaderFeature
37 {
38  friend QDebug operator<<(QDebug, const PcscReaderFeature&);
39 
40  private:
41  QMap<FeatureID, PCSC_INT> mFeatures;
42 
43  public:
44  explicit PcscReaderFeature(const QByteArray& pFeaturesTLV);
45 
46  [[nodiscard]] bool contains(FeatureID pFeatureID) const;
47 
52  [[nodiscard]] PCSC_INT getValue(FeatureID pFeatureID) const;
53 };
54 
55 
56 inline QDebug operator<<(QDebug pDbg, const governikus::PcscReaderFeature& pPcscReaderFeature)
57 {
58  QDebugStateSaver saver(pDbg);
59  pDbg << pPcscReaderFeature.mFeatures.keys();
60  return pDbg;
61 }
62 
63 
64 } // namespace governikus
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16
defineEnumType(KnownOid, ID_SIGNED_DATA, EC_PS_PUBLICKEY, STANDARDIZED_DOMAINPARAMETERS, BSI_DE_PROTOCOLS_SMARTCARD, ID_PK, ID_PK_DH, ID_PK_ECDH, ID_PS_PK, ID_PS_PK_ECDH_ESCHNORR, ID_TA, ID_TA_RSA, ID_TA_RSA_V1_5_SHA_1, ID_TA_RSA_V1_5_SHA_256, ID_TA_RSA_PSS_SHA_1, ID_TA_RSA_PSS_SHA_256, ID_TA_RSA_V1_5_SHA_512, ID_TA_RSA_PSS_SHA_512, ID_TA_ECDSA, ID_TA_ECDSA_SHA_1, ID_TA_ECDSA_SHA_224, ID_TA_ECDSA_SHA_256, ID_TA_ECDSA_SHA_384, ID_TA_ECDSA_SHA_512, ID_CA, ID_CA_DH, ID_CA_DH_3DES_CBC_CBC, ID_CA_DH_AES_CBC_CMAC_128, ID_CA_DH_AES_CBC_CMAC_192, ID_CA_DH_AES_CBC_CMAC_256, ID_CA_ECDH, ID_CA_ECDH_3DES_CBC_CBC, ID_CA_ECDH_AES_CBC_CMAC_128, ID_CA_ECDH_AES_CBC_CMAC_192, ID_CA_ECDH_AES_CBC_CMAC_256, ID_PACE, ID_PACE_DH_GM, ID_PACE_DH_GM_3DES_CBC_CBC, ID_PACE_DH_GM_AES_CBC_CMAC_128, ID_PACE_DH_GM_AES_CBC_CMAC_192, ID_PACE_DH_GM_AES_CBC_CMAC_256, ID_PACE_ECDH_GM, ID_PACE_ECDH_GM_3DES_CBC_CBC, ID_PACE_ECDH_GM_AES_CBC_CMAC_128, ID_PACE_ECDH_GM_AES_CBC_CMAC_192, ID_PACE_ECDH_GM_AES_CBC_CMAC_256, ID_PACE_DH_IM, ID_PACE_DH_IM_3DES_CBC_CBC, ID_PACE_DH_IM_AES_CBC_CMAC_128, ID_PACE_DH_IM_AES_CBC_CMAC_192, ID_PACE_DH_IM_AES_CBC_CMAC_256, ID_PACE_ECDH_IM, ID_PACE_ECDH_IM_3DES_CBC_CBC, ID_PACE_ECDH_IM_AES_CBC_CMAC_128, ID_PACE_ECDH_IM_AES_CBC_CMAC_192, ID_PACE_ECDH_IM_AES_CBC_CMAC_256, ID_PACE_ECDH_CAM, ID_PACE_ECDH_CAM_AES_CBC_CMAC_128, ID_PACE_ECDH_CAM_AES_CBC_CMAC_192, ID_PACE_ECDH_CAM_AES_CBC_CMAC_256, ID_RI, ID_RI_DH, ID_RI_DH_SHA_1, ID_RI_DH_SHA_224, ID_RI_DH_SHA_256, ID_RI_DH_SHA_384, ID_RI_DH_SHA_512, ID_RI_ECDH, ID_RI_ECDH_SHA_1, ID_RI_ECDH_SHA_224, ID_RI_ECDH_SHA_256, ID_RI_ECDH_SHA_384, ID_RI_ECDH_SHA_512, ID_CI, ID_EID_SECURITY, ID_PT, ID_PS, ID_PSA, ID_PSA_ECDH_ECSCHNORR, ID_PSA_ECDH_ECSCHNORR_SHA_256, ID_PSA_ECDH_ECSCHNORR_SHA_384, ID_PSA_ECDH_ECSCHNORR_SHA_512, ID_PASSWORDTYPE, ID_PASSWORDTYPE_MRZ, ID_PASSWORDTYPE_CAN, ID_PASSWORDTYPE_PIN, ID_PASSWORDTYPE_PUK, ID_AUXILIARY_DATA, ID_DATE_OF_BIRTH, ID_DATE_OF_EXPIRY, ID_MUNICIPALITY_ID, ID_PSM_MESSAGE, ID_SECURITY_OBJECT, ID_ROLES, ID_IS, ID_AT, ID_ST, ID_EXTENSIONS, ID_DESCRIPTION, ID_PLAIN_FORMAT, ID_HTML_FORMAT, ID_PFD_FORMAT, ID_SECTOR, ID_EID_TYPE, ID_CARD_EID_TYPE, ID_MOBILE_EID_TYPE, ID_MOBILE_EID_TYPE_SE_CERTIFIED, ID_MOBILE_EID_TYPE_SE_ENDORSED, ID_MOBILE_EID_TYPE_HW_KEYSTORE) class Oid
Definition: Oid.h:21
QDebug operator<<(QDebug pDbg, const CommandApdu &pCommandApdu)
Definition: CommandApdu.h:94