AusweisApp
Lade ...
Suche ...
Keine Treffer
CVCertificate.h
gehe zur Dokumentation dieser Datei
1
9#pragma once
10
11#include "CVCertificateBody.h"
12
13#include <QByteArrayList>
14#include <QDebug>
15
16#include <openssl/ecdsa.h>
17
18
19namespace governikus
20{
21
38 : public ASN1_OCTET_STRING
39{
40 // we use inheritance, because the structure ValidityDate is already a typedef of ASN1_OCTET_STRING
41 // and we cannot have two template specializations for the same type.
42};
43
44
45using CVCertificate = struct cvcertificate_st
46{
47 CVCertificateBody* mBody;
49 ECDSA_SIG* mEcdsaSignature;
50
51 static QList<QSharedPointer<const cvcertificate_st>> fromRaw(const QByteArrayList& pByteList);
52 static QSharedPointer<const cvcertificate_st> fromRaw(const QByteArray& pBytes);
53 [[nodiscard]] QByteArray encode() const;
54
55 [[nodiscard]] const CVCertificateBody& getBody() const;
56 [[nodiscard]] QByteArray getRawBody() const;
57 [[nodiscard]] const ECDSA_SIG* getEcdsaSignature() const;
58 [[nodiscard]] QByteArray getRawSignature() const;
59 [[nodiscard]] QByteArray getDerSignature() const;
60
61 [[nodiscard]] bool isValidOn(const QDateTime& pValidationDate) const;
62 [[nodiscard]] bool isIssuedBy(const cvcertificate_st& pIssuer) const;
63
64 static int decodeCallback(int pOperation, ASN1_VALUE** pVal, const ASN1_ITEM* pIt, void* pExarg);
65};
66
67
68DECLARE_ASN1_FUNCTIONS(CVCertificate)
70
71
72inline bool operator==(const CVCertificate& pLeft, const CVCertificate& pRight)
73{
74 return pLeft.getRawBody() == pRight.getRawBody() && pLeft.getRawSignature() == pRight.getRawSignature();
75}
76
77
78inline bool operator!=(const CVCertificate& pLeft, const CVCertificate& pRight)
79{
80 return !(pLeft == pRight);
81}
82
83
84} // namespace governikus
85
86QDebug operator<<(QDebug pDbg, const governikus::CVCertificate& pCvc);
87QDebug operator<<(QDebug pDbg, const QSharedPointer<const governikus::CVCertificate>& pCvc);
88QDebug operator<<(QDebug pDbg, const QSharedPointer<governikus::CVCertificate>& pCvc);
89QDebug operator<<(QDebug pDbg, const QList<QSharedPointer<governikus::CVCertificate>>& pCvcs);
#define DECLARE_ASN1_OBJECT(name)
Definition ASN1TemplateUtil.h:177
QDebug operator<<(QDebug pDbg, const governikus::CVCertificate &pCvc)
Definition CVCertificate.cpp:157
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:17
cvcertificate_st { CVCertificateBody *mBody CVCertificate
Definition CVCertificate.h:47
const CVCertificateBody & getBody() const
certificateprofilebody_st { ASN1_OCTET_STRING *mCertificateProfileIdentifier CVCertificateBody
Definition CVCertificateBody.h:26
QByteArray getRawSignature() const
Definition CVCertificate.cpp:128
bool isValidOn(const QDateTime &pValidationDate) const
Definition CVCertificate.cpp:144
QByteArray getDerSignature() const
Definition CVCertificate.cpp:134
bool operator!=(const CVCertificate &pLeft, const CVCertificate &pRight)
Definition CVCertificate.h:78
bool isIssuedBy(const cvcertificate_st &pIssuer) const
QByteArray getRawBody() const
Definition CVCertificate.cpp:115
const ECDSA_SIG * getEcdsaSignature() const
Definition CVCertificate.cpp:122
QByteArray encode() const
SIGNATURE * mSignature
Definition CVCertificate.h:48
ECDSA_SIG * mEcdsaSignature
Definition CVCertificate.h:49
According to.
Definition CVCertificate.h:39