summaryrefslogtreecommitdiff
path: root/protocols/WhatsAppWeb/src/proto.h
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/WhatsAppWeb/src/proto.h')
-rw-r--r--protocols/WhatsAppWeb/src/proto.h24
1 files changed, 16 insertions, 8 deletions
diff --git a/protocols/WhatsAppWeb/src/proto.h b/protocols/WhatsAppWeb/src/proto.h
index e633e21ebf..19a2f41add 100644
--- a/protocols/WhatsAppWeb/src/proto.h
+++ b/protocols/WhatsAppWeb/src/proto.h
@@ -64,12 +64,23 @@ struct WAOwnMessage
class WANoise
{
+ friend class WhatsAppProto;
+
WhatsAppProto *ppro;
int readCounter = 0, writeCounter = 0;
bool bInitFinished = false, bSendIntro = false;
- MBinBuffer pubKey, privKey, salt, encKey, decKey;
+ MBinBuffer salt, encKey, decKey;
uint8_t hash[32];
+ struct {
+ MBinBuffer priv, pub;
+ } noiseKeys, signedIdentity, ephemeral;
+
+ struct {
+ MBinBuffer priv, pub, signature;
+ uint32_t keyid;
+ } preKey;
+
void deriveKey(const void *pData, size_t cbLen, MBinBuffer &write, MBinBuffer &read);
void mixIntoKey(const void *n, const void *p);
void updateHash(const void *pData, size_t cbLen);
@@ -78,14 +89,13 @@ public:
WANoise(WhatsAppProto *_ppro);
void finish() { bInitFinished = true; }
+ void init();
- const MBinBuffer& getPub() const { return pubKey; }
-
- void decrypt(const void *pData, size_t cbLen, MBinBuffer &dest);
- void encrypt(const void *pData, size_t cbLen, MBinBuffer &dest);
+ MBinBuffer decrypt(const void *pData, size_t cbLen);
+ MBinBuffer encrypt(const void *pData, size_t cbLen);
bool decodeFrame(const void *pData, size_t cbLen);
- void encodeFrame(const void *pData, size_t cbLen, MBinBuffer &dest);
+ MBinBuffer encodeFrame(const void *pData, size_t cbLen);
};
class WhatsAppProto : public PROTO<WhatsAppProto>
@@ -168,8 +178,6 @@ class WhatsAppProto : public PROTO<WhatsAppProto>
void OnGetAvatarInfo(const JSONNode &node, void*);
void OnGetChatInfo(const JSONNode &node, void*);
- void OnRestoreSession1(const JSONNode &node, void*);
- void OnRestoreSession2(const JSONNode &node, void*);
void OnSendMessage(const JSONNode &node, void*);
void OnStartSession(const JSONNode &node, void*);