fix: Fix insecure Zigbee network encryption key generation (#18372)

This commit is contained in:
Bruno Bierbaumer
2023-07-20 19:26:29 +02:00
committed by GitHub
parent 3408e3c05a
commit df8e1687b2
+3 -2
View File
@@ -9,6 +9,7 @@ import Device from './model/device';
import Group from './model/group';
import * as ZHEvents from 'zigbee-herdsman/dist/controller/events';
import bind from 'bind-decorator';
import {randomInt} from 'crypto';
export default class Zigbee {
private herdsman: Controller;
@@ -164,13 +165,13 @@ export default class Zigbee {
}
private generateNetworkKey(): number[] {
const key = Array.from({length: 16}, () => Math.floor(Math.random() * 255));
const key = Array.from({length: 16}, () => randomInt(256));
settings.set(['advanced', 'network_key'], key);
return key;
}
private generatePanID(): number {
const panID = Math.floor(Math.random() * (0xFFFF - 2)) + 1;
const panID = randomInt(1, 0xFFFF - 1);
settings.set(['advanced', 'pan_id'], panID);
return panID;
}