@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.
Files changed (114) hide show
  1. package/dist/cjs/certificate/kinds/X509Base.d.ts +1 -1
  2. package/dist/cjs/certificate/kinds/X509Base.d.ts.map +1 -1
  3. package/dist/cjs/certificate/kinds/X509Base.js +40 -14
  4. package/dist/cjs/certificate/kinds/X509Base.js.map +1 -1
  5. package/dist/cjs/dcl/DclClient.d.ts +26 -0
  6. package/dist/cjs/dcl/DclClient.d.ts.map +1 -0
  7. package/dist/cjs/dcl/DclClient.js +119 -0
  8. package/dist/cjs/dcl/DclClient.js.map +6 -0
  9. package/dist/cjs/dcl/DclRestApiTypes.d.ts +49 -0
  10. package/dist/cjs/dcl/DclRestApiTypes.d.ts.map +1 -0
  11. package/dist/cjs/dcl/DclRestApiTypes.js +22 -0
  12. package/dist/cjs/dcl/DclRestApiTypes.js.map +6 -0
  13. package/dist/cjs/dcl/index.d.ts +7 -0
  14. package/dist/cjs/dcl/index.d.ts.map +1 -0
  15. package/dist/cjs/dcl/index.js +24 -0
  16. package/dist/cjs/dcl/index.js.map +6 -0
  17. package/dist/cjs/index.d.ts +1 -0
  18. package/dist/cjs/index.d.ts.map +1 -1
  19. package/dist/cjs/index.js +1 -0
  20. package/dist/cjs/index.js.map +1 -1
  21. package/dist/cjs/peer/PeerSet.js +1 -1
  22. package/dist/cjs/peer/PeerSet.js.map +1 -1
  23. package/dist/cjs/protocol/ProtocolStatusMessage.d.ts +20 -0
  24. package/dist/cjs/protocol/ProtocolStatusMessage.d.ts.map +1 -0
  25. package/dist/cjs/protocol/ProtocolStatusMessage.js +61 -0
  26. package/dist/cjs/protocol/ProtocolStatusMessage.js.map +6 -0
  27. package/dist/cjs/protocol/index.d.ts +1 -0
  28. package/dist/cjs/protocol/index.d.ts.map +1 -1
  29. package/dist/cjs/protocol/index.js +1 -0
  30. package/dist/cjs/protocol/index.js.map +1 -1
  31. package/dist/cjs/securechannel/SecureChannelMessenger.d.ts +4 -5
  32. package/dist/cjs/securechannel/SecureChannelMessenger.d.ts.map +1 -1
  33. package/dist/cjs/securechannel/SecureChannelMessenger.js +7 -8
  34. package/dist/cjs/securechannel/SecureChannelMessenger.js.map +1 -1
  35. package/dist/cjs/securechannel/SecureChannelProtocol.js +2 -2
  36. package/dist/cjs/securechannel/SecureChannelProtocol.js.map +1 -1
  37. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.d.ts +4 -15
  38. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.d.ts.map +1 -1
  39. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.js +3 -21
  40. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.js.map +1 -1
  41. package/dist/cjs/session/case/CaseClient.d.ts.map +1 -1
  42. package/dist/cjs/session/case/CaseClient.js +1 -1
  43. package/dist/cjs/session/case/CaseClient.js.map +1 -1
  44. package/dist/cjs/session/case/CaseServer.js +2 -2
  45. package/dist/cjs/session/case/CaseServer.js.map +1 -1
  46. package/dist/cjs/session/pase/PaseClient.js +2 -2
  47. package/dist/cjs/session/pase/PaseClient.js.map +1 -1
  48. package/dist/cjs/session/pase/PaseServer.js +1 -1
  49. package/dist/cjs/session/pase/PaseServer.js.map +1 -1
  50. package/dist/esm/certificate/kinds/X509Base.d.ts +1 -1
  51. package/dist/esm/certificate/kinds/X509Base.d.ts.map +1 -1
  52. package/dist/esm/certificate/kinds/X509Base.js +40 -14
  53. package/dist/esm/certificate/kinds/X509Base.js.map +1 -1
  54. package/dist/esm/dcl/DclClient.d.ts +26 -0
  55. package/dist/esm/dcl/DclClient.d.ts.map +1 -0
  56. package/dist/esm/dcl/DclClient.js +99 -0
  57. package/dist/esm/dcl/DclClient.js.map +6 -0
  58. package/dist/esm/dcl/DclRestApiTypes.d.ts +49 -0
  59. package/dist/esm/dcl/DclRestApiTypes.d.ts.map +1 -0
  60. package/dist/esm/dcl/DclRestApiTypes.js +6 -0
  61. package/dist/esm/dcl/DclRestApiTypes.js.map +6 -0
  62. package/dist/esm/dcl/index.d.ts +7 -0
  63. package/dist/esm/dcl/index.d.ts.map +1 -0
  64. package/dist/esm/dcl/index.js +7 -0
  65. package/dist/esm/dcl/index.js.map +6 -0
  66. package/dist/esm/index.d.ts +1 -0
  67. package/dist/esm/index.d.ts.map +1 -1
  68. package/dist/esm/index.js +1 -0
  69. package/dist/esm/index.js.map +1 -1
  70. package/dist/esm/peer/PeerSet.js +2 -2
  71. package/dist/esm/peer/PeerSet.js.map +1 -1
  72. package/dist/esm/protocol/ProtocolStatusMessage.d.ts +20 -0
  73. package/dist/esm/protocol/ProtocolStatusMessage.d.ts.map +1 -0
  74. package/dist/esm/protocol/ProtocolStatusMessage.js +41 -0
  75. package/dist/esm/protocol/ProtocolStatusMessage.js.map +6 -0
  76. package/dist/esm/protocol/index.d.ts +1 -0
  77. package/dist/esm/protocol/index.d.ts.map +1 -1
  78. package/dist/esm/protocol/index.js +1 -0
  79. package/dist/esm/protocol/index.js.map +1 -1
  80. package/dist/esm/securechannel/SecureChannelMessenger.d.ts +4 -5
  81. package/dist/esm/securechannel/SecureChannelMessenger.d.ts.map +1 -1
  82. package/dist/esm/securechannel/SecureChannelMessenger.js +8 -14
  83. package/dist/esm/securechannel/SecureChannelMessenger.js.map +1 -1
  84. package/dist/esm/securechannel/SecureChannelProtocol.js +3 -3
  85. package/dist/esm/securechannel/SecureChannelProtocol.js.map +1 -1
  86. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.d.ts +4 -15
  87. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.d.ts.map +1 -1
  88. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.js +4 -22
  89. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.js.map +1 -1
  90. package/dist/esm/session/case/CaseClient.d.ts.map +1 -1
  91. package/dist/esm/session/case/CaseClient.js +2 -2
  92. package/dist/esm/session/case/CaseClient.js.map +1 -1
  93. package/dist/esm/session/case/CaseServer.js +3 -3
  94. package/dist/esm/session/case/CaseServer.js.map +1 -1
  95. package/dist/esm/session/pase/PaseClient.js +3 -3
  96. package/dist/esm/session/pase/PaseClient.js.map +1 -1
  97. package/dist/esm/session/pase/PaseServer.js +2 -2
  98. package/dist/esm/session/pase/PaseServer.js.map +1 -1
  99. package/package.json +6 -6
  100. package/src/certificate/kinds/X509Base.ts +54 -18
  101. package/src/dcl/DclClient.ts +140 -0
  102. package/src/dcl/DclRestApiTypes.ts +55 -0
  103. package/src/dcl/index.ts +7 -0
  104. package/src/index.ts +1 -0
  105. package/src/peer/PeerSet.ts +2 -2
  106. package/src/protocol/ProtocolStatusMessage.ts +51 -0
  107. package/src/protocol/index.ts +1 -0
  108. package/src/securechannel/SecureChannelMessenger.ts +11 -18
  109. package/src/securechannel/SecureChannelProtocol.ts +3 -3
  110. package/src/securechannel/SecureChannelStatusMessageSchema.ts +5 -31
  111. package/src/session/case/CaseClient.ts +2 -2
  112. package/src/session/case/CaseServer.ts +3 -3
  113. package/src/session/pase/PaseClient.ts +3 -3
  114. 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
