AusweisApp2
ApplicationTemplates.h
gehe zur Dokumentation dieser Datei
1 
8 #pragma once
9 
10 #include "ApplicationTemplate.h"
11 #include "ChipAuthenticationInfo.h"
12 #include "PaceInfo.h"
13 
14 #include <QByteArray>
15 #include <QSharedPointer>
16 #include <QVector>
17 
18 
19 namespace governikus
20 {
21 
28 #if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
29 using ApplicationTemplatesInternal = stack_st_ApplicationTemplate;
30 #else
32 #endif
33 
34 DECLARE_ASN1_FUNCTIONS(ApplicationTemplatesInternal)
36 
38 {
39  Q_DISABLE_COPY(ApplicationTemplates)
40  friend class QSharedPointer<ApplicationTemplates>;
41 
42  private:
43  const QByteArray mContentBytes;
44  const QVector<QSharedPointer<const ApplicationTemplate>> mApplicationTemplates;
45 
46  ApplicationTemplates(const QByteArray& pBytes,
47  const QVector<QSharedPointer<const ApplicationTemplate>>& pApplicationTemplates);
48 
49  static QByteArray buildAsn1LengthField(unsigned int pLength);
50 
51  public:
52  static QSharedPointer<ApplicationTemplates> decode(const QByteArray& pBytes);
53 
54  bool contains(const QByteArray& pIdentifier);
55 
56  [[nodiscard]] const QByteArray& getContentBytes() const;
57  [[nodiscard]] const QVector<QSharedPointer<const ApplicationTemplate>>& getApplicationTemplates() const;
58  [[nodiscard]] int count() const;
59 };
60 
61 
62 } // namespace governikus
#define DECLARE_ASN1_OBJECT(name)
Definition: ASN1TemplateUtil.h:169
Definition: ApplicationTemplates.h:38
A simple template renderer.
Definition: ActivationContext.h:15
stack_st_ApplicationTemplate ApplicationTemplatesInternal
EF.DIR = ApplicationTemplates ::= SET OF ApplicationTemplate.
Definition: ApplicationTemplates.h:29
struct application_template_st { ASN1_OCTET_STRING *mApplicationIdentifier ApplicationTemplate
Definition: ApplicationTemplate.h:38
STACK_OF(CERTIFICATEEXTENSION) *mExtensions