AusweisApp2
Chat.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "AccessRoleAndRight.h"
10 #include "ASN1TemplateUtil.h"
11 
12 #include <openssl/asn1t.h>
13 
14 #include <QByteArray>
15 #include <QSharedPointer>
16 
17 namespace governikus
18 {
19 
65 using CHAT = struct chat_st
66 {
67  ASN1_OBJECT* mType;
68  ASN1_OCTET_STRING* mTemplate;
69 
70  static QSharedPointer<chat_st> fromHex(const QByteArray& pHexValue);
71  static QSharedPointer<chat_st> decode(const QByteArray& pBytes);
72  QByteArray encode() const;
73 
74  chat_st(const chat_st& pCopy);
75  chat_st& operator=(const chat_st&) = delete;
76  ~chat_st();
77 
78  void setType(const QByteArray& pOidAsText);
79  QByteArray getType() const;
80 
81  void setTemplate(const QByteArray& pValue);
82  QByteArray getTemplate() const;
83 
84  void setAccessRole(AccessRole pRole);
85  AccessRole getAccessRole() const;
86 
87  QSet<AccessRight> getAccessRights() const;
88  void setAccessRights(const QSet<AccessRight>& pAccessRights);
89  void setAccessRight(AccessRight pAccessRight);
90  bool hasAccessRight(AccessRight pAccessRight) const;
91  void removeAllAccessRights();
92  void removeAccessRight(AccessRight pAccessRight);
93 
94  private:
95  void setTemplateBit(uint pBitIndex, bool pOn);
96 
97  public:
98  static int decodeCallback(int pOperation, ASN1_VALUE** pVal, const ASN1_ITEM* pIt, void* pExarg);
99 };
100 
101 DECLARE_ASN1_FUNCTIONS(CHAT)
103 
104 } // namespace governikus
governikus::UNKNOWN
UNKNOWN
Definition: SmartCardDefinitions.h:18
DECLARE_ASN1_OBJECT
#define DECLARE_ASN1_OBJECT(name)
Definition: ASN1TemplateUtil.h:169
governikus::hasAccessRight
bool hasAccessRight(AccessRight pAccessRight) const
Definition: Chat.cpp:207
governikus::setAccessRights
void setAccessRights(const QSet< AccessRight > &pAccessRights)
Definition: Chat.cpp:192
governikus::getAccessRole
AccessRole getAccessRole() const
Definition: Chat.cpp:160
KnownOIDs.h
governikus::quint8
quint8
Definition: ResponseApdu.h:62
governikus::getTemplate
QByteArray getTemplate() const
Definition: Chat.cpp:138
governikus::setTemplate
void setTemplate(const QByteArray &pValue)
Definition: Chat.cpp:132
ASN1Util.h
governikus::getAccessRights
QSet< AccessRight > getAccessRights() const
governikus::operator=
chat_st & operator=(const chat_st &)=delete
governikus::setAccessRight
void setAccessRight(AccessRight pAccessRight)
Definition: Chat.cpp:201
AccessRoleAndRight.h
governikus::removeAccessRight
void removeAccessRight(AccessRight pAccessRight)
Definition: Chat.cpp:223
governikus::Asn1OctetStringUtil::getValue
static QByteArray getValue(ASN1_OCTET_STRING *pAsn1OctetString)
Definition: ASN1Util.cpp:65
governikus::setAccessRole
void setAccessRole(AccessRole pRole)
Definition: Chat.cpp:144
IMPLEMENT_ASN1_OBJECT
#define IMPLEMENT_ASN1_OBJECT(name)
Definition: ASN1TemplateUtil.h:144
governikus
Implementation of ActivationContext for Intent based activation on Android systems.
Definition: ActivationContext.h:15
governikus::setType
void setType(const QByteArray &pOidAsText)
Definition: Chat.cpp:119
governikus::Asn1OctetStringUtil::setValue
static void setValue(const QByteArray &pValue, ASN1_OCTET_STRING *pAsn1OctetString)
Definition: ASN1Util.cpp:59
governikus::Asn1ObjectUtil::parseFrom
static ASN1_OBJECT * parseFrom(const QByteArray &pOidAsText)
Definition: ASN1Util.cpp:18
governikus::CHAT
struct chat_st { ASN1_OBJECT *mType CHAT
According to.
Definition: Chat.h:67
governikus::removeAllAccessRights
void removeAllAccessRights()
Definition: Chat.cpp:213
governikus::encodeObject
QByteArray encodeObject(T *pObject)
Template function for encoding an OpenSSL type as DER encoded QByteArray.
Definition: ASN1TemplateUtil.h:69
governikus::~chat_st
~chat_st()
Definition: Chat.cpp:97
governikus::mTemplate
ASN1_OCTET_STRING * mTemplate
Definition: Chat.h:68
governikus::chat_st
chat_st(const chat_st &pCopy)
Definition: Chat.cpp:88
ASN1TemplateUtil.h
Chat.h
governikus::Asn1ObjectUtil::convertTo
static QByteArray convertTo(const ASN1_OBJECT *pAsn1Object)
Definition: ASN1Util.cpp:24
governikus::getType
QByteArray getType() const
governikus::encode
QByteArray encode() const