AusweisApp2
Lade ...
Suche ...
Keine Treffer
SecurityInfo.h
gehe zur Dokumentation dieser Datei
1
7#pragma once
8
9#include "ASN1TemplateUtil.h"
10
11#include <openssl/asn1.h>
12#include <QSharedPointer>
13
14
15namespace governikus
16{
17
28{
29 ASN1_OBJECT* mProtocol;
30 ASN1_TYPE* mRequiredData;
31 ASN1_TYPE* mOptionalData;
32};
33
34DECLARE_ASN1_FUNCTIONS(securityinfo_st)
35#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
36DECLARE_STACK_OF(securityinfo_st)
37#else
38DEFINE_STACK_OF(securityinfo_st)
39#endif
40
41/*
42 * Because OpenSSL's template macro system does not support inheritance,
43 * we wrap the securityinfo_st in class SecurityInfo and use this for inheritance.
44 */
46{
47 Q_DISABLE_COPY(SecurityInfo)
48 friend class QSharedPointer<SecurityInfo>;
49
50 const QSharedPointer<const securityinfo_st> mDelegate;
51
52 explicit SecurityInfo(const QSharedPointer<const securityinfo_st>& pDelegate);
53
54 /*
55 * Sub classes must override this method to allow the base class to access
56 * the protocol's ASN1_OBJECT pointer.
57 */
58 [[nodiscard]] virtual ASN1_OBJECT* getProtocolObjectIdentifier() const;
59
60 protected:
62
63 public:
64 static QSharedPointer<SecurityInfo> decode(const QByteArray& pBytes)
65 {
66 if (const auto& delegate = decodeObject<securityinfo_st>(pBytes))
67 {
68 return QSharedPointer<SecurityInfo>::create(delegate);
69 }
71 }
72
73
74 virtual ~SecurityInfo();
75
79 [[nodiscard]] QByteArray getProtocolValueBytes() const;
80
84 [[nodiscard]] QByteArray getProtocol() const;
85};
86
87
88DECLARE_ASN1_OBJECT(securityinfo_st)
89
90} // namespace governikus
#define DECLARE_ASN1_OBJECT(name)
Definition: ASN1TemplateUtil.h:164
Definition: SecurityInfo.h:46
static QSharedPointer< SecurityInfo > decode(const QByteArray &pBytes)
Definition: SecurityInfo.h:64
virtual ~SecurityInfo()
Definition: SecurityInfo.cpp:72
friend class QSharedPointer< SecurityInfo >
Definition: SecurityInfo.h:48
SecurityInfo()
Definition: SecurityInfo.cpp:41
QByteArray getProtocolValueBytes() const
Definition: SecurityInfo.cpp:60
QByteArray getProtocol() const
Definition: SecurityInfo.cpp:66
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
Definition: SecurityInfo.h:28
ASN1_TYPE * mOptionalData
Definition: SecurityInfo.h:31
ASN1_OBJECT * mProtocol
Definition: SecurityInfo.h:29
ASN1_TYPE * mRequiredData
Definition: SecurityInfo.h:30