AusweisApp2
ASN1Util.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include <openssl/asn1t.h>
10 #include <openssl/err.h>
11 
12 #include <QSharedPointer>
13 #include <QString>
14 
15 
19 #if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
20 DECLARE_STACK_OF(ASN1_OCTET_STRING)
21 #else
22 DEFINE_STACK_OF(ASN1_OCTET_STRING)
23 #endif
24 
25 namespace governikus
26 {
27 
28 class Asn1Util
29 {
30  Asn1Util() = delete;
31  ~Asn1Util() = delete;
32 
33  public:
37  static QByteArray encode(char pTagByte, const QByteArray& pData);
38 };
39 
40 
45 {
46  Asn1ObjectUtil() = delete;
47  ~Asn1ObjectUtil() = delete;
48 
49  public:
50  static ASN1_OBJECT* parseFrom(const QByteArray& pOidAsText);
51  static QByteArray convertTo(const ASN1_OBJECT* pAsn1Object);
52  static QByteArray getValue(const ASN1_OBJECT* pAsn1Object);
53 };
54 
55 
60 {
61  Asn1OctetStringUtil() = delete;
62  ~Asn1OctetStringUtil() = delete;
63 
64  public:
65  static void setValue(const QByteArray& pValue, ASN1_OCTET_STRING* pAsn1OctetString);
66  static QByteArray getValue(ASN1_OCTET_STRING* pAsn1OctetString);
67 };
68 
69 
74 {
75  Asn1StringUtil() = delete;
76  ~Asn1StringUtil() = delete;
77 
78  public:
79  static void setValue(const QString& pString, ASN1_STRING* pOut);
80  static QString getValue(ASN1_STRING* pString);
81 };
82 
83 
88 {
89  Asn1TypeUtil() = delete;
90  ~Asn1TypeUtil() = delete;
91 
92  public:
93  static QByteArray encode(ASN1_TYPE* pAny);
94 };
95 
96 
101 {
102  Asn1IntegerUtil() = delete;
103  ~Asn1IntegerUtil() = delete;
104 
105  public:
106  static QByteArray getValue(const ASN1_INTEGER* pInteger);
107 };
108 
109 
114 {
115  Asn1BCDDateUtil() = delete;
116  ~Asn1BCDDateUtil() = delete;
117 
118  public:
119  static QByteArray convertFromQDateToUnpackedBCD(QDate date);
120  static QDate convertFromUnpackedBCDToQDate(ASN1_OCTET_STRING* pDateBCD);
121 };
122 
123 
124 } // namespace governikus
Definition: ASN1Util.h:28
Utility for BCD coded dates.
Definition: ASN1Util.h:113
static void setValue(const QString &pString, ASN1_STRING *pOut)
Definition: ASN1Util.cpp:77
static QByteArray getValue(ASN1_OCTET_STRING *pAsn1OctetString)
Definition: ASN1Util.cpp:66
Utility for OpenSSL type ASN1_OBJECT, i.e.
Definition: ASN1Util.h:44
static ASN1_OBJECT * parseFrom(const QByteArray &pOidAsText)
Definition: ASN1Util.cpp:19
static QByteArray getValue(const ASN1_OBJECT *pAsn1Object)
Definition: ASN1Util.cpp:46
static void setValue(const QByteArray &pValue, ASN1_OCTET_STRING *pAsn1OctetString)
Definition: ASN1Util.cpp:60
Utility for OpenSSL type ASN1_INTEGER, i.e.
Definition: ASN1Util.h:100
static QByteArray convertTo(const ASN1_OBJECT *pAsn1Object)
Definition: ASN1Util.cpp:25
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:14
Utility for OpenSSL type ASN1_OCTET_STRING, i.e.
Definition: ASN1Util.h:59
static QByteArray convertFromQDateToUnpackedBCD(QDate date)
Definition: ASN1Util.cpp:138
static QByteArray getValue(const ASN1_INTEGER *pInteger)
Definition: ASN1Util.cpp:128
static QString getValue(ASN1_STRING *pString)
Definition: ASN1Util.cpp:84
static QDate convertFromUnpackedBCDToQDate(ASN1_OCTET_STRING *pDateBCD)
Definition: ASN1Util.cpp:158
static QByteArray encode(ASN1_TYPE *pAny)
Definition: ASN1Util.cpp:106
Utility for OpenSSL type ASN1_STRING, i.e.
Definition: ASN1Util.h:73
Utility for OpenSSL type ASN1_TYPE, i.e.
Definition: ASN1Util.h:87
static QByteArray encode(char pTagByte, const QByteArray &pData)
Encodes the data as ASN.1 object with specified tag byte.
Definition: ASN1Util.cpp:180