+ }
@@ -13,3 +13,4 @@ export * from "./MessageCounter.js";
13
13
  export * from "./MessageExchange.js";
14
14
  export * from "./MessageReceptionState.js";
15
15
  export * from "./ProtocolHandler.js";
16
+ export * from "./ProtocolStatusMessage.js";
@@ -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: ProtocolStatusCode,
18
+ public readonly protocolStatusCode: SecureChannelStatusCode,
25
19
  ) {
26
20
  super(
27
- `(${GeneralStatusCode[generalStatusCode]} (${generalStatusCode}) / ${ProtocolStatusCode[protocolStatusCode]} (${protocolStatusCode})) ${message}`,
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: ProtocolStatusCode) {
129
- return this.sendStatusReport(GeneralStatusCode.Failure, code);
122
+ sendError(code: SecureChannelStatusCode) {
123
+ return this.#sendStatusReport(GeneralStatusCode.Failure, code);
130
124
  }
131
125
 
132
126
  sendSuccess() {
133
- return this.sendStatusReport(GeneralStatusCode.Success, ProtocolStatusCode.Success);
127
+ return this.#sendStatusReport(GeneralStatusCode.Success, SecureChannelStatusCode.Success);
134
128
  }
135
129
 
136
130
  sendCloseSession() {
137
- return this.sendStatusReport(GeneralStatusCode.Success, ProtocolStatusCode.CloseSession, false);
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
- private async sendStatusReport(
142
+ async #sendStatusReport(
149
143
  generalStatus: GeneralStatusCode,
150
- protocolStatus: ProtocolStatusCode,
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: ProtocolStatusCode[protocolStatus] ?? Diagnostic.hex(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 !== ProtocolStatusCode.Success) {
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 !== ProtocolStatusCode.CloseSession) {
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(ProtocolStatusCode.InvalidParam);
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 { DataReader, DataWriter, Endian } from "#general";
8
- import { GeneralStatusCode, ProtocolStatusCode, Schema } from "#types";
7
+ import { ProtocolStatusMessage, ProtocolStatusMessageSchema } from "#protocol/ProtocolStatusMessage.js";
8
+ import { SECURE_CHANNEL_PROTOCOL_ID, SecureChannelStatusCode } from "#types";
9
9
 
10
- export type StatusMessage = {
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 Schema<StatusMessage, Uint8Array> {
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
- decodeInternal(bytes: Uint8Array) {
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, ProtocolStatusCode } from "#types";
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(ProtocolStatusCode.InvalidParam);
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, ProtocolStatusCode, SECURE_CHANNEL_PROTOCOL_ID, TypeFromSchema } from "#types";
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(ProtocolStatusCode.NoSharedTrustRoots);
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(ProtocolStatusCode.InvalidParam);
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, ProtocolStatusCode } from "#types";
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(ProtocolStatusCode.InvalidParam);
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(ProtocolStatusCode.InvalidParam);
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, ProtocolStatusCode, SECURE_CHANNEL_PROTOCOL_ID } from "#types";
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(ProtocolStatusCode.InvalidParam);
189
+ await messenger.sendError(SecureChannelStatusCode.InvalidParam);
190
190
  }
191
191
  await messenger.close();
192
192
  }