AusweisApp2
 Alle Klassen Namensbereiche Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Propertys Freundbeziehungen Makrodefinitionen
PACEInfo.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "EnumHelper.h"
10 #include "SecurityInfo.h"
11 
12 
13 namespace governikus
14 {
15 
16 
22 defineEnumType(KeyAgreementType, DH, ECDH)
23 
24 
25 
30 defineEnumType(MappingType, GM, IM)
31 
32 
50 {
51  ASN1_OBJECT* mProtocol;
52  ASN1_INTEGER* mVersion;
53  ASN1_INTEGER* mParameterId;
54 };
55 DECLARE_ASN1_FUNCTIONS(paceinfo_st)
56 
57 
58 /*
59  * Wrapper for structure paceinfo_st.
60  */
61 class PACEInfo
62  : public SecurityInfo
63 {
64  const QSharedPointer<const paceinfo_st> mDelegate;
65 
66  PACEInfo(const QSharedPointer<const paceinfo_st>& pDelegate);
67 
68  ASN1_OBJECT* getProtocolObjectIdentifier() const override;
69 
70  static bool acceptsProtocol(const ASN1_OBJECT* pObjectIdentifier);
71 
72  public:
73  static QSharedPointer<PACEInfo> decode(const QByteArray& pBytes)
74  {
75  if (const auto& delegate = decodeObject<paceinfo_st>(pBytes))
76  {
77  if (PACEInfo::acceptsProtocol(delegate->mProtocol))
78  {
79  return QSharedPointer<PACEInfo>(new PACEInfo(delegate));
80  }
81  }
82  return QSharedPointer<PACEInfo>();
83  }
84 
85 
86  QByteArray getParameterId() const;
87  int getParameterIdAsInt() const;
88  int getVersion() const;
89  KeyAgreementType getKeyAgreementType() const;
90  MappingType getMappingType() const;
91  bool isStandardizedDomainParameters() const;
92 };
93 
94 
95 template<>
96 paceinfo_st* decodeAsn1Object<paceinfo_st>(paceinfo_st** pObject, const unsigned char** pData, long pDataLen);
97 
98 
99 template<>
100 void freeAsn1Object<paceinfo_st>(paceinfo_st* pObject);
101 
102 
103 } // namespace governikus
Definition: PACEInfo.h:61
ASN1_INTEGER * mVersion
Definition: PACEInfo.h:52
paceinfo_st * decodeAsn1Object< paceinfo_st >(paceinfo_st **pObject, const unsigned char **pData, long pDataLen)
ASN1_INTEGER * mParameterId
Definition: PACEInfo.h:53
Definition: SecurityInfo.h:46
static QSharedPointer< PACEInfo > decode(const QByteArray &pBytes)
Definition: PACEInfo.h:73
ASN1_OBJECT * mProtocol
Definition: PACEInfo.h:51
void freeAsn1Object< paceinfo_st >(paceinfo_st *pObject)
Method used for key agreement:
Definition: PACEInfo.h:49
defineEnumType(UiModule, CURRENT, DEFAULT, IDENTIFY, SETTINGS, PINMANAGEMENT) defineEnumType(StatusFormat
UI modules that can be requested to show.