Path: blob/master/node_modules/@adiwajshing/baileys/WASignalGroup/group_session_builder.js
1126 views
//const utils = require('../../common/utils');1const SenderKeyDistributionMessage = require('./sender_key_distribution_message');23const keyhelper = require("./keyhelper");4class GroupSessionBuilder {5constructor(senderKeyStore) {6this.senderKeyStore = senderKeyStore;7}89async process(senderKeyName, senderKeyDistributionMessage) {10//console.log('GroupSessionBuilder process', senderKeyName, senderKeyDistributionMessage);11const senderKeyRecord = await this.senderKeyStore.loadSenderKey(senderKeyName);12senderKeyRecord.addSenderKeyState(13senderKeyDistributionMessage.getId(),14senderKeyDistributionMessage.getIteration(),15senderKeyDistributionMessage.getChainKey(),16senderKeyDistributionMessage.getSignatureKey()17);18await this.senderKeyStore.storeSenderKey(senderKeyName, senderKeyRecord);19}2021// [{"senderKeyId":1742199468,"senderChainKey":{"iteration":0,"seed":"yxMY9VFQcXEP34olRAcGCtsgx1XoKsHfDIh+1ea4HAQ="},"senderSigningKey":{"public":""}}]22async create(senderKeyName) {23const senderKeyRecord = await this.senderKeyStore.loadSenderKey(senderKeyName);24//console.log('GroupSessionBuilder create session', senderKeyName, senderKeyRecord);2526if (senderKeyRecord.isEmpty()) {27const keyId = keyhelper.generateSenderKeyId();28const senderKey = keyhelper.generateSenderKey();29const signingKey = keyhelper.generateSenderSigningKey();3031senderKeyRecord.setSenderKeyState(keyId, 0, senderKey, signingKey);32await this.senderKeyStore.storeSenderKey(senderKeyName, senderKeyRecord);33}3435const state = senderKeyRecord.getSenderKeyState();3637return new SenderKeyDistributionMessage(38state.getKeyId(),39state.getSenderChainKey().getIteration(),40state.getSenderChainKey().getSeed(),41state.getSigningKeyPublic()42);43}44}45module.exports = GroupSessionBuilder;4647