AusweisApp2
Lade ...
Suche ...
Keine Treffer
CVCertificateBody.h
gehe zur Dokumentation dieser Datei
1
5#pragma once
6
7#include "ASN1TemplateUtil.h"
8#include "ASN1Util.h"
9#include "Chat.h"
10#include "EcdsaPublicKey.h"
11
12#include <QCryptographicHash>
13#include <QDate>
14#include <QMap>
15#include <QSharedPointer>
16
17#include <openssl/ec.h>
18
19
20namespace governikus
21{
22
23using CERTIFICATEEXTENSION = struct CERTIFICATEEXTENSION_st
24{
25 ASN1_OBJECT* mOid;
26 ASN1_OCTET_STRING* mObject1;
27 ASN1_OCTET_STRING* mObject2;
28 ASN1_OCTET_STRING* mObject3;
29 ASN1_OCTET_STRING* mObject4;
30 ASN1_OCTET_STRING* mObject5;
31 ASN1_OCTET_STRING* mObject6;
32 ASN1_OCTET_STRING* mObject7;
33 ASN1_OCTET_STRING* mObject8;
34};
35DECLARE_ASN1_FUNCTIONS(CERTIFICATEEXTENSION)
36
37#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
38DECLARE_STACK_OF(CERTIFICATEEXTENSION)
39#else
40DEFINE_STACK_OF(CERTIFICATEEXTENSION)
41#endif
42
43using CVCertificateBody = struct certificateprofilebody_st
44{
45 ASN1_OCTET_STRING* mCertificateProfileIdentifier;
50 ASN1_OCTET_STRING* mEffectiveDate;
51 ASN1_OCTET_STRING* mExpirationDate;
53
54 static QSharedPointer<certificateprofilebody_st> decode(const QByteArray& pBytes);
55 QByteArray encode();
56
57 [[nodiscard]] QByteArray getCertificateProfileIdentifier() const;
58 [[nodiscard]] QByteArray getCertificationAuthorityReference() const;
59
60 [[nodiscard]] const EcdsaPublicKey& getPublicKey() const;
61 [[nodiscard]] QByteArray getCertificateHolderReference() const;
62
63 [[nodiscard]] const CHAT& getCHAT() const;
64
65 void setCertificateExpirationDate(QDate date);
66 [[nodiscard]] QDate getCertificateExpirationDate() const;
67
68 void setCertificateEffectiveDate(QDate date);
69 [[nodiscard]] QDate getCertificateEffectiveDate() const;
70
71 [[nodiscard]] QCryptographicHash::Algorithm getHashAlgorithm() const;
72 [[nodiscard]] QMap<QByteArray, QByteArray> getExtensions() const;
73};
74
75DECLARE_ASN1_FUNCTIONS(CVCertificateBody)
77
78} // namespace governikus
#define DECLARE_ASN1_OBJECT(name)
Definition: ASN1TemplateUtil.h:164
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
ASN1_STRING * mCertificateHolderReference
Definition: CVCertificateBody.h:48
const EcdsaPublicKey & getPublicKey() const
Definition: CVCertificateBody.cpp:131
QDate getCertificateEffectiveDate() const
Definition: CVCertificateBody.cpp:165
QMap< QByteArray, QByteArray > getExtensions() const
Definition: CVCertificateBody.cpp:206
ASN1_OCTET_STRING * mObject4
Definition: CVCertificateBody.h:29
CERTIFICATEEXTENSION_st { ASN1_OBJECT *mOid CERTIFICATEEXTENSION
Definition: CVCertificateBody.h:25
chat_st { ASN1_OBJECT *mType CHAT
According to.
Definition: Chat.h:67
const CHAT & getCHAT() const
Definition: CVCertificateBody.cpp:138
certificateprofilebody_st { ASN1_OCTET_STRING *mCertificateProfileIdentifier CVCertificateBody
Definition: CVCertificateBody.h:45
ASN1_STRING * mCertificationAuthorityReference
Definition: CVCertificateBody.h:46
ASN1_OCTET_STRING * mObject7
Definition: CVCertificateBody.h:32
void setCertificateEffectiveDate(QDate date)
Definition: CVCertificateBody.cpp:158
ASN1_OCTET_STRING * mExpirationDate
Definition: CVCertificateBody.h:51
ASN1_OCTET_STRING * mObject2
Definition: CVCertificateBody.h:27
QByteArray encode() const
void setCertificateExpirationDate(QDate date)
Definition: CVCertificateBody.cpp:145
ASN1_OCTET_STRING * mObject6
Definition: CVCertificateBody.h:31
QByteArray getCertificateProfileIdentifier() const
Definition: CVCertificateBody.cpp:119
STACK_OF(CERTIFICATEEXTENSION) *mExtensions
QByteArray getCertificationAuthorityReference() const
Definition: CVCertificateBody.cpp:125
QByteArray getCertificateHolderReference() const
Definition: CVCertificateBody.cpp:171
EcdsaPublicKey * mPublicKey
Definition: CVCertificateBody.h:47
QDate getCertificateExpirationDate() const
Definition: CVCertificateBody.cpp:152
QCryptographicHash::Algorithm getHashAlgorithm() const
Definition: CVCertificateBody.cpp:177
ASN1_OCTET_STRING * mEffectiveDate
Definition: CVCertificateBody.h:50
ASN1_OCTET_STRING * mObject1
Definition: CVCertificateBody.h:26
ecdsapublickey_st { ASN1_OBJECT *mObjectIdentifier EcdsaPublicKey
According to TR-03110-3 chapter D elliptic curve public keys are defined as follows:
Definition: EcdsaPublicKey.h:41
ASN1_OCTET_STRING * mObject3
Definition: CVCertificateBody.h:28
CHAT * mChat
Definition: CVCertificateBody.h:49
ASN1_OCTET_STRING * mObject5
Definition: CVCertificateBody.h:30
ASN1_OCTET_STRING * mObject8
Definition: CVCertificateBody.h:33