AusweisApp2
PaceInfo.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "EnumHelper.h"
10 #include "SecurityInfo.h"
11 
12 class test_PaceInfo;
13 
14 namespace governikus
15 {
16 
34 {
35  ASN1_OBJECT* mProtocol;
36  ASN1_INTEGER* mVersion;
37  ASN1_INTEGER* mParameterId;
38 };
39 DECLARE_ASN1_FUNCTIONS(paceinfo_st)
41 
42 
43 /*
44  * Wrapper for structure paceinfo_st.
45  */
46 class PaceInfo
47  : public SecurityInfo
48 {
49  friend class QSharedPointer<const PaceInfo>;
50 
51  friend class ::test_PaceInfo;
52 
53  private:
54  const QSharedPointer<const paceinfo_st> mDelegate;
55 
56  explicit PaceInfo(const QSharedPointer<const paceinfo_st>& pDelegate);
57  [[nodiscard]] ASN1_OBJECT* getProtocolObjectIdentifier() const override;
58  [[nodiscard]] static int getMappedNid(int pCurveIndex);
59  static bool acceptsProtocol(const ASN1_OBJECT* pObjectIdentifier);
60 
61  public:
62  static QSharedPointer<const PaceInfo> decode(const QByteArray& pBytes);
63 
64  [[nodiscard]] int getVersion() const;
65  [[nodiscard]] bool hasParameterId() const;
66  [[nodiscard]] int getParameterId() const;
67  [[nodiscard]] int getParameterIdAsNid() const;
68  [[nodiscard]] bool isStandardizedDomainParameters() const;
69 };
70 
71 
72 inline QDebug operator<<(QDebug pDbg, const QSharedPointer<const PaceInfo>& pPaceInfo)
73 {
74  QDebugStateSaver saver(pDbg);
75  if (pPaceInfo->hasParameterId())
76  {
77  pDbg.nospace().noquote() << pPaceInfo->getOid()
78  << ", version: " << pPaceInfo->getVersion()
79  << ", parameterId: " << pPaceInfo->getParameterId();
80  }
81  else
82  {
83  pDbg.nospace().noquote() << pPaceInfo->getOid()
84  << ", version: " << pPaceInfo->getVersion();
85  }
86  return pDbg;
87 }
88 
89 
90 } // namespace governikus
#define DECLARE_ASN1_OBJECT(name)
Definition: ASN1TemplateUtil.h:176
Definition: PaceInfo.h:48
Definition: SecurityInfo.h:48
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16
QDebug operator<<(QDebug pDbg, const CommandApdu &pCommandApdu)
Definition: CommandApdu.h:94
Definition: PaceInfo.h:34
ASN1_INTEGER * mVersion
Definition: PaceInfo.h:36
ASN1_INTEGER * mParameterId
Definition: PaceInfo.h:37
ASN1_OBJECT * mProtocol
Definition: PaceInfo.h:35