AusweisApp2
AuthenticatedAuxiliaryData.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "ASN1TemplateUtil.h"
10 
11 #include "KnownOIDs.h"
12 
13 #include <openssl/asn1t.h>
14 
15 #include <QDate>
16 #include <QSharedPointer>
17 #include <QString>
18 
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  QSharedPointer<AuthenticatedAuxiliaryDataInternal> mData;
65 
66  explicit AuthenticatedAuxiliaryData(const QSharedPointer<AuthenticatedAuxiliaryDataInternal>& pData);
67  AuxDataTemplate* getAuxDataTemplateFor(KnownOIDs::AuxilaryData pData) const;
68 
69  QString getRequiredAge(const QDate& pEffectiveDate) const;
70 
71  public:
72  static QSharedPointer<AuthenticatedAuxiliaryData> fromHex(const QByteArray& pHexValue);
73  static QSharedPointer<AuthenticatedAuxiliaryData> decode(const QByteArray& pBytes);
74  QByteArray encode() const;
75 
76  bool hasValidityDate() const;
77  QDate getValidityDate() const;
78 
79  bool hasAgeVerificationDate() const;
80  QDate getAgeVerificationDate() const;
81  QString getRequiredAge() const;
82 
83  bool hasCommunityID() const;
84  QByteArray getCommunityID() const;
85 };
86 
87 } // namespace governikus
governikus::AuthenticatedAuxiliaryData::hasAgeVerificationDate
bool hasAgeVerificationDate() const
Definition: AuthenticatedAuxiliaryData.cpp:188
DECLARE_ASN1_OBJECT
#define DECLARE_ASN1_OBJECT(name)
Definition: ASN1TemplateUtil.h:169
governikus::AuthenticatedAuxiliaryData::getRequiredAge
QString getRequiredAge() const
Definition: AuthenticatedAuxiliaryData.cpp:230
governikus::mExtInfo
ASN1_TYPE * mExtInfo
Definition: AuthenticatedAuxiliaryData.h:48
governikus::AuthenticatedAuxiliaryData::QSharedPointer< AuthenticatedAuxiliaryData >
friend class QSharedPointer< AuthenticatedAuxiliaryData >
Definition: AuthenticatedAuxiliaryData.h:62
governikus::AuthenticatedAuxiliaryData::hasValidityDate
bool hasValidityDate() const
Definition: AuthenticatedAuxiliaryData.cpp:165
test_AuxiliaryAuthenticatedData
Definition: test_AuxiliaryAuthenticatedData.cpp:19
KnownOIDs.h
governikus::KnownOIDs::AuxilaryData::ID_DATE_OF_BIRTH
@ ID_DATE_OF_BIRTH
governikus::AuthenticatedAuxiliaryData
Definition: AuthenticatedAuxiliaryData.h:60
governikus::CommunityID
ASN1_OCTET_STRING CommunityID
Definition: AuthenticatedAuxiliaryData.cpp:22
ASN1Util.h
governikus::Asn1TypeUtil::encode
static QByteArray encode(ASN1_TYPE *pAny)
Definition: ASN1Util.cpp:104
governikus::KnownOIDs::AuxilaryData::ID_DATE_OF_EXPIRY
@ ID_DATE_OF_EXPIRY
governikus::AuthenticatedAuxiliaryData::getCommunityID
QByteArray getCommunityID() const
Definition: AuthenticatedAuxiliaryData.cpp:242
governikus::AuthenticatedAuxiliaryData::encode
QByteArray encode() const
Definition: AuthenticatedAuxiliaryData.cpp:158
sk_AuxDataTemplate_num
#define sk_AuxDataTemplate_num(data)
governikus::AuthenticatedAuxiliaryDataInternal
stack_st_AuxDataTemplate AuthenticatedAuxiliaryDataInternal
Definition: AuthenticatedAuxiliaryData.h:53
governikus::KnownOIDs::AuxilaryData
AuxilaryData
Definition: KnownOIDs.h:43
IMPLEMENT_ASN1_OBJECT
#define IMPLEMENT_ASN1_OBJECT(name)
Definition: ASN1TemplateUtil.h:144
governikus
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
governikus::AuthenticatedAuxiliaryData::decode
static QSharedPointer< AuthenticatedAuxiliaryData > decode(const QByteArray &pBytes)
Definition: AuthenticatedAuxiliaryData.cpp:123
governikus::STACK_OF
STACK_OF(CERTIFICATEEXTENSION) *mExtensions
governikus::AuxDataTemplate
struct auxdatatemplate_st { ASN1_OBJECT *mAuxId AuxDataTemplate
Definition: AuthenticatedAuxiliaryData.h:47
governikus::encodeObject
QByteArray encodeObject(T *pObject)
Template function for encoding an OpenSSL type as DER encoded QByteArray.
Definition: ASN1TemplateUtil.h:69
governikus::ValidityDate
ASN1_OCTET_STRING ValidityDate
Definition: AuthenticatedAuxiliaryData.cpp:25
governikus::AuthenticatedAuxiliaryData::hasCommunityID
bool hasCommunityID() const
Definition: AuthenticatedAuxiliaryData.cpp:236
governikus::AuthenticatedAuxiliaryData::getAgeVerificationDate
QDate getAgeVerificationDate() const
Definition: AuthenticatedAuxiliaryData.cpp:194
governikus::KnownOIDs::AuxilaryData::ID_COMMUNITY_ID
@ ID_COMMUNITY_ID
governikus::AuthenticatedAuxiliaryData::fromHex
static QSharedPointer< AuthenticatedAuxiliaryData > fromHex(const QByteArray &pHexValue)
Definition: AuthenticatedAuxiliaryData.cpp:117
sk_AuxDataTemplate_value
#define sk_AuxDataTemplate_value(data, i)
governikus::AgeVerificationDate
ASN1_STRING AgeVerificationDate
Definition: AuthenticatedAuxiliaryData.cpp:28
ASN1TemplateUtil.h
governikus::Asn1ObjectUtil::convertTo
static QByteArray convertTo(const ASN1_OBJECT *pAsn1Object)
Definition: ASN1Util.cpp:24
governikus::AuthenticatedAuxiliaryData::getValidityDate
QDate getValidityDate() const
Definition: AuthenticatedAuxiliaryData.cpp:171
AuthenticatedAuxiliaryData.h