Skip to content

Commit 4f5d8fb

Browse files
committed
fix bit flipping
1 parent 1104b38 commit 4f5d8fb

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

src/controller/greenPower.ts

+4-5
Original file line numberDiff line numberDiff line change
@@ -298,11 +298,10 @@ export class GreenPower extends EventEmitter<GreenPowerEventMap> {
298298
const decrypted = this.decryptPayload(frame.payload.srcID, frame.payload.frameCounter, hashedKey, payload);
299299
const newHeader = Buffer.alloc(15);
300300
newHeader.set(oldHeader, 0);
301-
// flip securityLevel to ZigbeeNWKGPSecurityLevel.NO (for ease) before re-parsing
302-
newHeader.writeUInt16LE(
303-
frame.payload.options & ~(isCommissioningNotification ? 0x30 : 0xc0) & ~(isCommissioningNotification ? 0x200 : 0),
304-
3,
305-
);
301+
// flip necessary bits in options before re-parsing
302+
// - "securityLevel" to ZigbeeNWKGPSecurityLevel.NO (for ease) and "securityProcessingFailed" to 0
303+
// - "securityLevel" to ZigbeeNWKGPSecurityLevel.NO (for ease)
304+
newHeader.writeUInt16LE(isCommissioningNotification ? frame.payload.options & ~0x30 & ~0x200 : frame.payload.options & ~0xc0, 3);
306305
newHeader.writeUInt8(decrypted[0], oldHeader.byteLength - 2); // commandID
307306
newHeader.writeUInt8(decrypted.byteLength - 1, oldHeader.byteLength - 1); // payloadSize
308307

0 commit comments

Comments
 (0)