@zwave-js/cc 12.9.1 → 12.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cc/AssociationCC.d.ts +19 -0
- package/build/cc/AssociationCC.d.ts.map +1 -1
- package/build/cc/AssociationCC.js +63 -5
- package/build/cc/AssociationCC.js.map +1 -1
- package/build/cc/DeviceResetLocallyCC.d.ts.map +1 -1
- package/build/cc/DeviceResetLocallyCC.js +5 -2
- package/build/cc/DeviceResetLocallyCC.js.map +1 -1
- package/build/cc/FirmwareUpdateMetaDataCC.d.ts +14 -1
- package/build/cc/FirmwareUpdateMetaDataCC.d.ts.map +1 -1
- package/build/cc/FirmwareUpdateMetaDataCC.js +159 -27
- package/build/cc/FirmwareUpdateMetaDataCC.js.map +1 -1
- package/build/cc/IndicatorCC.d.ts +8 -1
- package/build/cc/IndicatorCC.d.ts.map +1 -1
- package/build/cc/IndicatorCC.js +140 -7
- package/build/cc/IndicatorCC.js.map +1 -1
- package/build/cc/MultiChannelAssociationCC.d.ts +20 -8
- package/build/cc/MultiChannelAssociationCC.d.ts.map +1 -1
- package/build/cc/MultiChannelAssociationCC.js +170 -26
- package/build/cc/MultiChannelAssociationCC.js.map +1 -1
- package/build/cc/PowerlevelCC.d.ts +21 -5
- package/build/cc/PowerlevelCC.d.ts.map +1 -1
- package/build/cc/PowerlevelCC.js +194 -11
- package/build/cc/PowerlevelCC.js.map +1 -1
- package/build/cc/Security2CC.d.ts.map +1 -1
- package/build/cc/Security2CC.js +83 -17
- package/build/cc/Security2CC.js.map +1 -1
- package/build/cc/VersionCC.d.ts +7 -2
- package/build/cc/VersionCC.d.ts.map +1 -1
- package/build/cc/VersionCC.js +33 -3
- package/build/cc/VersionCC.js.map +1 -1
- package/build/cc/index.d.ts +7 -7
- package/build/cc/index.d.ts.map +1 -1
- package/build/cc/index.js +13 -11
- package/build/cc/index.js.map +1 -1
- package/build/lib/CommandClass.d.ts.map +1 -1
- package/build/lib/CommandClass.js +18 -3
- package/build/lib/CommandClass.js.map +1 -1
- package/build/lib/Security2/Extension.d.ts +16 -2
- package/build/lib/Security2/Extension.d.ts.map +1 -1
- package/build/lib/Security2/Extension.js +70 -9
- package/build/lib/Security2/Extension.js.map +1 -1
- package/build/lib/_Types.d.ts +3 -1
- package/build/lib/_Types.d.ts.map +1 -1
- package/build/lib/_Types.js +2 -12
- package/build/lib/_Types.js.map +1 -1
- package/package.json +6 -6
package/build/cc/PowerlevelCC.js
CHANGED
|
@@ -25,6 +25,134 @@ const __assertType__number = $o => {
|
|
|
25
25
|
}
|
|
26
26
|
return _number($o);
|
|
27
27
|
};
|
|
28
|
+
const __assertType__PowerlevelCCReportOptions = $o => {
|
|
29
|
+
function _3($o) {
|
|
30
|
+
return $o !== 0 ? {} : null;
|
|
31
|
+
}
|
|
32
|
+
function _undefined($o) {
|
|
33
|
+
return $o !== undefined ? {} : null;
|
|
34
|
+
}
|
|
35
|
+
function _1($o) {
|
|
36
|
+
if (typeof $o !== "object" || $o === null || Array.isArray($o))
|
|
37
|
+
return {};
|
|
38
|
+
if ("powerlevel" in $o && $o["powerlevel"] !== undefined) {
|
|
39
|
+
const error = _3($o["powerlevel"]);
|
|
40
|
+
if (error)
|
|
41
|
+
return error;
|
|
42
|
+
}
|
|
43
|
+
else
|
|
44
|
+
return {};
|
|
45
|
+
if ("timeout" in $o && $o["timeout"] !== undefined) {
|
|
46
|
+
const error = _undefined($o["timeout"]);
|
|
47
|
+
if (error)
|
|
48
|
+
return error;
|
|
49
|
+
}
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
function _5($o) {
|
|
53
|
+
return $o !== 1 ? {} : null;
|
|
54
|
+
}
|
|
55
|
+
function _6($o) {
|
|
56
|
+
return $o !== 2 ? {} : null;
|
|
57
|
+
}
|
|
58
|
+
function _7($o) {
|
|
59
|
+
return $o !== 3 ? {} : null;
|
|
60
|
+
}
|
|
61
|
+
function _8($o) {
|
|
62
|
+
return $o !== 4 ? {} : null;
|
|
63
|
+
}
|
|
64
|
+
function _9($o) {
|
|
65
|
+
return $o !== 5 ? {} : null;
|
|
66
|
+
}
|
|
67
|
+
function _10($o) {
|
|
68
|
+
return $o !== 6 ? {} : null;
|
|
69
|
+
}
|
|
70
|
+
function _11($o) {
|
|
71
|
+
return $o !== 7 ? {} : null;
|
|
72
|
+
}
|
|
73
|
+
function _12($o) {
|
|
74
|
+
return $o !== 8 ? {} : null;
|
|
75
|
+
}
|
|
76
|
+
function _13($o) {
|
|
77
|
+
return $o !== 9 ? {} : null;
|
|
78
|
+
}
|
|
79
|
+
function su__5__6__7__8__9__10__11__12__13_eu($o) {
|
|
80
|
+
const conditions = [_5, _6, _7, _8, _9, _10, _11, _12, _13];
|
|
81
|
+
for (const condition of conditions) {
|
|
82
|
+
const error = condition($o);
|
|
83
|
+
if (!error)
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
return {};
|
|
87
|
+
}
|
|
88
|
+
function _number($o) {
|
|
89
|
+
return typeof $o !== "number" ? {} : null;
|
|
90
|
+
}
|
|
91
|
+
function _2($o) {
|
|
92
|
+
if (typeof $o !== "object" || $o === null || Array.isArray($o))
|
|
93
|
+
return {};
|
|
94
|
+
if ("powerlevel" in $o && $o["powerlevel"] !== undefined) {
|
|
95
|
+
const error = su__5__6__7__8__9__10__11__12__13_eu($o["powerlevel"]);
|
|
96
|
+
if (error)
|
|
97
|
+
return error;
|
|
98
|
+
}
|
|
99
|
+
else
|
|
100
|
+
return {};
|
|
101
|
+
if ("timeout" in $o && $o["timeout"] !== undefined) {
|
|
102
|
+
const error = _number($o["timeout"]);
|
|
103
|
+
if (error)
|
|
104
|
+
return error;
|
|
105
|
+
}
|
|
106
|
+
else
|
|
107
|
+
return {};
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
function su__1__2_eu($o) {
|
|
111
|
+
const conditions = [_1, _2];
|
|
112
|
+
for (const condition of conditions) {
|
|
113
|
+
const error = condition($o);
|
|
114
|
+
if (!error)
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
return {};
|
|
118
|
+
}
|
|
119
|
+
return su__1__2_eu($o);
|
|
120
|
+
};
|
|
121
|
+
const __assertType__PowerlevelCCTestNodeReportOptions = $o => {
|
|
122
|
+
function _number($o) {
|
|
123
|
+
return typeof $o !== "number" ? {} : null;
|
|
124
|
+
}
|
|
125
|
+
function su__2__3__4_eu($o) {
|
|
126
|
+
return ![0, 1, 2].includes($o) ? {} : null;
|
|
127
|
+
}
|
|
128
|
+
function _0($o) {
|
|
129
|
+
if (typeof $o !== "object" || $o === null || Array.isArray($o))
|
|
130
|
+
return {};
|
|
131
|
+
if ("testNodeId" in $o && $o["testNodeId"] !== undefined) {
|
|
132
|
+
const error = _number($o["testNodeId"]);
|
|
133
|
+
if (error)
|
|
134
|
+
return error;
|
|
135
|
+
}
|
|
136
|
+
else
|
|
137
|
+
return {};
|
|
138
|
+
if ("status" in $o && $o["status"] !== undefined) {
|
|
139
|
+
const error = su__2__3__4_eu($o["status"]);
|
|
140
|
+
if (error)
|
|
141
|
+
return error;
|
|
142
|
+
}
|
|
143
|
+
else
|
|
144
|
+
return {};
|
|
145
|
+
if ("acknowledgedFrames" in $o && $o["acknowledgedFrames"] !== undefined) {
|
|
146
|
+
const error = _number($o["acknowledgedFrames"]);
|
|
147
|
+
if (error)
|
|
148
|
+
return error;
|
|
149
|
+
}
|
|
150
|
+
else
|
|
151
|
+
return {};
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
return _0($o);
|
|
155
|
+
};
|
|
28
156
|
const safe_1 = require("@zwave-js/core/safe");
|
|
29
157
|
const safe_2 = require("@zwave-js/shared/safe");
|
|
30
158
|
const API_1 = require("../lib/API");
|
|
@@ -35,7 +163,9 @@ let PowerlevelCCAPI = class PowerlevelCCAPI extends API_1.PhysicalCCAPI {
|
|
|
35
163
|
supportsCommand(cmd) {
|
|
36
164
|
switch (cmd) {
|
|
37
165
|
case _Types_1.PowerlevelCommand.Get:
|
|
166
|
+
case _Types_1.PowerlevelCommand.Report:
|
|
38
167
|
case _Types_1.PowerlevelCommand.TestNodeGet:
|
|
168
|
+
case _Types_1.PowerlevelCommand.TestNodeReport:
|
|
39
169
|
return this.isSinglecast();
|
|
40
170
|
case _Types_1.PowerlevelCommand.Set:
|
|
41
171
|
case _Types_1.PowerlevelCommand.TestNodeSet:
|
|
@@ -75,6 +205,16 @@ let PowerlevelCCAPI = class PowerlevelCCAPI extends API_1.PhysicalCCAPI {
|
|
|
75
205
|
return (0, safe_2.pick)(response, ["powerlevel", "timeout"]);
|
|
76
206
|
}
|
|
77
207
|
}
|
|
208
|
+
async reportPowerlevel(options) {
|
|
209
|
+
__assertType("options", "PowerlevelCCReportOptions", __assertType__PowerlevelCCReportOptions.bind(void 0, options));
|
|
210
|
+
this.assertSupportsCommand(_Types_1.PowerlevelCommand, _Types_1.PowerlevelCommand.Report);
|
|
211
|
+
const cc = new PowerlevelCCReport(this.applHost, {
|
|
212
|
+
nodeId: this.endpoint.nodeId,
|
|
213
|
+
endpoint: this.endpoint.index,
|
|
214
|
+
...options,
|
|
215
|
+
});
|
|
216
|
+
await this.applHost.sendCommand(cc, this.commandOptions);
|
|
217
|
+
}
|
|
78
218
|
async startNodeTest(testNodeId, powerlevel, testFrameCount) {
|
|
79
219
|
__assertType("testNodeId", "number", __assertType__number.bind(void 0, testNodeId));
|
|
80
220
|
__assertType("powerlevel", "Powerlevel", __assertType__Powerlevel.bind(void 0, powerlevel));
|
|
@@ -114,6 +254,16 @@ let PowerlevelCCAPI = class PowerlevelCCAPI extends API_1.PhysicalCCAPI {
|
|
|
114
254
|
]);
|
|
115
255
|
}
|
|
116
256
|
}
|
|
257
|
+
async sendNodeTestReport(options) {
|
|
258
|
+
__assertType("options", "PowerlevelCCTestNodeReportOptions", __assertType__PowerlevelCCTestNodeReportOptions.bind(void 0, options));
|
|
259
|
+
this.assertSupportsCommand(_Types_1.PowerlevelCommand, _Types_1.PowerlevelCommand.TestNodeReport);
|
|
260
|
+
const cc = new PowerlevelCCTestNodeReport(this.applHost, {
|
|
261
|
+
nodeId: this.endpoint.nodeId,
|
|
262
|
+
endpoint: this.endpoint.index,
|
|
263
|
+
...options,
|
|
264
|
+
});
|
|
265
|
+
await this.applHost.sendCommand(cc, this.commandOptions);
|
|
266
|
+
}
|
|
117
267
|
};
|
|
118
268
|
exports.PowerlevelCCAPI = PowerlevelCCAPI;
|
|
119
269
|
exports.PowerlevelCCAPI = PowerlevelCCAPI = __decorate([
|
|
@@ -130,8 +280,11 @@ let PowerlevelCCSet = class PowerlevelCCSet extends PowerlevelCC {
|
|
|
130
280
|
constructor(host, options) {
|
|
131
281
|
super(host, options);
|
|
132
282
|
if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
|
|
133
|
-
|
|
134
|
-
|
|
283
|
+
(0, safe_1.validatePayload)(this.payload.length >= 2);
|
|
284
|
+
this.powerlevel = this.payload[0];
|
|
285
|
+
if (this.powerlevel !== _Types_1.Powerlevel["Normal Power"]) {
|
|
286
|
+
this.timeout = this.payload[1];
|
|
287
|
+
}
|
|
135
288
|
}
|
|
136
289
|
else {
|
|
137
290
|
this.powerlevel = options.powerlevel;
|
|
@@ -170,13 +323,23 @@ exports.PowerlevelCCSet = PowerlevelCCSet = __decorate([
|
|
|
170
323
|
let PowerlevelCCReport = class PowerlevelCCReport extends PowerlevelCC {
|
|
171
324
|
constructor(host, options) {
|
|
172
325
|
super(host, options);
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
this.
|
|
326
|
+
if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
|
|
327
|
+
this.powerlevel = this.payload[0];
|
|
328
|
+
if (this.powerlevel !== _Types_1.Powerlevel["Normal Power"]) {
|
|
329
|
+
this.timeout = this.payload[1];
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
else {
|
|
333
|
+
this.powerlevel = options.powerlevel;
|
|
334
|
+
this.timeout = options.timeout;
|
|
176
335
|
}
|
|
177
336
|
}
|
|
178
337
|
powerlevel;
|
|
179
338
|
timeout;
|
|
339
|
+
serialize() {
|
|
340
|
+
this.payload = Buffer.from([this.powerlevel, this.timeout ?? 0x00]);
|
|
341
|
+
return super.serialize();
|
|
342
|
+
}
|
|
180
343
|
toLogEntry(applHost) {
|
|
181
344
|
const message = {
|
|
182
345
|
"power level": (0, safe_2.getEnumMemberName)(_Types_1.Powerlevel, this.powerlevel),
|
|
@@ -205,8 +368,10 @@ let PowerlevelCCTestNodeSet = class PowerlevelCCTestNodeSet extends PowerlevelCC
|
|
|
205
368
|
constructor(host, options) {
|
|
206
369
|
super(host, options);
|
|
207
370
|
if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
|
|
208
|
-
|
|
209
|
-
|
|
371
|
+
(0, safe_1.validatePayload)(this.payload.length >= 4);
|
|
372
|
+
this.testNodeId = this.payload[0];
|
|
373
|
+
this.powerlevel = this.payload[1];
|
|
374
|
+
this.testFrameCount = this.payload.readUInt16BE(2);
|
|
210
375
|
}
|
|
211
376
|
else {
|
|
212
377
|
this.testNodeId = options.testNodeId;
|
|
@@ -241,14 +406,32 @@ exports.PowerlevelCCTestNodeSet = PowerlevelCCTestNodeSet = __decorate([
|
|
|
241
406
|
let PowerlevelCCTestNodeReport = class PowerlevelCCTestNodeReport extends PowerlevelCC {
|
|
242
407
|
constructor(host, options) {
|
|
243
408
|
super(host, options);
|
|
244
|
-
(0,
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
409
|
+
if ((0, CommandClass_1.gotDeserializationOptions)(options)) {
|
|
410
|
+
(0, safe_1.validatePayload)(this.payload.length >= 4);
|
|
411
|
+
this.testNodeId = this.payload[0];
|
|
412
|
+
this.status = this.payload[1];
|
|
413
|
+
this.acknowledgedFrames = this.payload.readUInt16BE(2);
|
|
414
|
+
}
|
|
415
|
+
else {
|
|
416
|
+
this.testNodeId = options.testNodeId;
|
|
417
|
+
this.status = options.status;
|
|
418
|
+
this.acknowledgedFrames = options.acknowledgedFrames;
|
|
419
|
+
}
|
|
248
420
|
}
|
|
249
421
|
testNodeId;
|
|
250
422
|
status;
|
|
251
423
|
acknowledgedFrames;
|
|
424
|
+
serialize() {
|
|
425
|
+
this.payload = Buffer.from([
|
|
426
|
+
this.testNodeId,
|
|
427
|
+
this.status,
|
|
428
|
+
// Placeholder for acknowledged frames
|
|
429
|
+
0,
|
|
430
|
+
0,
|
|
431
|
+
]);
|
|
432
|
+
this.payload.writeUInt16BE(this.acknowledgedFrames, 2);
|
|
433
|
+
return super.serialize();
|
|
434
|
+
}
|
|
252
435
|
toLogEntry(applHost) {
|
|
253
436
|
return {
|
|
254
437
|
...super.toLogEntry(applHost),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PowerlevelCC.js","sourceRoot":"","sources":["../../src/cc/PowerlevelCC.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PowerlevelCC.js","sourceRoot":"","sources":["../../src/cc/PowerlevelCC.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Security2CC.d.ts","sourceRoot":"","sources":["../../src/cc/Security2CC.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,cAAc,EAEd,KAAK,mBAAmB,EAIxB,KAAK,eAAe,EAIpB,aAAa,EAkBb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEN,KAAK,aAAa,EAGlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"Security2CC.d.ts","sourceRoot":"","sources":["../../src/cc/Security2CC.ts"],"names":[],"mappings":"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"}
|
package/build/cc/Security2CC.js
CHANGED
|
@@ -72,7 +72,9 @@ function assertSecurity(options) {
|
|
|
72
72
|
throw new core_1.ZWaveError(`Secure commands (S2) can only be ${verb} when the network keys are configured!`, core_1.ZWaveErrorCodes.Driver_NoSecurity);
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
|
-
const
|
|
75
|
+
const MAX_DECRYPT_ATTEMPTS_SINGLECAST = 5;
|
|
76
|
+
const MAX_DECRYPT_ATTEMPTS_MULTICAST = 5;
|
|
77
|
+
const MAX_DECRYPT_ATTEMPTS_SC_FOLLOWUP = 1;
|
|
76
78
|
// Encapsulation CCs are used internally and too frequently that we
|
|
77
79
|
// want to pay the cost of validating each call
|
|
78
80
|
/* eslint-disable @zwave-js/ccapi-validate-args */
|
|
@@ -604,26 +606,62 @@ let Security2CCMessageEncapsulation = class Security2CCMessageEncapsulation exte
|
|
|
604
606
|
const hasEncryptedExtensions = !!(this.payload[1] & 0b10);
|
|
605
607
|
let offset = 2;
|
|
606
608
|
this.extensions = [];
|
|
607
|
-
|
|
609
|
+
let mustDiscardCommand = false;
|
|
610
|
+
const parseExtensions = (buffer, wasEncrypted) => {
|
|
608
611
|
while (true) {
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
+
if (buffer.length < offset + 2) {
|
|
613
|
+
// An S2 extension was expected, but the buffer is too short
|
|
614
|
+
mustDiscardCommand = true;
|
|
615
|
+
return;
|
|
616
|
+
}
|
|
617
|
+
// The length field could be too large, which would cause part of the actual ciphertext
|
|
618
|
+
// to be ignored. Try to avoid this for known extensions by checking the actual and expected length.
|
|
619
|
+
const { actual: actualLength, expected: expectedLength } = Extension_1.Security2Extension
|
|
612
620
|
.getExtensionLength(buffer.subarray(offset));
|
|
613
|
-
// Parse the extension
|
|
614
|
-
const
|
|
615
|
-
if (
|
|
616
|
-
|
|
621
|
+
// Parse the extension using the expected length if possible
|
|
622
|
+
const extensionLength = expectedLength ?? actualLength;
|
|
623
|
+
if (extensionLength < 2) {
|
|
624
|
+
// An S2 extension was expected, but the length is too short
|
|
625
|
+
mustDiscardCommand = true;
|
|
626
|
+
return;
|
|
627
|
+
}
|
|
628
|
+
else if (extensionLength
|
|
629
|
+
> buffer.length
|
|
630
|
+
- offset
|
|
631
|
+
- (wasEncrypted
|
|
632
|
+
? 0
|
|
633
|
+
: core_1.SECURITY_S2_AUTH_TAG_LENGTH)) {
|
|
634
|
+
// The supposed length is longer than the space the extensions may occupy
|
|
635
|
+
mustDiscardCommand = true;
|
|
636
|
+
return;
|
|
617
637
|
}
|
|
618
|
-
|
|
638
|
+
const extensionData = buffer.subarray(offset, offset + extensionLength);
|
|
619
639
|
offset += extensionLength;
|
|
640
|
+
const ext = Extension_1.Security2Extension.from(extensionData);
|
|
641
|
+
switch ((0, Extension_1.validateS2Extension)(ext, wasEncrypted)) {
|
|
642
|
+
case Extension_1.ValidateS2ExtensionResult.OK:
|
|
643
|
+
if (expectedLength != undefined
|
|
644
|
+
&& actualLength !== expectedLength) {
|
|
645
|
+
// The extension length field does not match, ignore the extension
|
|
646
|
+
}
|
|
647
|
+
else {
|
|
648
|
+
this.extensions.push(ext);
|
|
649
|
+
}
|
|
650
|
+
break;
|
|
651
|
+
case Extension_1.ValidateS2ExtensionResult.DiscardExtension:
|
|
652
|
+
// Do nothing
|
|
653
|
+
break;
|
|
654
|
+
case Extension_1.ValidateS2ExtensionResult.DiscardCommand:
|
|
655
|
+
mustDiscardCommand = true;
|
|
656
|
+
break;
|
|
657
|
+
}
|
|
620
658
|
// Check if that was the last extension
|
|
621
659
|
if (!ext.moreToFollow)
|
|
622
660
|
break;
|
|
623
661
|
}
|
|
624
662
|
};
|
|
625
663
|
if (hasExtensions)
|
|
626
|
-
parseExtensions(this.payload);
|
|
664
|
+
parseExtensions(this.payload, false);
|
|
627
665
|
const ctx = (() => {
|
|
628
666
|
const multicastGroupId = this.getMulticastGroupId();
|
|
629
667
|
if (options.frameType === "multicast"
|
|
@@ -640,6 +678,17 @@ let Security2CCMessageEncapsulation = class Security2CCMessageEncapsulation exte
|
|
|
640
678
|
return { isMulticast: false, groupId: multicastGroupId };
|
|
641
679
|
}
|
|
642
680
|
})();
|
|
681
|
+
// If a command is to be discarded before decryption,
|
|
682
|
+
// we still need to increment the SPAN or MPAN state
|
|
683
|
+
if (mustDiscardCommand) {
|
|
684
|
+
if (ctx.isMulticast) {
|
|
685
|
+
this.securityManager.nextPeerMPAN(sendingNodeId, ctx.groupId);
|
|
686
|
+
}
|
|
687
|
+
else {
|
|
688
|
+
this.securityManager.nextNonce(sendingNodeId);
|
|
689
|
+
}
|
|
690
|
+
throw core_1.validatePayload.fail("Invalid S2 extension");
|
|
691
|
+
}
|
|
643
692
|
let prevSequenceNumber;
|
|
644
693
|
let mpanState;
|
|
645
694
|
if (ctx.isMulticast) {
|
|
@@ -693,7 +742,15 @@ let Security2CCMessageEncapsulation = class Security2CCMessageEncapsulation exte
|
|
|
693
742
|
// If the Receiver is unable to authenticate the singlecast message with the current SPAN,
|
|
694
743
|
// the Receiver SHOULD try decrypting the message with one or more of the following SPAN values,
|
|
695
744
|
// stopping when decryption is successful or the maximum number of iterations is reached.
|
|
696
|
-
|
|
745
|
+
// If the Receiver is unable to decrypt the S2 MC frame with the current MPAN, the Receiver MAY try
|
|
746
|
+
// decrypting the frame with one or more of the subsequent MPAN values, stopping when decryption is
|
|
747
|
+
// successful or the maximum number of iterations is reached.
|
|
748
|
+
const decryptAttempts = ctx.isMulticast
|
|
749
|
+
? MAX_DECRYPT_ATTEMPTS_MULTICAST
|
|
750
|
+
: ctx.groupId != undefined
|
|
751
|
+
? MAX_DECRYPT_ATTEMPTS_SC_FOLLOWUP
|
|
752
|
+
: MAX_DECRYPT_ATTEMPTS_SINGLECAST;
|
|
753
|
+
for (let i = 0; i < decryptAttempts; i++) {
|
|
697
754
|
({
|
|
698
755
|
plaintext,
|
|
699
756
|
authOK,
|
|
@@ -727,7 +784,11 @@ let Security2CCMessageEncapsulation = class Security2CCMessageEncapsulation exte
|
|
|
727
784
|
this.securityClass = decryptionSecurityClass;
|
|
728
785
|
offset = 0;
|
|
729
786
|
if (hasEncryptedExtensions)
|
|
730
|
-
parseExtensions(plaintext);
|
|
787
|
+
parseExtensions(plaintext, true);
|
|
788
|
+
// Before we can continue, check if the command must be discarded
|
|
789
|
+
if (mustDiscardCommand) {
|
|
790
|
+
throw core_1.validatePayload.fail("Invalid extension");
|
|
791
|
+
}
|
|
731
792
|
// If the MPAN extension was received, store the MPAN
|
|
732
793
|
if (!ctx.isMulticast) {
|
|
733
794
|
const mpanExtension = this.getMPANExtension();
|
|
@@ -1034,10 +1095,15 @@ let Security2CCMessageEncapsulation = class Security2CCMessageEncapsulation exte
|
|
|
1034
1095
|
&& !this.host.__internalIsMockNode) {
|
|
1035
1096
|
const nonce = spanState.currentSPAN.nonce;
|
|
1036
1097
|
spanState.currentSPAN = undefined;
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1098
|
+
// If we could decrypt this way, we're done...
|
|
1099
|
+
const result = decryptWithNonce(nonce);
|
|
1100
|
+
if (result.authOK) {
|
|
1101
|
+
return {
|
|
1102
|
+
...result,
|
|
1103
|
+
securityClass: spanState.securityClass,
|
|
1104
|
+
};
|
|
1105
|
+
}
|
|
1106
|
+
// ...otherwise, we need to try the normal way
|
|
1041
1107
|
}
|
|
1042
1108
|
else {
|
|
1043
1109
|
// forgetting the current SPAN shouldn't be necessary but better be safe than sorry
|