@matter/protocol 0.15.0-alpha.0-20250620-16e218ed3 → 0.15.0-alpha.0-20250625-4a4b1be1b
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/dist/cjs/certificate/kinds/X509Base.d.ts +1 -1
- package/dist/cjs/certificate/kinds/X509Base.d.ts.map +1 -1
- package/dist/cjs/certificate/kinds/X509Base.js +40 -14
- package/dist/cjs/certificate/kinds/X509Base.js.map +1 -1
- package/dist/cjs/dcl/DclClient.d.ts +26 -0
- package/dist/cjs/dcl/DclClient.d.ts.map +1 -0
- package/dist/cjs/dcl/DclClient.js +119 -0
- package/dist/cjs/dcl/DclClient.js.map +6 -0
- package/dist/cjs/dcl/DclRestApiTypes.d.ts +49 -0
- package/dist/cjs/dcl/DclRestApiTypes.d.ts.map +1 -0
- package/dist/cjs/dcl/DclRestApiTypes.js +22 -0
- package/dist/cjs/dcl/DclRestApiTypes.js.map +6 -0
- package/dist/cjs/dcl/index.d.ts +7 -0
- package/dist/cjs/dcl/index.d.ts.map +1 -0
- package/dist/cjs/dcl/index.js +24 -0
- package/dist/cjs/dcl/index.js.map +6 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/peer/PeerSet.js +1 -1
- package/dist/cjs/peer/PeerSet.js.map +1 -1
- package/dist/cjs/protocol/ProtocolStatusMessage.d.ts +20 -0
- package/dist/cjs/protocol/ProtocolStatusMessage.d.ts.map +1 -0
- package/dist/cjs/protocol/ProtocolStatusMessage.js +61 -0
- package/dist/cjs/protocol/ProtocolStatusMessage.js.map +6 -0
- package/dist/cjs/protocol/index.d.ts +1 -0
- package/dist/cjs/protocol/index.d.ts.map +1 -1
- package/dist/cjs/protocol/index.js +1 -0
- package/dist/cjs/protocol/index.js.map +1 -1
- package/dist/cjs/securechannel/SecureChannelMessenger.d.ts +4 -5
- package/dist/cjs/securechannel/SecureChannelMessenger.d.ts.map +1 -1
- package/dist/cjs/securechannel/SecureChannelMessenger.js +7 -8
- package/dist/cjs/securechannel/SecureChannelMessenger.js.map +1 -1
- package/dist/cjs/securechannel/SecureChannelProtocol.js +2 -2
- package/dist/cjs/securechannel/SecureChannelProtocol.js.map +1 -1
- package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.d.ts +4 -15
- package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.d.ts.map +1 -1
- package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.js +3 -21
- package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.js.map +1 -1
- package/dist/cjs/session/case/CaseClient.d.ts.map +1 -1
- package/dist/cjs/session/case/CaseClient.js +1 -1
- package/dist/cjs/session/case/CaseClient.js.map +1 -1
- package/dist/cjs/session/case/CaseServer.js +2 -2
- package/dist/cjs/session/case/CaseServer.js.map +1 -1
- package/dist/cjs/session/pase/PaseClient.js +2 -2
- package/dist/cjs/session/pase/PaseClient.js.map +1 -1
- package/dist/cjs/session/pase/PaseServer.js +1 -1
- package/dist/cjs/session/pase/PaseServer.js.map +1 -1
- package/dist/esm/certificate/kinds/X509Base.d.ts +1 -1
- package/dist/esm/certificate/kinds/X509Base.d.ts.map +1 -1
- package/dist/esm/certificate/kinds/X509Base.js +40 -14
- package/dist/esm/certificate/kinds/X509Base.js.map +1 -1
- package/dist/esm/dcl/DclClient.d.ts +26 -0
- package/dist/esm/dcl/DclClient.d.ts.map +1 -0
- package/dist/esm/dcl/DclClient.js +99 -0
- package/dist/esm/dcl/DclClient.js.map +6 -0
- package/dist/esm/dcl/DclRestApiTypes.d.ts +49 -0
- package/dist/esm/dcl/DclRestApiTypes.d.ts.map +1 -0
- package/dist/esm/dcl/DclRestApiTypes.js +6 -0
- package/dist/esm/dcl/DclRestApiTypes.js.map +6 -0
- package/dist/esm/dcl/index.d.ts +7 -0
- package/dist/esm/dcl/index.d.ts.map +1 -0
- package/dist/esm/dcl/index.js +7 -0
- package/dist/esm/dcl/index.js.map +6 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/peer/PeerSet.js +2 -2
- package/dist/esm/peer/PeerSet.js.map +1 -1
- package/dist/esm/protocol/ProtocolStatusMessage.d.ts +20 -0
- package/dist/esm/protocol/ProtocolStatusMessage.d.ts.map +1 -0
- package/dist/esm/protocol/ProtocolStatusMessage.js +41 -0
- package/dist/esm/protocol/ProtocolStatusMessage.js.map +6 -0
- package/dist/esm/protocol/index.d.ts +1 -0
- package/dist/esm/protocol/index.d.ts.map +1 -1
- package/dist/esm/protocol/index.js +1 -0
- package/dist/esm/protocol/index.js.map +1 -1
- package/dist/esm/securechannel/SecureChannelMessenger.d.ts +4 -5
- package/dist/esm/securechannel/SecureChannelMessenger.d.ts.map +1 -1
- package/dist/esm/securechannel/SecureChannelMessenger.js +8 -14
- package/dist/esm/securechannel/SecureChannelMessenger.js.map +1 -1
- package/dist/esm/securechannel/SecureChannelProtocol.js +3 -3
- package/dist/esm/securechannel/SecureChannelProtocol.js.map +1 -1
- package/dist/esm/securechannel/SecureChannelStatusMessageSchema.d.ts +4 -15
- package/dist/esm/securechannel/SecureChannelStatusMessageSchema.d.ts.map +1 -1
- package/dist/esm/securechannel/SecureChannelStatusMessageSchema.js +4 -22
- package/dist/esm/securechannel/SecureChannelStatusMessageSchema.js.map +1 -1
- package/dist/esm/session/case/CaseClient.d.ts.map +1 -1
- package/dist/esm/session/case/CaseClient.js +2 -2
- package/dist/esm/session/case/CaseClient.js.map +1 -1
- package/dist/esm/session/case/CaseServer.js +3 -3
- package/dist/esm/session/case/CaseServer.js.map +1 -1
- package/dist/esm/session/pase/PaseClient.js +3 -3
- package/dist/esm/session/pase/PaseClient.js.map +1 -1
- package/dist/esm/session/pase/PaseServer.js +2 -2
- package/dist/esm/session/pase/PaseServer.js.map +1 -1
- package/package.json +6 -6
- package/src/certificate/kinds/X509Base.ts +54 -18
- package/src/dcl/DclClient.ts +140 -0
- package/src/dcl/DclRestApiTypes.ts +55 -0
- package/src/dcl/index.ts +7 -0
- package/src/index.ts +1 -0
- package/src/peer/PeerSet.ts +2 -2
- package/src/protocol/ProtocolStatusMessage.ts +51 -0
- package/src/protocol/index.ts +1 -0
- package/src/securechannel/SecureChannelMessenger.ts +11 -18
- package/src/securechannel/SecureChannelProtocol.ts +3 -3
- package/src/securechannel/SecureChannelStatusMessageSchema.ts +5 -31
- package/src/session/case/CaseClient.ts +2 -2
- package/src/session/case/CaseServer.ts +3 -3
- package/src/session/pase/PaseClient.ts +3 -3
- package/src/session/pase/PaseServer.ts +2 -2
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { DataReader, DataWriter, Endian } from "#general";
|
|
8
|
+
import { GeneralStatusCode, Schema } from "#types";
|
|
9
|
+
|
|
10
|
+
export type ProtocolStatusMessage<T> = {
|
|
11
|
+
generalStatus: GeneralStatusCode;
|
|
12
|
+
protocolId: number;
|
|
13
|
+
protocolStatus: T;
|
|
14
|
+
protocolData?: Uint8Array;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export abstract class ProtocolStatusMessageSchema<T extends ProtocolStatusMessage<any>> extends Schema<T, Uint8Array> {
|
|
18
|
+
#protocolId: number;
|
|
19
|
+
#protocolSpecificDataAllowed: boolean;
|
|
20
|
+
|
|
21
|
+
constructor(protocolId: number, protocolSpecificDataAllowed = true) {
|
|
22
|
+
super();
|
|
23
|
+
this.#protocolId = protocolId;
|
|
24
|
+
this.#protocolSpecificDataAllowed = protocolSpecificDataAllowed;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
override encode(message: Omit<T, "protocolId">): Uint8Array {
|
|
28
|
+
return super.encode({ ...message, protocolId: this.#protocolId } as T);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
encodeInternal({ generalStatus, protocolStatus, protocolId, protocolData }: T) {
|
|
32
|
+
const writer = new DataWriter(Endian.Little);
|
|
33
|
+
writer.writeUInt16(generalStatus);
|
|
34
|
+
writer.writeUInt32(protocolId);
|
|
35
|
+
writer.writeUInt16(protocolStatus);
|
|
36
|
+
if (this.#protocolSpecificDataAllowed && protocolData !== undefined && protocolData.length > 0) {
|
|
37
|
+
writer.writeByteArray(protocolData);
|
|
38
|
+
}
|
|
39
|
+
return writer.toByteArray();
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
decodeInternal(bytes: Uint8Array) {
|
|
43
|
+
const reader = new DataReader(bytes, Endian.Little);
|
|
44
|
+
const generalStatus = reader.readUInt16();
|
|
45
|
+
const protocolId = reader.readUInt32();
|
|
46
|
+
const protocolStatus = reader.readUInt16();
|
|
47
|
+
const remainingBytes = reader.remainingBytesCount > 0 ? reader.remainingBytes : undefined;
|
|
48
|
+
|
|
49
|
+
return { generalStatus, protocolId, protocolStatus, remainingBytes } as unknown as T;
|
|
50
|
+
}
|
|
51
|
+
}
|
package/src/protocol/index.ts
CHANGED
|
@@ -5,13 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { Diagnostic, MatterError, UnexpectedDataError } from "#general";
|
|
8
|
-
import {
|
|
9
|
-
GeneralStatusCode,
|
|
10
|
-
ProtocolStatusCode,
|
|
11
|
-
SECURE_CHANNEL_PROTOCOL_ID,
|
|
12
|
-
SecureMessageType,
|
|
13
|
-
TlvSchema,
|
|
14
|
-
} from "#types";
|
|
8
|
+
import { GeneralStatusCode, SecureChannelStatusCode, SecureMessageType, TlvSchema } from "#types";
|
|
15
9
|
import { Message } from "../codec/MessageCodec.js";
|
|
16
10
|
import { ExchangeSendOptions, MessageExchange } from "../protocol/MessageExchange.js";
|
|
17
11
|
import { TlvSecureChannelStatusMessage } from "./SecureChannelStatusMessageSchema.js";
|
|
@@ -21,10 +15,10 @@ export class ChannelStatusResponseError extends MatterError {
|
|
|
21
15
|
public constructor(
|
|
22
16
|
message: string,
|
|
23
17
|
public readonly generalStatusCode: GeneralStatusCode,
|
|
24
|
-
public readonly protocolStatusCode:
|
|
18
|
+
public readonly protocolStatusCode: SecureChannelStatusCode,
|
|
25
19
|
) {
|
|
26
20
|
super(
|
|
27
|
-
`(${GeneralStatusCode[generalStatusCode]} (${generalStatusCode}) / ${
|
|
21
|
+
`(${GeneralStatusCode[generalStatusCode]} (${generalStatusCode}) / ${SecureChannelStatusCode[protocolStatusCode]} (${protocolStatusCode})) ${message}`,
|
|
28
22
|
);
|
|
29
23
|
}
|
|
30
24
|
}
|
|
@@ -125,16 +119,16 @@ export class SecureChannelMessenger {
|
|
|
125
119
|
return payload;
|
|
126
120
|
}
|
|
127
121
|
|
|
128
|
-
sendError(code:
|
|
129
|
-
return this
|
|
122
|
+
sendError(code: SecureChannelStatusCode) {
|
|
123
|
+
return this.#sendStatusReport(GeneralStatusCode.Failure, code);
|
|
130
124
|
}
|
|
131
125
|
|
|
132
126
|
sendSuccess() {
|
|
133
|
-
return this
|
|
127
|
+
return this.#sendStatusReport(GeneralStatusCode.Success, SecureChannelStatusCode.Success);
|
|
134
128
|
}
|
|
135
129
|
|
|
136
130
|
sendCloseSession() {
|
|
137
|
-
return this
|
|
131
|
+
return this.#sendStatusReport(GeneralStatusCode.Success, SecureChannelStatusCode.CloseSession, false);
|
|
138
132
|
}
|
|
139
133
|
|
|
140
134
|
getChannelName() {
|
|
@@ -145,23 +139,22 @@ export class SecureChannelMessenger {
|
|
|
145
139
|
await this.exchange.close();
|
|
146
140
|
}
|
|
147
141
|
|
|
148
|
-
|
|
142
|
+
async #sendStatusReport(
|
|
149
143
|
generalStatus: GeneralStatusCode,
|
|
150
|
-
protocolStatus:
|
|
144
|
+
protocolStatus: SecureChannelStatusCode,
|
|
151
145
|
requiresAck?: boolean,
|
|
152
146
|
) {
|
|
153
147
|
await this.exchange.send(
|
|
154
148
|
SecureMessageType.StatusReport,
|
|
155
149
|
TlvSecureChannelStatusMessage.encode({
|
|
156
150
|
generalStatus,
|
|
157
|
-
protocolId: SECURE_CHANNEL_PROTOCOL_ID,
|
|
158
151
|
protocolStatus,
|
|
159
152
|
}),
|
|
160
153
|
{
|
|
161
154
|
requiresAck,
|
|
162
155
|
logContext: {
|
|
163
156
|
generalStatus: GeneralStatusCode[generalStatus] ?? Diagnostic.hex(generalStatus),
|
|
164
|
-
protocolStatus:
|
|
157
|
+
protocolStatus: SecureChannelStatusCode[protocolStatus] ?? Diagnostic.hex(protocolStatus),
|
|
165
158
|
},
|
|
166
159
|
},
|
|
167
160
|
);
|
|
@@ -182,7 +175,7 @@ export class SecureChannelMessenger {
|
|
|
182
175
|
protocolStatus,
|
|
183
176
|
);
|
|
184
177
|
}
|
|
185
|
-
if (protocolStatus !==
|
|
178
|
+
if (protocolStatus !== SecureChannelStatusCode.Success) {
|
|
186
179
|
throw new ChannelStatusResponseError(
|
|
187
180
|
`Received general success status, but protocol status is not Success${logHint ? ` (${logHint})` : ""}`,
|
|
188
181
|
generalStatus,
|
|
@@ -10,8 +10,8 @@ import { ExchangeManager } from "#protocol/ExchangeManager.js";
|
|
|
10
10
|
import { SessionManager } from "#session/SessionManager.js";
|
|
11
11
|
import {
|
|
12
12
|
GeneralStatusCode,
|
|
13
|
-
ProtocolStatusCode,
|
|
14
13
|
SECURE_CHANNEL_PROTOCOL_ID,
|
|
14
|
+
SecureChannelStatusCode,
|
|
15
15
|
SecureMessageType,
|
|
16
16
|
StatusCode,
|
|
17
17
|
StatusResponseError,
|
|
@@ -70,7 +70,7 @@ export class StatusReportOnlySecureChannelProtocol implements ProtocolHandler {
|
|
|
70
70
|
protocolStatus,
|
|
71
71
|
);
|
|
72
72
|
}
|
|
73
|
-
if (protocolStatus !==
|
|
73
|
+
if (protocolStatus !== SecureChannelStatusCode.CloseSession) {
|
|
74
74
|
throw new ChannelStatusResponseError(
|
|
75
75
|
`Received general success status, but protocol status is not CloseSession`,
|
|
76
76
|
generalStatus,
|
|
@@ -131,7 +131,7 @@ export class SecureChannelProtocol extends StatusReportOnlySecureChannelProtocol
|
|
|
131
131
|
// Cleaner to return an error (ok for chip-tool as it seems)?
|
|
132
132
|
// Formally we should not respond at all which leads to retries and such
|
|
133
133
|
const messenger = new SecureChannelMessenger(exchange);
|
|
134
|
-
await messenger.sendError(
|
|
134
|
+
await messenger.sendError(SecureChannelStatusCode.InvalidParam);
|
|
135
135
|
await messenger.close(); // also closes exchange
|
|
136
136
|
return;
|
|
137
137
|
}
|
|
@@ -4,37 +4,11 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { ProtocolStatusMessage, ProtocolStatusMessageSchema } from "#protocol/ProtocolStatusMessage.js";
|
|
8
|
+
import { SECURE_CHANNEL_PROTOCOL_ID, SecureChannelStatusCode } from "#types";
|
|
9
9
|
|
|
10
|
-
export type
|
|
11
|
-
generalStatus: GeneralStatusCode;
|
|
12
|
-
protocolId: number;
|
|
13
|
-
protocolStatus: ProtocolStatusCode;
|
|
14
|
-
protocolData?: Uint8Array;
|
|
15
|
-
};
|
|
10
|
+
export type SecureChannelStatusMessage = ProtocolStatusMessage<SecureChannelStatusCode>;
|
|
16
11
|
|
|
17
|
-
export class SecureChannelStatusMessageSchema extends
|
|
18
|
-
encodeInternal({ generalStatus, protocolId, protocolStatus, protocolData }: StatusMessage) {
|
|
19
|
-
const writer = new DataWriter(Endian.Little);
|
|
20
|
-
writer.writeUInt16(generalStatus);
|
|
21
|
-
writer.writeUInt32(protocolId);
|
|
22
|
-
writer.writeUInt16(protocolStatus);
|
|
23
|
-
if (protocolData !== undefined && protocolData.length > 0) {
|
|
24
|
-
writer.writeByteArray(protocolData);
|
|
25
|
-
}
|
|
26
|
-
return writer.toByteArray();
|
|
27
|
-
}
|
|
12
|
+
export class SecureChannelStatusMessageSchema extends ProtocolStatusMessageSchema<SecureChannelStatusMessage> {}
|
|
28
13
|
|
|
29
|
-
|
|
30
|
-
const reader = new DataReader(bytes, Endian.Little);
|
|
31
|
-
const generalStatus = reader.readUInt16();
|
|
32
|
-
const protocolId = reader.readUInt32();
|
|
33
|
-
const protocolStatus = reader.readUInt16();
|
|
34
|
-
const remainingBytes = reader.remainingBytesCount > 0 ? reader.remainingBytes : undefined;
|
|
35
|
-
|
|
36
|
-
return { generalStatus, protocolId, protocolStatus, remainingBytes };
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export const TlvSecureChannelStatusMessage = new SecureChannelStatusMessageSchema();
|
|
14
|
+
export const TlvSecureChannelStatusMessage = new SecureChannelStatusMessageSchema(SECURE_CHANNEL_PROTOCOL_ID);
|
|
@@ -8,7 +8,7 @@ import { Icac, Noc } from "#certificate/index.js";
|
|
|
8
8
|
import { Bytes, Logger, PublicKey, UnexpectedDataError } from "#general";
|
|
9
9
|
import { ChannelStatusResponseError } from "#securechannel/index.js";
|
|
10
10
|
import { SessionManager } from "#session/SessionManager.js";
|
|
11
|
-
import { NodeId,
|
|
11
|
+
import { NodeId, SecureChannelStatusCode } from "#types";
|
|
12
12
|
import { Fabric } from "../../fabric/Fabric.js";
|
|
13
13
|
import { MessageExchange } from "../../protocol/MessageExchange.js";
|
|
14
14
|
import {
|
|
@@ -42,7 +42,7 @@ export class CaseClient {
|
|
|
42
42
|
return await this.#doPair(messenger, exchange, fabric, peerNodeId);
|
|
43
43
|
} catch (error) {
|
|
44
44
|
if (!(error instanceof ChannelStatusResponseError)) {
|
|
45
|
-
await messenger.sendError(
|
|
45
|
+
await messenger.sendError(SecureChannelStatusCode.InvalidParam);
|
|
46
46
|
}
|
|
47
47
|
throw error;
|
|
48
48
|
}
|
|
@@ -8,7 +8,7 @@ import { Noc } from "#certificate/index.js";
|
|
|
8
8
|
import { Bytes, Crypto, CryptoDecryptError, Logger, PublicKey, UnexpectedDataError } from "#general";
|
|
9
9
|
import { TlvSessionParameters } from "#session/pase/PaseMessages.js";
|
|
10
10
|
import { ResumptionRecord, SessionManager } from "#session/SessionManager.js";
|
|
11
|
-
import { NodeId,
|
|
11
|
+
import { NodeId, SECURE_CHANNEL_PROTOCOL_ID, SecureChannelStatusCode, TypeFromSchema } from "#types";
|
|
12
12
|
import { FabricManager, FabricNotFoundError } from "../../fabric/FabricManager.js";
|
|
13
13
|
import { MessageExchange } from "../../protocol/MessageExchange.js";
|
|
14
14
|
import { ProtocolHandler } from "../../protocol/ProtocolHandler.js";
|
|
@@ -51,11 +51,11 @@ export class CaseServer implements ProtocolHandler {
|
|
|
51
51
|
logger.error("An error occurred during the commissioning", error);
|
|
52
52
|
|
|
53
53
|
if (error instanceof FabricNotFoundError) {
|
|
54
|
-
await messenger.sendError(
|
|
54
|
+
await messenger.sendError(SecureChannelStatusCode.NoSharedTrustRoots);
|
|
55
55
|
}
|
|
56
56
|
// If we received a ChannelStatusResponseError we do not need to send one back, so just cancel pairing
|
|
57
57
|
else if (!(error instanceof ChannelStatusResponseError)) {
|
|
58
|
-
await messenger.sendError(
|
|
58
|
+
await messenger.sendError(SecureChannelStatusCode.InvalidParam);
|
|
59
59
|
}
|
|
60
60
|
} finally {
|
|
61
61
|
// Destroy the unsecure session used to establish the secure Case session
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
import { Bytes, Crypto, ec, Logger, PbkdfParameters, Spake2p, UnexpectedDataError } from "#general";
|
|
8
8
|
import { SessionManager } from "#session/SessionManager.js";
|
|
9
|
-
import { CommissioningOptions, NodeId,
|
|
9
|
+
import { CommissioningOptions, NodeId, SecureChannelStatusCode } from "#types";
|
|
10
10
|
import { MessageExchange } from "../../protocol/MessageExchange.js";
|
|
11
11
|
import { SessionParameters } from "../Session.js";
|
|
12
12
|
import { DEFAULT_PASSCODE_ID, PaseClientMessenger, SPAKE_CONTEXT } from "./PaseMessenger.js";
|
|
@@ -70,7 +70,7 @@ export class PaseClient {
|
|
|
70
70
|
if (pbkdfParameters === undefined) {
|
|
71
71
|
// Sending this error is not defined in the specs and should normally never happen, but better inform device
|
|
72
72
|
// that we cancel the pairing
|
|
73
|
-
await messenger.sendError(
|
|
73
|
+
await messenger.sendError(SecureChannelStatusCode.InvalidParam);
|
|
74
74
|
throw new UnexpectedDataError("Missing requested PbkdfParameters in the response. Commissioning failed.");
|
|
75
75
|
}
|
|
76
76
|
|
|
@@ -94,7 +94,7 @@ export class PaseClient {
|
|
|
94
94
|
const { y: Y, verifier } = await messenger.readPasePake2();
|
|
95
95
|
const { Ke, hAY, hBX } = await spake2p.computeSecretAndVerifiersFromY(w1, X, Y);
|
|
96
96
|
if (!Bytes.areEqual(verifier, hBX)) {
|
|
97
|
-
await messenger.sendError(
|
|
97
|
+
await messenger.sendError(SecureChannelStatusCode.InvalidParam);
|
|
98
98
|
throw new UnexpectedDataError(
|
|
99
99
|
"Received incorrect key confirmation from the receiver. Commissioning failed.",
|
|
100
100
|
);
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
UnexpectedDataError,
|
|
18
18
|
} from "#general";
|
|
19
19
|
import { SessionManager } from "#session/SessionManager.js";
|
|
20
|
-
import { NodeId,
|
|
20
|
+
import { NodeId, SECURE_CHANNEL_PROTOCOL_ID, SecureChannelStatusCode } from "#types";
|
|
21
21
|
import { MessageExchange } from "../../protocol/MessageExchange.js";
|
|
22
22
|
import { ProtocolHandler } from "../../protocol/ProtocolHandler.js";
|
|
23
23
|
import { ChannelStatusResponseError } from "../../securechannel/SecureChannelMessenger.js";
|
|
@@ -186,7 +186,7 @@ export class PaseServer implements ProtocolHandler {
|
|
|
186
186
|
this.#pairingTimer = undefined;
|
|
187
187
|
|
|
188
188
|
if (sendError) {
|
|
189
|
-
await messenger.sendError(
|
|
189
|
+
await messenger.sendError(SecureChannelStatusCode.InvalidParam);
|
|
190
190
|
}
|
|
191
191
|
await messenger.close();
|
|
192
192
|
}
|