AusweisApp2
Chat.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "ASN1TemplateUtil.h"
10 #include "AccessRoleAndRight.h"
11 #include "Oid.h"
12 
13 #include <openssl/asn1t.h>
14 
15 #include <QByteArray>
16 #include <QSharedPointer>
17 
18 namespace governikus
19 {
20 
66 using CHAT = struct chat_st
67 {
68  ASN1_OBJECT* mType;
69  ASN1_OCTET_STRING* mTemplate;
70 
71  static QSharedPointer<chat_st> fromHex(const QByteArray& pHexValue);
72  static QSharedPointer<chat_st> decode(const QByteArray& pBytes);
73  [[nodiscard]] QByteArray encode() const;
74 
75  chat_st(const chat_st& pCopy);
76  chat_st& operator=(const chat_st&) = delete;
77  ~chat_st();
78 
79  [[nodiscard]] Oid getType() const;
80  [[nodiscard]] QByteArray getTemplate() const;
81  [[nodiscard]] AccessRole getAccessRole() const;
82 
83  [[nodiscard]] QSet<AccessRight> getAccessRights() const;
84  void setAccessRights(const QSet<AccessRight>& pAccessRights);
85  [[nodiscard]] bool hasAccessRight(AccessRight pAccessRight) const;
86  void removeAllAccessRights();
87  void removeAccessRight(AccessRight pAccessRight);
88 
89  private:
90  void setTemplateBit(uint pBitIndex, bool pOn);
91 
92  public:
93  static int decodeCallback(int pOperation, ASN1_VALUE** pVal, const ASN1_ITEM* pIt, void* pExarg);
94 };
95 
96 DECLARE_ASN1_FUNCTIONS(CHAT)
98 
99 } // namespace governikus
#define DECLARE_ASN1_OBJECT(name)
Definition: ASN1TemplateUtil.h:169
A simple template renderer.
Definition: ActivationContext.h:15
bool hasAccessRight(AccessRight pAccessRight) const
Definition: Chat.cpp:174
QSet< AccessRight > getAccessRights() const
ASN1_OCTET_STRING * mTemplate
Definition: Chat.h:69
application_template_st & operator=(const application_template_st &)=delete
QByteArray getTemplate() const
Definition: Chat.cpp:127
chat_st(const chat_st &pCopy)
Definition: Chat.cpp:92
Oid getType() const
AccessRole getAccessRole() const
Definition: Chat.cpp:133
~chat_st()
Definition: Chat.cpp:99
QByteArray encode() const
void removeAllAccessRights()
Definition: Chat.cpp:180
struct chat_st { ASN1_OBJECT *mType CHAT
According to.
Definition: Chat.h:68
void setAccessRights(const QSet< AccessRight > &pAccessRights)
Definition: Chat.cpp:165
void removeAccessRight(AccessRight pAccessRight)
Definition: Chat.cpp:190