43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
/*
|
|
* Created by victoria on 2021-05-13.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <signal/signal_protocol.h>
|
|
|
|
#include "identity_key_store.h"
|
|
#include "pre_key_store.h"
|
|
#include "sender_key_store.h"
|
|
#include "session_store.h"
|
|
#include "signed_pre_key_store.h"
|
|
|
|
namespace Signal::Store {
|
|
|
|
class Context {
|
|
public:
|
|
explicit Context(signal_context *global);
|
|
~Context();
|
|
|
|
Context(const Context &) = delete;
|
|
Context(Context &&) = delete;
|
|
Context &operator=(const Context &) = delete;
|
|
|
|
private:
|
|
signal_protocol_store_context *ctx{nullptr};
|
|
|
|
signal_protocol_identity_key_store iks{};
|
|
signal_protocol_pre_key_store pks{};
|
|
signal_protocol_sender_key_store sks{};
|
|
signal_protocol_session_store ss{};
|
|
signal_protocol_signed_pre_key_store spks{};
|
|
|
|
std::unique_ptr<IdentityKeyStore> identityKeyStore;
|
|
std::unique_ptr<PreKeyStore> preKeyStore;
|
|
std::unique_ptr<SenderKeyStore> senderKeyStore;
|
|
std::unique_ptr<SessionStore> sessionStore;
|
|
std::unique_ptr<SignedPreKeyStore> signedPreKeyStore;
|
|
};
|
|
|
|
} // namespace Signal::Store
|