blob: ef443374ff524f5e514d5c9440c9df370c4d6396 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
#ifndef __MIR_SIGNAL_H__
#define __MIR_SIGNAL_H__
#include <m_system.h>
#include <m_utils.h>
#include "../libs/libsignal/src/curve.h"
#include "../libs/libsignal/src/hkdf.h"
#include "../libs/libsignal/src/key_helper.h"
#include "../libs/libsignal/src/protocol.h"
#include "../libs/libsignal/src/session_builder.h"
#include "../libs/libsignal/src/session_cipher.h"
#include "../libs/libsignal/src/signal_protocol.h"
#include "../libs/libsignal/src/signal_protocol_types.h"
struct signal_buffer
{
size_t len;
uint8_t data[1];
};
struct signal_type_base
{
unsigned int ref_count = 0;
void (*destroy)(signal_type_base *instance) = 0;
};
struct ec_public_key : public signal_type_base
{
uint8_t data[32];
};
struct ec_private_key : public signal_type_base
{
uint8_t data[32];
};
class SignalBuffer
{
signal_buffer *m_buf;
public:
SignalBuffer(const class MBinBuffer &buf);
SignalBuffer(const ec_public_key *key);
SignalBuffer(const ec_private_key *key);
SignalBuffer(const session_pre_key *pre_key);
SignalBuffer(const session_signed_pre_key *pre_key);
~SignalBuffer();
__forceinline uint8_t* data() const { return m_buf->data; }
__forceinline unsigned len() const { return unsigned(m_buf->len); }
CMStringA toBase64() const;
};
#endif // __MIR_SMILEYS_H__
|