Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
MR414N-ID
GitHub Repository: MR414N-ID/botku2
Path: blob/master/node_modules/@adiwajshing/baileys/WASignalGroup/group_session_builder.js
1126 views
1
//const utils = require('../../common/utils');
2
const SenderKeyDistributionMessage = require('./sender_key_distribution_message');
3
4
const keyhelper = require("./keyhelper");
5
class GroupSessionBuilder {
6
constructor(senderKeyStore) {
7
this.senderKeyStore = senderKeyStore;
8
}
9
10
async process(senderKeyName, senderKeyDistributionMessage) {
11
//console.log('GroupSessionBuilder process', senderKeyName, senderKeyDistributionMessage);
12
const senderKeyRecord = await this.senderKeyStore.loadSenderKey(senderKeyName);
13
senderKeyRecord.addSenderKeyState(
14
senderKeyDistributionMessage.getId(),
15
senderKeyDistributionMessage.getIteration(),
16
senderKeyDistributionMessage.getChainKey(),
17
senderKeyDistributionMessage.getSignatureKey()
18
);
19
await this.senderKeyStore.storeSenderKey(senderKeyName, senderKeyRecord);
20
}
21
22
// [{"senderKeyId":1742199468,"senderChainKey":{"iteration":0,"seed":"yxMY9VFQcXEP34olRAcGCtsgx1XoKsHfDIh+1ea4HAQ="},"senderSigningKey":{"public":""}}]
23
async create(senderKeyName) {
24
const senderKeyRecord = await this.senderKeyStore.loadSenderKey(senderKeyName);
25
//console.log('GroupSessionBuilder create session', senderKeyName, senderKeyRecord);
26
27
if (senderKeyRecord.isEmpty()) {
28
const keyId = keyhelper.generateSenderKeyId();
29
const senderKey = keyhelper.generateSenderKey();
30
const signingKey = keyhelper.generateSenderSigningKey();
31
32
senderKeyRecord.setSenderKeyState(keyId, 0, senderKey, signingKey);
33
await this.senderKeyStore.storeSenderKey(senderKeyName, senderKeyRecord);
34
}
35
36
const state = senderKeyRecord.getSenderKeyState();
37
38
return new SenderKeyDistributionMessage(
39
state.getKeyId(),
40
state.getSenderChainKey().getIteration(),
41
state.getSenderChainKey().getSeed(),
42
state.getSigningKeyPublic()
43
);
44
}
45
}
46
module.exports = GroupSessionBuilder;
47