libkazv
session-p.hpp
Go to the documentation of this file.
1 /*
2  * This file is part of libkazv.
3  * SPDX-FileCopyrightText: 2021-2024 tusooa <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 "session.hpp"
11 #include <vodozemac.h>
12 
13 namespace Kazv
14 {
16  {
18 
20  RandomTag,
21  RandomData data,
22  CryptoPrivate &cryptoD,
23  std::string theirIdentityKey,
24  std::string theirOneTimeKey);
25 
27  CryptoPrivate &cryptoD,
28  std::string theirIdentityKey,
29  std::string message);
30 
31  SessionPrivate(const SessionPrivate &that);
32  ~SessionPrivate() = default;
33 
34  std::optional<rust::Box<vodozemac::olm::Session>> session;
35 
36  bool valid{false};
37  std::optional<std::string> firstDecrypted;
38 
39  std::string pickle() const;
40  bool unpickle(std::string data);
41  bool unpickleFromLibolm(std::string data);
42 
44  };
45 }
session.hpp
Kazv::RandomData
std::string RandomData
Definition: crypto-util.hpp:34
Kazv::InboundSessionTag
Definition: session.hpp:21
Kazv::SessionPrivate::unpickle
bool unpickle(std::string data)
Definition: session.cpp:84
Kazv::SessionPrivate::firstDecrypted
std::optional< std::string > firstDecrypted
Definition: session-p.hpp:37
Kazv::SessionPrivate::valid
bool valid
Definition: session-p.hpp:36
Kazv::SessionPrivate::session
std::optional< rust::Box< vodozemac::olm::Session > > session
Definition: session-p.hpp:34
Kazv::Maybe
Definition: maybe.hpp:24
Kazv
Definition: location.hpp:10
Kazv::SessionPrivate::~SessionPrivate
~SessionPrivate()=default
Kazv::SessionPrivate
Definition: session-p.hpp:15
Kazv::SessionPrivate::takeFirstDecrypted
MaybeString takeFirstDecrypted()
Definition: session.cpp:104
Kazv::SessionPrivate::pickle
std::string pickle() const
Definition: session.cpp:78
Kazv::CryptoPrivate
Definition: crypto-p.hpp:25
Kazv::OutboundSessionTag
Definition: session.hpp:22
libkazv-config.hpp
Kazv::SessionPrivate::unpickleFromLibolm
bool unpickleFromLibolm(std::string data)
Definition: session.cpp:93
Kazv::RandomTag
The tag to indicate that a constructor should use user-provided random data.
Definition: crypto-util.hpp:32
Kazv::SessionPrivate::SessionPrivate
SessionPrivate()
Definition: session.cpp:17