AusweisApp
Lade ...
Suche ...
Keine Treffer
SecurityInfo.h
gehe zur Dokumentation dieser Datei
1
5#pragma once
6
7#include "ASN1TemplateUtil.h"
8#include "SecurityProtocol.h"
9
10#include <QSharedPointer>
11#include <openssl/asn1.h>
12
13
14namespace governikus
15{
16
32
36
37/*
38 * Because OpenSSL's template macro system does not support inheritance,
39 * we wrap the securityinfo_st in class SecurityInfo and use this for inheritance.
40 */
42{
44 friend class QSharedPointer<const SecurityInfo>;
45
46 private:
48
50
51 /*
52 * Sub classes must override this method to allow the base class to access
53 * the protocol's ASN1_OBJECT pointer.
54 */
55 [[nodiscard]] virtual ASN1_OBJECT* getProtocolObjectIdentifier() const;
56
57 protected:
59
60 public:
61 static QSharedPointer<const SecurityInfo> decode(const QByteArray& pBytes);
62
63 virtual ~SecurityInfo() = default;
64
68 [[nodiscard]] Oid getOid() const;
69
73 [[nodiscard]] SecurityProtocol getProtocol() const;
74};
75
76
77inline QDebug operator<<(QDebug pDbg, const QSharedPointer<const SecurityInfo>& pSecurityInfo)
78{
80 pDbg.nospace().noquote() << pSecurityInfo->getOid();
81 return pDbg;
82}
83
84
85} // namespace governikus
#define DECLARE_ASN1_OBJECT(name)
Definition ASN1TemplateUtil.h:175
Definition SecurityInfo.h:42
virtual ~SecurityInfo()=default
Defines the AccessRight and AccessRole enum.
Definition CommandApdu.h:17
QSharedPointer< T > decodeObject(const QByteArray &pData, bool pLogging=true)
Template function for decoding an OpenSSL type from DER encoded QByteArray.
Definition ASN1TemplateUtil.h:112
QDebug operator<<(QDebug pDbg, const CommandApdu &pCommandApdu)
Definition CommandApdu.h:96
Definition SecurityInfo.h:27
ASN1_TYPE * mOptionalData
Definition SecurityInfo.h:30
ASN1_OBJECT * mProtocol
Definition SecurityInfo.h:28
ASN1_TYPE * mRequiredData
Definition SecurityInfo.h:29