AusweisApp2
AuthenticatedAuxiliaryData.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "ASN1TemplateUtil.h"
10 
11 #include "Oid.h"
12 
13 #include <openssl/asn1t.h>
14 
15 #include <QDate>
16 #include <QSharedPointer>
17 #include <QString>
18 
19 class test_AuxiliaryAuthenticatedData;
20 
21 namespace governikus
22 {
23 
45 using AuxDataTemplate = struct auxdatatemplate_st
46 {
47  ASN1_OBJECT* mAuxId;
48  ASN1_TYPE* mExtInfo;
49 };
50 
51 #if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
52 DECLARE_STACK_OF(AuxDataTemplate)
53 using AuthenticatedAuxiliaryDataInternal = stack_st_AuxDataTemplate;
54 #else
55 DEFINE_STACK_OF(AuxDataTemplate)
57 #endif
58 
60 {
61  friend class ::test_AuxiliaryAuthenticatedData;
62  friend class QSharedPointer<AuthenticatedAuxiliaryData>;
63 
64  private:
65  QSharedPointer<AuthenticatedAuxiliaryDataInternal> mData;
66 
67  explicit AuthenticatedAuxiliaryData(const QSharedPointer<AuthenticatedAuxiliaryDataInternal>& pData);
68  [[nodiscard]] AuxDataTemplate* getAuxDataTemplateFor(const Oid& pOid) const;
69 
70  [[nodiscard]] QString getRequiredAge(const QDate& pEffectiveDate) const;
71 
72  public:
73  static QSharedPointer<AuthenticatedAuxiliaryData> fromHex(const QByteArray& pHexValue);
74  static QSharedPointer<AuthenticatedAuxiliaryData> decode(const QByteArray& pBytes);
75  [[nodiscard]] QByteArray encode() const;
76 
77  [[nodiscard]] bool hasValidityDate() const;
78  [[nodiscard]] QDate getValidityDate() const;
79 
80  [[nodiscard]] bool hasAgeVerificationDate() const;
81  [[nodiscard]] QDate getAgeVerificationDate() const;
82  [[nodiscard]] QString getRequiredAge() const;
83 
84  [[nodiscard]] bool hasCommunityID() const;
85  [[nodiscard]] QByteArray getCommunityID() const;
86 };
87 
88 } // namespace governikus
Definition: AuthenticatedAuxiliaryData.h:60
QDate getAgeVerificationDate() const
Definition: AuthenticatedAuxiliaryData.cpp:194
QByteArray encode() const
Definition: AuthenticatedAuxiliaryData.cpp:158
QByteArray getCommunityID() const
Definition: AuthenticatedAuxiliaryData.cpp:242
QDate getValidityDate() const
Definition: AuthenticatedAuxiliaryData.cpp:171
bool hasCommunityID() const
Definition: AuthenticatedAuxiliaryData.cpp:236
static QSharedPointer< AuthenticatedAuxiliaryData > fromHex(const QByteArray &pHexValue)
Definition: AuthenticatedAuxiliaryData.cpp:117
bool hasValidityDate() const
Definition: AuthenticatedAuxiliaryData.cpp:165
QString getRequiredAge() const
Definition: AuthenticatedAuxiliaryData.cpp:230
static QSharedPointer< AuthenticatedAuxiliaryData > decode(const QByteArray &pBytes)
Definition: AuthenticatedAuxiliaryData.cpp:123
bool hasAgeVerificationDate() const
Definition: AuthenticatedAuxiliaryData.cpp:188
friend class QSharedPointer< AuthenticatedAuxiliaryData >
Definition: AuthenticatedAuxiliaryData.h:62
struct Data mData
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16
stack_st_AuxDataTemplate AuthenticatedAuxiliaryDataInternal
Definition: AuthenticatedAuxiliaryData.h:53
struct auxdatatemplate_st { ASN1_OBJECT *mAuxId AuxDataTemplate
Definition: AuthenticatedAuxiliaryData.h:47
STACK_OF(CERTIFICATEEXTENSION) *mExtensions
ASN1_TYPE * mExtInfo
Definition: AuthenticatedAuxiliaryData.h:48