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