@rexxhayanasi/elaina-bail
Version:
Custom Baileys WhatsApp API
35 lines (34 loc) • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SenderChainKey = void 0;
const crypto_1 = require("libsignal/src/crypto");
const sender_message_key_1 = require("./sender-message-key");
class SenderChainKey {
constructor(iteration, chainKey) {
this.MESSAGE_KEY_SEED = Buffer.from([0x01]);
this.CHAIN_KEY_SEED = Buffer.from([0x02]);
this.iteration = iteration;
if (chainKey instanceof Buffer) {
this.chainKey = chainKey;
}
else {
this.chainKey = Buffer.from(chainKey || []);
}
}
getIteration() {
return this.iteration;
}
getSenderMessageKey() {
return new sender_message_key_1.SenderMessageKey(this.iteration, this.getDerivative(this.MESSAGE_KEY_SEED, this.chainKey));
}
getNext() {
return new SenderChainKey(this.iteration + 1, this.getDerivative(this.CHAIN_KEY_SEED, this.chainKey));
}
getSeed() {
return this.chainKey;
}
getDerivative(seed, key) {
return (0, crypto_1.calculateMAC)(key, seed);
}
}
exports.SenderChainKey = SenderChainKey;