AusweisApp2
 Alle Klassen Namensbereiche Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Propertys Freundbeziehungen Makrodefinitionen
CVCertificate.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 
10 #include "CVCertificateBody.h"
11 
12 
13 #include <QByteArrayList>
14 #include <QDebug>
15 #include <QString>
16 
17 #include <openssl/ecdsa.h>
18 
19 
20 namespace governikus
21 {
22 
23 
39 struct SIGNATURE
40  : public ASN1_OCTET_STRING
41 {
42  // we use inheritance, because the structure ValidityDate is already a typedef of ASN1_OCTET_STRING
43  // and we cannot have two template specializations for the same type.
44 };
45 
46 
47 typedef struct cvcertificate_st
48 {
51  QSharedPointer<ECDSA_SIG> mEcdsaSignature;
52 
53  static QVector<QSharedPointer<const cvcertificate_st> > fromHex(const QByteArrayList& pHexByteList);
54  static QSharedPointer<const cvcertificate_st> fromHex(const QByteArray& pHexBytes);
55  QByteArray encode() const;
56 
57  const CVCertificateBody& getBody() const;
58  QByteArray getRawBody() const;
59  QSharedPointer<const ECDSA_SIG> getEcdsaSignature() const;
60  QByteArray getRawSignature() const;
61 
62  bool isValidOn(const QDateTime& pValidationDate) const;
63  bool isIssuedBy(const cvcertificate_st& pIssuer) const;
64 
65  static int decodeCallback(int pOperation, ASN1_VALUE** pVal, const ASN1_ITEM* pIt, void* pExarg);
66 
68 
69 
70 DECLARE_ASN1_FUNCTIONS(CVCertificate)
72 
73 
74 inline bool operator==(const CVCertificate& pLeft, const CVCertificate& pRight)
75 {
76  return pLeft.getRawBody() == pRight.getRawBody() && pLeft.getRawSignature() == pRight.getRawSignature();
77 }
78 
79 
80 inline bool operator!=(const CVCertificate& pLeft, const CVCertificate& pRight)
81 {
82  return !(pLeft == pRight);
83 }
84 
85 
86 } /* namespace governikus */
87 
88 QDebug operator<<(QDebug pDbg, const governikus::CVCertificate& pCvc);
89 QDebug operator<<(QDebug pDbg, const QSharedPointer<const governikus::CVCertificate>& pCvc);
90 QDebug operator<<(QDebug pDbg, QSharedPointer<governikus::CVCertificate>& pCvc);
91 QDebug operator<<(QDebug pDbg, const QVector<QSharedPointer<governikus::CVCertificate> >& pCvcs);
QByteArray encode() const
Definition: CVCertificate.cpp:101
static int decodeCallback(int pOperation, ASN1_VALUE **pVal, const ASN1_ITEM *pIt, void *pExarg)
Definition: CVCertificate.cpp:50
SIGNATURE * mSignature
Definition: CVCertificate.h:50
According to.
Definition: CVCertificate.h:39
bool isValidOn(const QDateTime &pValidationDate) const
Definition: CVCertificate.cpp:133
bool operator!=(const CVCertificate &pLeft, const CVCertificate &pRight)
Definition: CVCertificate.h:80
static QVector< QSharedPointer< const cvcertificate_st > > fromHex(const QByteArrayList &pHexByteList)
Definition: CVCertificate.cpp:80
QSharedPointer< const ECDSA_SIG > getEcdsaSignature() const
Definition: CVCertificate.cpp:121
QDebug operator<<(QDebug pDbg, const governikus::CVCertificate &pCvc)
Definition: CVCertificate.cpp:146
struct governikus::cvcertificate_st CVCertificate
Definition: CVCertificateBody.h:44
QSharedPointer< ECDSA_SIG > mEcdsaSignature
Definition: CVCertificate.h:51
QByteArray getRawSignature() const
Definition: CVCertificate.cpp:127
QByteArray getRawBody() const
Definition: CVCertificate.cpp:114
bool isIssuedBy(const cvcertificate_st &pIssuer) const
Definition: CVCertificate.cpp:140
#define DECLARE_ASN1_OBJECT(name)
Definition: ASN1TemplateUtil.h:152
Definition: CVCertificate.h:47
CVCertificateBody * mBody
Definition: CVCertificate.h:49
const CVCertificateBody & getBody() const
Definition: CVCertificate.cpp:107