AusweisApp2
ApplicationTemplates.h
gehe zur Dokumentation dieser Datei
8#pragma once
9
10#include "ApplicationTemplate.h"
12#include "PaceInfo.h"
13
14#include <QByteArray>
15#include <QSharedPointer>
16#include <QVector>
17
18
19namespace governikus
20{
21
28#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
29using ApplicationTemplatesInternal = stack_st_ApplicationTemplate;
30#else
32#endif
33
34DECLARE_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
application_template_st { ASN1_OCTET_STRING *mApplicationIdentifier ApplicationTemplate
Definition: ApplicationTemplate.h:38
STACK_OF(CERTIFICATEEXTENSION) *mExtensions