AusweisApp2
Lade ...
Suche ...
Keine Treffer
PaceInfo.h
gehe zur Dokumentation dieser Datei
1
7#pragma once
8
9#include "EnumHelper.h"
10#include "SecurityInfo.h"
11
12class test_PaceInfo;
13
14namespace governikus
15{
16
34{
35 ASN1_OBJECT* mProtocol;
36 ASN1_INTEGER* mVersion;
37 ASN1_INTEGER* mParameterId;
38};
39DECLARE_ASN1_FUNCTIONS(paceinfo_st)
41
42
43/*
44 * Wrapper for structure paceinfo_st.
45 */
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 if (const auto& delegate = decodeObject<paceinfo_st>(pBytes, false))
65 {
66 if (PaceInfo::acceptsProtocol(delegate->mProtocol))
67 {
68 return QSharedPointer<const PaceInfo>::create(delegate);
69 }
70 }
71 return QSharedPointer<const PaceInfo>();
72 }
73
74
75 [[nodiscard]] int getVersion() const;
76 [[nodiscard]] bool hasParameterId() const;
77 [[nodiscard]] int getParameterId() const;
78 [[nodiscard]] int getParameterIdAsNid() const;
79 [[nodiscard]] bool isStandardizedDomainParameters() const;
80};
81
82
83inline QDebug operator<<(QDebug pDbg, const QSharedPointer<const PaceInfo>& pPaceInfo)
84{
85 QDebugStateSaver saver(pDbg);
86 if (pPaceInfo->hasParameterId())
87 {
88 pDbg.nospace().noquote() << pPaceInfo->getOid()
89 << ", version: " << pPaceInfo->getVersion()
90 << ", parameterId: " << pPaceInfo->getParameterId();
91 }
92 else
93 {
94 pDbg.nospace().noquote() << pPaceInfo->getOid()
95 << ", version: " << pPaceInfo->getVersion();
96 }
97 return pDbg;
98}
99
100
101} // namespace governikus
#define DECLARE_ASN1_OBJECT(name)
Definition: ASN1TemplateUtil.h:169
Definition: PaceInfo.h:48
static QSharedPointer< const PaceInfo > decode(const QByteArray &pBytes)
Definition: PaceInfo.h:62
Definition: SecurityInfo.h:47
A simple template renderer.
Definition: ActivationContext.h:15
QDebug operator<<(QDebug pDbg, const CommandApdu &pCommandApdu)
Definition: CommandApdu.h:91
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