matterbridge-roborock-vacuum-plugin
Version:
Matterbridge Roborock Vacuum Plugin
15 lines • 875 B
JavaScript
import crypto from 'node:crypto';
import * as CryptoUtils from '../../helper/cryptoHelper.js';
export class V01Serializer {
encode(payload, localKey, timestamp, sequence, nonce, connectNonce, ackNonce) {
const aesKey = CryptoUtils.md5bin(CryptoUtils.encodeTimestamp(timestamp) + localKey + CryptoUtils.SALT);
const cipher = crypto.createCipheriv('aes-128-ecb', aesKey, null);
return Buffer.concat([cipher.update(payload), cipher.final()]);
}
decode(payload, localKey, timestamp, sequence, nonce, connectNonce, ackNonce) {
const aesKey = CryptoUtils.md5bin(CryptoUtils.encodeTimestamp(timestamp) + localKey + CryptoUtils.SALT);
const decipher = crypto.createDecipheriv('aes-128-ecb', aesKey, null);
return Buffer.concat([decipher.update(payload), decipher.final()]);
}
}
//# sourceMappingURL=V01Serializer.js.map