AusweisApp2
CertificateDescription.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "ASN1TemplateUtil.h"
10 #include "ASN1Util.h"
11 
12 #include <openssl/asn1t.h>
13 #include <openssl/err.h>
14 
15 #include <QSet>
16 #include <QSharedPointer>
17 #include <QString>
18 #include <QVector>
19 
20 
21 namespace governikus
22 {
23 
40 {
41  enum class TermsOfUsageType
42  {
44  };
45 
46  ASN1_OBJECT* mDescriptionType;
47  ASN1_UTF8STRING* mIssuerName;
48  ASN1_PRINTABLESTRING* mIssuerURL;
49  ASN1_UTF8STRING* mSubjectName;
50  ASN1_PRINTABLESTRING* mSubjectURL;
51  ASN1_TYPE* mTermsOfUsage;
52  ASN1_PRINTABLESTRING* mRedirectURL;
53  STACK_OF(ASN1_OCTET_STRING) * mCommCertificates;
54 
55 
56  static QSharedPointer<const CertificateDescription> fromHex(const QByteArray& pHexValue);
57  static QSharedPointer<const CertificateDescription> decode(const QByteArray& pBytes);
58  QByteArray encode();
59 
60  void setDescriptionType(const QByteArray& pOidAsText);
61  QByteArray getDescriptionType() const;
62 
63  void setIssuerName(const QString& pIssuerName);
64  QString getIssuerName() const;
65 
66  void setIssuerUrl(const QString& pIssuerUrl);
67  QString getIssuerUrl() const;
68 
69  void setSubjectName(const QString& pSubjectName);
70  QString getSubjectName() const;
71 
72  void setSubjectUrl(const QString& pSubjectUrl);
73  QString getSubjectUrl() const;
74 
76  QString getTermsOfUsage() const;
77 
78  void setRedirectUrl(const QString& pRedirectUrl);
79  QString getRedirectUrl() const;
80 
81  QSet<QString> getCommCertificates() const;
82 
88  QString getServiceProviderAddress() const;
89 
95  QString getPurpose() const;
96 
102  QString getDataSecurityOfficer() const;
103 };
104 
105 DECLARE_ASN1_FUNCTIONS(CertificateDescription)
107 
108 #if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
109  #define sk_ASN1_OCTET_STRING_num(data) data->stack.num
110  #define sk_ASN1_OCTET_STRING_value(data, i) SKM_sk_value(ASN1_OCTET_STRING, data, i)
111 #endif
112 
113 } // namespace governikus
governikus::CertificateDescription::TermsOfUsageType::HTML
@ HTML
DECLARE_ASN1_OBJECT
#define DECLARE_ASN1_OBJECT(name)
Definition: ASN1TemplateUtil.h:169
governikus::CertificateDescription::decode
static QSharedPointer< const CertificateDescription > decode(const QByteArray &pBytes)
Definition: CertificateDescription.cpp:100
governikus::CertificateDescription::getIssuerUrl
QString getIssuerUrl() const
Definition: CertificateDescription.cpp:147
CertificateDescription.h
governikus::CertificateDescription::getDescriptionType
QByteArray getDescriptionType() const
Definition: CertificateDescription.cpp:119
governikus::CertificateDescription::getPurpose
QString getPurpose() const
Returns the purpose of the certificate description.
Definition: CertificateDescription.cpp:259
governikus::CertificateDescription::getDataSecurityOfficer
QString getDataSecurityOfficer() const
Returns the data security officer of the certificate description.
Definition: CertificateDescription.cpp:272
governikus::CertificateDescription::setIssuerName
void setIssuerName(const QString &pIssuerName)
Definition: CertificateDescription.cpp:125
KnownOIDs.h
governikus::CertificateDescription::getSubjectUrl
QString getSubjectUrl() const
Definition: CertificateDescription.cpp:175
ASN1Util.h
governikus::CertificateDescription::mSubjectURL
ASN1_PRINTABLESTRING * mSubjectURL
Definition: CertificateDescription.h:50
governikus::CertificateDescription::TermsOfUsageType::PLAIN_TEXT
@ PLAIN_TEXT
governikus::CertificateDescription::getTermsOfUsageType
TermsOfUsageType getTermsOfUsageType() const
Definition: CertificateDescription.cpp:181
governikus::Asn1StringUtil::getValue
static QString getValue(ASN1_STRING *pString)
Definition: ASN1Util.cpp:83
governikus::Asn1TypeUtil::encode
static QByteArray encode(ASN1_TYPE *pAny)
Definition: ASN1Util.cpp:104
sk_ASN1_OCTET_STRING_num
#define sk_ASN1_OCTET_STRING_num(data)
Definition: CertificateDescription.h:109
governikus::CertificateDescription::getSubjectName
QString getSubjectName() const
Definition: CertificateDescription.cpp:159
governikus::CertificateDescription::mSubjectName
ASN1_UTF8STRING * mSubjectName
Definition: CertificateDescription.h:49
governikus::CertificateDescription::encode
QByteArray encode()
Definition: CertificateDescription.cpp:106
governikus::CertificateDescription::STACK_OF
STACK_OF(ASN1_OCTET_STRING) *mCommCertificates
sk_ASN1_OCTET_STRING_value
#define sk_ASN1_OCTET_STRING_value(data, i)
Definition: CertificateDescription.h:110
governikus::CertificateDescription::getRedirectUrl
QString getRedirectUrl() const
Definition: CertificateDescription.cpp:225
governikus::CertificateDescription::mDescriptionType
ASN1_OBJECT * mDescriptionType
Definition: CertificateDescription.h:46
governikus::CertificateDescription::TermsOfUsageType
TermsOfUsageType
Definition: CertificateDescription.h:42
governikus::CertificateDescription::setDescriptionType
void setDescriptionType(const QByteArray &pOidAsText)
Definition: CertificateDescription.cpp:112
governikus::CertificateDescription::mRedirectURL
ASN1_PRINTABLESTRING * mRedirectURL
Definition: CertificateDescription.h:52
IMPLEMENT_ASN1_OBJECT
#define IMPLEMENT_ASN1_OBJECT(name)
Definition: ASN1TemplateUtil.h:144
governikus::CertificateDescription::getCommCertificates
QSet< QString > getCommCertificates() const
Definition: CertificateDescription.cpp:231
governikus
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
governikus::Asn1ObjectUtil::parseFrom
static ASN1_OBJECT * parseFrom(const QByteArray &pOidAsText)
Definition: ASN1Util.cpp:18
governikus::CertificateDescription::mTermsOfUsage
ASN1_TYPE * mTermsOfUsage
Definition: CertificateDescription.h:51
governikus::encodeObject
QByteArray encodeObject(T *pObject)
Template function for encoding an OpenSSL type as DER encoded QByteArray.
Definition: ASN1TemplateUtil.h:69
governikus::CertificateDescription::setSubjectName
void setSubjectName(const QString &pSubjectName)
Definition: CertificateDescription.cpp:153
governikus::CertificateDescription::mIssuerName
ASN1_UTF8STRING * mIssuerName
Definition: CertificateDescription.h:47
governikus::CertificateDescription::getServiceProviderAddress
QString getServiceProviderAddress() const
Returns the address of provider.
Definition: CertificateDescription.cpp:249
governikus::CertificateDescription::setIssuerUrl
void setIssuerUrl(const QString &pIssuerUrl)
Definition: CertificateDescription.cpp:137
governikus::CertificateDescription::fromHex
static QSharedPointer< const CertificateDescription > fromHex(const QByteArray &pHexValue)
Definition: CertificateDescription.cpp:94
governikus::CertificateDescription::setSubjectUrl
void setSubjectUrl(const QString &pSubjectUrl)
Definition: CertificateDescription.cpp:165
governikus::CertificateDescription::getTermsOfUsage
QString getTermsOfUsage() const
Definition: CertificateDescription.cpp:195
ASN1TemplateUtil.h
governikus::Asn1ObjectUtil::convertTo
static QByteArray convertTo(const ASN1_OBJECT *pAsn1Object)
Definition: ASN1Util.cpp:24
governikus::CertificateDescription::setRedirectUrl
void setRedirectUrl(const QString &pRedirectUrl)
Definition: CertificateDescription.cpp:215
governikus::KnownOIDs::TermsOfUsageType::ID_HTML_FORMAT
@ ID_HTML_FORMAT
governikus::CertificateDescription::getIssuerName
QString getIssuerName() const
Definition: CertificateDescription.cpp:131
governikus::CertificateDescription
Definition: CertificateDescription.h:40
governikus::Asn1StringUtil::setValue
static void setValue(const QString &pString, ASN1_STRING *pOut)
Definition: ASN1Util.cpp:76
governikus::CertificateDescription::mIssuerURL
ASN1_PRINTABLESTRING * mIssuerURL
Definition: CertificateDescription.h:48
governikus::KnownOIDs::TermsOfUsageType::ID_PLAIN_FORMAT
@ ID_PLAIN_FORMAT
governikus::CertificateDescription::TermsOfUsageType::PDF
@ PDF