libkazv
inbound-group-session.hpp
Go to the documentation of this file.
1 /*
2  * This file is part of libkazv.
3  * SPDX-FileCopyrightText: 2021 Tusooa Zhu <tusooa@kazv.moe>
4  * SPDX-License-Identifier: AGPL-3.0-or-later
5  */
6 
7 #pragma once
8 #include <libkazv-config.hpp>
9 
10 #include <memory>
11 
12 #include <maybe.hpp>
13 #include <event.hpp>
14 
15 #include "crypto-util.hpp"
16 
17 namespace Kazv
18 {
19  struct InboundGroupSessionPrivate;
20 
22  {
23  public:
24  explicit InboundGroupSession();
25  explicit InboundGroupSession(std::string sessionKey, std::string ed25519Key);
26 
32 
33  MaybeString decrypt(std::string message, std::string eventId, Timestamp originServerTs);
34 
35  bool valid() const;
36 
37  std::string ed25519Key() const;
38  private:
39  friend void to_json(nlohmann::json &j, const InboundGroupSession &s);
40  friend void from_json(const nlohmann::json &j, InboundGroupSession &s);
41  std::unique_ptr<InboundGroupSessionPrivate> m_d;
42  };
43 }
maybe.hpp
Kazv::InboundGroupSession::decrypt
MaybeString decrypt(std::string message, std::string eventId, Timestamp originServerTs)
Definition: inbound-group-session.cpp:121
crypto-util.hpp
event.hpp
Kazv::InboundGroupSession
Definition: inbound-group-session.hpp:21
Kazv::InboundGroupSession::to_json
friend void to_json(nlohmann::json &j, const InboundGroupSession &s)
Definition: inbound-group-session.cpp:167
Kazv::Maybe
Definition: maybe.hpp:24
Kazv
Definition: location.hpp:10
Kazv::Timestamp
std::int_fast64_t Timestamp
Definition: event.hpp:18
Kazv::InboundGroupSession::ed25519Key
std::string ed25519Key() const
Definition: inbound-group-session.cpp:162
Kazv::InboundGroupSession::from_json
friend void from_json(const nlohmann::json &j, InboundGroupSession &s)
Definition: inbound-group-session.cpp:178
Kazv::InboundGroupSession::operator=
InboundGroupSession & operator=(const InboundGroupSession &that)
Definition: inbound-group-session.cpp:104
Kazv::InboundGroupSession::InboundGroupSession
InboundGroupSession()
Definition: inbound-group-session.cpp:82
Kazv::json
nlohmann::json json
Definition: jsonwrap.hpp:20
Kazv::InboundGroupSession::~InboundGroupSession
~InboundGroupSession()
libkazv-config.hpp
Kazv::InboundGroupSession::valid
bool valid() const
Definition: inbound-group-session.cpp:116