AusweisApp2
 Alle Klassen Namensbereiche Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Propertys Freundbeziehungen Makrodefinitionen
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 
15 namespace governikus
16 {
17 
18 
29 {
30  ASN1_OBJECT* mProtocol;
31  ASN1_TYPE* mRequiredData;
32  ASN1_TYPE* mOptionalData;
33 };
34 
35 DECLARE_ASN1_FUNCTIONS(securityinfo_st)
36 #if OPENSSL_VERSION_NUMBER < 0x10100000L
37 DECLARE_STACK_OF(securityinfo_st)
38 #else
39 DEFINE_STACK_OF(securityinfo_st)
40 #endif
41 
42 /*
43  * Because OpenSSL's template macro system does not support inheritance,
44  * we wrap the securityinfo_st in class SecurityInfo and use this for inheritance.
45  */
47 {
48  const QSharedPointer<const securityinfo_st> mDelegate;
49 
50  SecurityInfo(const QSharedPointer<const securityinfo_st>& pDelegate);
51  Q_DISABLE_COPY(SecurityInfo)
52 
53  /*
54  * Sub classes must override this method to allow the base class to access
55  * the protocol's ASN1_OBJECT pointer.
56  */
57  virtual ASN1_OBJECT* getProtocolObjectIdentifier() const;
58 
59  protected:
60  SecurityInfo();
61 
62  public:
63  static QSharedPointer<SecurityInfo> decode(const QByteArray& pBytes)
64  {
65  if (const auto& delegate = decodeObject<securityinfo_st>(pBytes))
66  {
67  return QSharedPointer<SecurityInfo>(new SecurityInfo(delegate));
68  }
69  return QSharedPointer<SecurityInfo>();
70  }
71 
72 
73  virtual ~SecurityInfo();
74 
78  QByteArray getProtocolValueBytes() const;
79 
83  QByteArray getProtocol() const;
84 };
85 
86 
87 DECLARE_ASN1_OBJECT(securityinfo_st)
88 
89 } /* namespace governikus */
QByteArray getProtocol() const
Definition: SecurityInfo.cpp:67
Definition: SecurityInfo.h:46
QByteArray getProtocolValueBytes() const
Definition: SecurityInfo.cpp:61
Definition: SecurityInfo.h:28
virtual ~SecurityInfo()
Definition: SecurityInfo.cpp:73
static QSharedPointer< SecurityInfo > decode(const QByteArray &pBytes)
Definition: SecurityInfo.h:63
ASN1_TYPE * mOptionalData
Definition: SecurityInfo.h:32
#define DECLARE_ASN1_OBJECT(name)
Definition: ASN1TemplateUtil.h:152
ASN1_TYPE * mRequiredData
Definition: SecurityInfo.h:31
SecurityInfo()
Definition: SecurityInfo.cpp:42
ASN1_OBJECT * mProtocol
Definition: SecurityInfo.h:30