@matter/protocol 0.14.0-alpha.0-20250525-d6ada0d45 → 0.14.0-alpha.0-20250527-b2a4cc12b
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/fabric/FabricManager.d.ts.map +1 -1
- package/dist/cjs/fabric/FabricManager.js +1 -1
- package/dist/cjs/fabric/FabricManager.js.map +1 -1
- package/dist/cjs/session/case/CaseServer.d.ts +0 -1
- package/dist/cjs/session/case/CaseServer.d.ts.map +1 -1
- package/dist/cjs/session/case/CaseServer.js +205 -163
- package/dist/cjs/session/case/CaseServer.js.map +2 -2
- package/dist/esm/fabric/FabricManager.d.ts.map +1 -1
- package/dist/esm/fabric/FabricManager.js +1 -2
- package/dist/esm/fabric/FabricManager.js.map +1 -1
- package/dist/esm/session/case/CaseServer.d.ts +0 -1
- package/dist/esm/session/case/CaseServer.d.ts.map +1 -1
- package/dist/esm/session/case/CaseServer.js +206 -164
- package/dist/esm/session/case/CaseServer.js.map +2 -2
- package/package.json +6 -6
- package/src/fabric/FabricManager.ts +1 -2
- package/src/session/case/CaseServer.ts +255 -192
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FabricManager.d.ts","sourceRoot":"","sources":["../../../src/fabric/FabricManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEH,YAAY,EACZ,WAAW,EACX,aAAa,
|
|
1
|
+
{"version":3,"file":"FabricManager.d.ts","sourceRoot":"","sources":["../../../src/fabric/FabricManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEH,YAAY,EACZ,WAAW,EACX,aAAa,EAEb,GAAG,EACH,WAAW,EAEX,YAAY,EACZ,UAAU,EACV,cAAc,EAEjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,qDAAqD;AACrD,qBAAa,mBAAoB,SAAQ,WAAW;CAAG;AACvD,qBAAa,oBAAqB,SAAQ,WAAW;CAAG;AAExD,oBAAY,YAAY;IACpB,KAAK,IAAA;IACL,OAAO,IAAA;IACP,OAAO,IAAA;CACV;AAED,qBAAa,aAAa;;gBAaV,OAAO,CAAC,EAAE,cAAc;IA2BpC,IAAI,YAAY,gCAEf;IAEK,CAAC,YAAY,CAAC,SAAS,CAAC;IAI9B,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAM9C,IAAI,MAAM;;;;;MAET;IAEK,KAAK;IAOX,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW;IAOtC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW;IAWtC,mBAAmB;IAanB,cAAc,IAAI,YAAY,CAAC,IAAI,CAAC;IAmBpC,SAAS,CAAC,MAAM,EAAE,MAAM;IAyBlB,YAAY,CAAC,WAAW,EAAE,WAAW;IAa3C,CAAC,MAAM,CAAC,QAAQ,CAAC;IAMjB,IAAI,OAAO,aAIV;IAED,IAAI,MAAM,WAET;IAED,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO;IAI3C,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC;IAIlC,2BAA2B,CAAC,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU;IAYxF,aAAa,CAAC,OAAO,EAAE,GAAG;IAW1B,WAAW,CAAC,KAAK,EAAE,WAAW;IAIxB,YAAY,CAAC,MAAM,EAAE,MAAM;IAc3B,YAAY,CAAC,WAAW,EAAE,WAAW;CAS9C"}
|
|
@@ -196,7 +196,7 @@ class FabricManager {
|
|
|
196
196
|
if (!import_general.Bytes.areEqual(candidateDestinationId, destinationId)) continue;
|
|
197
197
|
return fabric;
|
|
198
198
|
}
|
|
199
|
-
throw new
|
|
199
|
+
throw new FabricNotFoundError();
|
|
200
200
|
}
|
|
201
201
|
findByKeypair(keypair) {
|
|
202
202
|
this.#construction.assert();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/fabric/FabricManager.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAaO;AAEP,mBAA4B;AAC5B,oBAAuB;AAtBvB;AAAA;AAAA;AAAA;AAAA;AAyBO,MAAM,4BAA4B,2BAAY;AAAC;AAC/C,MAAM,6BAA6B,2BAAY;AAAC;AAEhD,IAAK,eAAL,kBAAKA,kBAAL;AACH,EAAAA,4BAAA;AACA,EAAAA,4BAAA;AACA,EAAAA,4BAAA;AAHQ,SAAAA;AAAA,GAAA;AAML,MAAM,cAAc;AAAA,EACvB,mBAAmB;AAAA,EACV,WAAW,oBAAI,IAAyB;AAAA,EACjD,sBAAsB;AAAA,EACtB;AAAA,EACA,UAAU;AAAA,IACN,WAAO,2BAA6B;AAAA,IACpC,aAAS,2BAA6B;AAAA,IACtC,aAAS,2BAA6B;AAAA,IACtC,oBAAgB,2BAAe;AAAA,EACnC;AAAA,EACA;AAAA,EAEA,YAAY,SAA0B;AAClC,SAAK,WAAW;AAEhB,QAAI;AACJ,QAAI,KAAK,aAAa,QAAW;AAC7B,kBAAY,MAAM;AAAA,MAAC;AAAA,IACvB,OAAO;AACH,kBAAY,YAAY;AACpB,YAAI,KAAK,aAAa,QAAW;AAE7B;AAAA,QACJ;AAEA,cAAM,UAAU,MAAM,KAAK,SAAS,IAAqB,WAAW,CAAC,CAAC;AACtE,mBAAW,gBAAgB,SAAS;AAChC,eAAK,WAAW,IAAI,qBAAO,YAAY,CAAC;AAAA,QAC5C;AAEA,aAAK,mBAAmB,MAAM,KAAK,SAAS,IAAI,mBAAmB,KAAK,gBAAgB;AAExF,aAAK,sBAAsB;AAAA,MAC/B;AAAA,IACJ;AAEA,SAAK,oBAAgB,6BAAa,MAAM,SAAS;AAAA,EACrD;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,OAAO,4BAAa,SAAS,IAAI;AAC7B,UAAM,KAAK;AAAA,EACf;AAAA,EAEA,QAAQ,6BAAc,MAAM,EAAE,KAAkB;AAC5C,UAAM,WAAW,IAAI,cAAc,IAAI,IAAI,6BAAc,EAAE,cAAc,SAAS,CAAC;AACnF,QAAI,IAAI,eAAe,QAAQ;AAC/B,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,QAAQ;AACV,UAAM,KAAK;AACX,SAAK,mBAAmB;AACxB,SAAK,SAAS,MAAM;AACpB,UAAM,KAAK,UAAU,MAAM;AAAA,EAC/B;AAAA,EAEA,IAAI,SAAoC;AACpC,QAAI,OAAO,YAAY,UAAU;AAC7B,gBAAU,QAAQ;AAAA,IACtB;AACA,WAAO,KAAK,SAAS,IAAI,OAAO;AAAA,EACpC;AAAA,EAEA,IAAI,SAAoC;AACpC,QAAI,OAAO,YAAY,UAAU;AAC7B,gBAAU,QAAQ;AAAA,IACtB;AACA,UAAM,SAAS,KAAK,SAAS,IAAI,OAAO;AACxC,QAAI,WAAW,QAAW;AACtB,YAAM,IAAI,oBAAoB,0CAA0C,OAAO,EAAE;AAAA,IACrF;AACA,WAAO;AAAA,EACX;AAAA,EAEA,sBAAsB;AAClB,SAAK,cAAc,OAAO;AAE1B,aAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AAC1B,YAAM,cAAc,KAAK;AACzB,UAAI,KAAK,mBAAmB,IAAK,MAAK,mBAAmB;AACzD,UAAI,CAAC,KAAK,SAAS,QAAI,0BAAY,WAAW,CAAC,GAAG;AAC9C,mBAAO,0BAAY,WAAW;AAAA,MAClC;AAAA,IACJ;AACA,UAAM,IAAI,qBAAqB,iCAAiC;AAAA,EACpE;AAAA,EAEA,iBAAqC;AACjC,QAAI,KAAK,aAAa,QAAW;AAC7B,YAAM,IAAI;AAAA,QACN;AAAA,MACJ;AAAA,IACJ;AAEA,SAAK,cAAc,OAAO;AAE1B,UAAM,cAAc,KAAK,SAAS;AAAA,MAC9B;AAAA,MACA,MAAM,KAAK,KAAK,SAAS,OAAO,CAAC,EAAE,IAAI,YAAU,OAAO,MAAM;AAAA,IAClE;AACA,QAAI,4BAAa,GAAG,WAAW,GAAG;AAC9B,aAAO,YAAY,KAAK,MAAM,KAAK,SAAU,IAAI,mBAAmB,KAAK,gBAAgB,CAAC;AAAA,IAC9F;AACA,WAAO,KAAK,SAAS,IAAI,mBAAmB,KAAK,gBAAgB;AAAA,EACrE;AAAA,EAEA,UAAU,QAAgB;AACtB,SAAK,cAAc,OAAO;AAC1B,SAAK,WAAW,MAAM;AAAA,EAC1B;AAAA,EAEA,WAAW,QAAgB;AACvB,UAAM,EAAE,YAAY,IAAI;AACxB,QAAI,KAAK,SAAS,IAAI,WAAW,GAAG;AAChC,YAAM,IAAI,+BAAgB,qBAAqB,WAAW,kBAAkB;AAAA,IAChF;AACA,SAAK,SAAS,IAAI,aAAa,MAAM;AACrC,WAAO,kBAAkB,YAAY,KAAK,aAAa,WAAW,CAAC;AACnE,WAAO,kBAAkB,CAAC,WAAW,SAAS;AAC1C,YAAM,gBAAgB,KAAK,eAAe;AAC1C,aAAO,4BAAa,KAAK,eAAe,MAAM;AAC1C,YAAI,UAAU;AACV,eAAK,QAAQ,QAAQ,KAAK,MAAM;AAAA,QACpC;AAAA,MACJ,CAAC;AAAA,IACL;AACA,QAAI,KAAK,qBAAqB;AAC1B,WAAK,QAAQ,MAAM,KAAK,MAAM;AAAA,IAClC;AAAA,EACJ;AAAA,EAEA,MAAM,aAAa,aAA0B;AACzC,UAAM,KAAK;AAEX,UAAM,SAAS,KAAK,SAAS,IAAI,WAAW;AAC5C,QAAI,WAAW;AACX,YAAM,IAAI;AAAA,QACN,qBAAqB,WAAW;AAAA,MACpC;AACJ,SAAK,SAAS,OAAO,WAAW;AAChC,UAAM,KAAK,eAAe;AAC1B,SAAK,QAAQ,QAAQ,KAAK,MAAM;AAAA,EACpC;AAAA,EAEA,CAAC,OAAO,QAAQ,IAAI;AAChB,SAAK,cAAc,OAAO;AAE1B,WAAO,KAAK,SAAS,OAAO;AAAA,EAChC;AAAA,EAEA,IAAI,UAAU;AACV,SAAK,cAAc,OAAO;AAE1B,WAAO,MAAM,KAAK,KAAK,SAAS,OAAO,CAAC;AAAA,EAC5C;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA,EAEA,KAAK,WAAwC;AACzC,WAAO,KAAK,QAAQ,KAAK,SAAS;AAAA,EACtC;AAAA,EAEA,IAAO,YAAmC;AACtC,WAAO,KAAK,QAAQ,IAAI,UAAU;AAAA,EACtC;AAAA,EAEA,MAAM,4BAA4B,eAA2B,iBAA6B;AACtF,SAAK,cAAc,OAAO;AAE1B,eAAW,UAAU,KAAK,SAAS,OAAO,GAAG;AACzC,YAAM,yBAAyB,MAAM,OAAO,iBAAiB,OAAO,QAAQ,eAAe;AAC3F,UAAI,CAAC,qBAAM,SAAS,wBAAwB,aAAa,EAAG;AAC5D,aAAO;AAAA,IACX;AAEA,UAAM,IAAI,oBAAoB;AAAA,EAClC;AAAA,EAEA,cAAc,SAAc;AACxB,SAAK,cAAc,OAAO;AAE1B,eAAW,UAAU,KAAK,SAAS,OAAO,GAAG;AACzC,UAAI,OAAO,eAAe,OAAO,GAAG;AAChC,eAAO;AAAA,MACX;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEA,YAAY,OAAoB;AAC5B,WAAO,MAAM,KAAK,KAAK,SAAS,OAAO,CAAC,EAAE,KAAK,YAAU,OAAO,gBAAgB,KAAK;AAAA,EACzF;AAAA,EAEA,MAAM,aAAa,QAAgB;AAC/B,UAAM,KAAK;AAEX,UAAM,EAAE,YAAY,IAAI;AACxB,QAAI,CAAC,KAAK,SAAS,IAAI,WAAW,GAAG;AACjC,YAAM,IAAI;AAAA,QACN,qBAAqB,WAAW;AAAA,MACpC;AAAA,IACJ;AACA,SAAK,SAAS,IAAI,aAAa,MAAM;AACrC,UAAM,KAAK,eAAe;AAC1B,SAAK,QAAQ,QAAQ,KAAK,MAAM;AAAA,EACpC;AAAA,EAEA,MAAM,aAAa,aAA0B;AACzC,UAAM,KAAK;AAEX,UAAM,SAAS,KAAK,SAAS,IAAI,WAAW;AAC5C,QAAI,WAAW,QAAW;AACtB,YAAM,IAAI,+BAAgB,qBAAqB,WAAW,4BAA4B;AAAA,IAC1F;AACA,UAAM,OAAO,OAAO;AAAA,EACxB;AACJ;",
|
|
5
5
|
"names": ["FabricAction"]
|
|
6
6
|
}
|
|
@@ -13,7 +13,6 @@ export declare class CaseServer implements ProtocolHandler {
|
|
|
13
13
|
readonly requiresSecureSession = false;
|
|
14
14
|
constructor(sessions: SessionManager, fabrics: FabricManager);
|
|
15
15
|
onNewExchange(exchange: MessageExchange): Promise<void>;
|
|
16
|
-
private handleSigma1;
|
|
17
16
|
close(): Promise<void>;
|
|
18
17
|
}
|
|
19
18
|
//# sourceMappingURL=CaseServer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseServer.d.ts","sourceRoot":"","sources":["../../../../src/session/case/CaseServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"CaseServer.d.ts","sourceRoot":"","sources":["../../../../src/session/case/CaseServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAoB,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG9E,OAAO,EAAE,aAAa,EAAuB,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAoBpE,qBAAa,UAAW,YAAW,eAAe;;IAC9C,QAAQ,CAAC,EAAE,KAA8B;IACzC,QAAQ,CAAC,qBAAqB,SAAS;gBAK3B,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa;IAKtD,aAAa,CAAC,QAAQ,EAAE,eAAe;IAwPvC,KAAK;CAGd"}
|
|
@@ -46,7 +46,7 @@ class CaseServer {
|
|
|
46
46
|
async onNewExchange(exchange) {
|
|
47
47
|
const messenger = new import_CaseMessenger.CaseServerMessenger(exchange);
|
|
48
48
|
try {
|
|
49
|
-
await this
|
|
49
|
+
await this.#handleSigma1(messenger);
|
|
50
50
|
} catch (error) {
|
|
51
51
|
logger.error("An error occurred during the commissioning", error);
|
|
52
52
|
if (error instanceof import_FabricManager.FabricNotFoundError) {
|
|
@@ -58,177 +58,219 @@ class CaseServer {
|
|
|
58
58
|
await exchange.session.destroy();
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
-
async handleSigma1(messenger) {
|
|
61
|
+
async #handleSigma1(messenger) {
|
|
62
62
|
logger.info(`Received pairing request from ${messenger.getChannelName()}`);
|
|
63
|
-
const responderRandom = import_general.Crypto.getRandom();
|
|
64
63
|
const { sigma1Bytes, sigma1 } = await messenger.readSigma1();
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
caseAuthenticatedTags
|
|
119
|
-
);
|
|
120
|
-
resumptionRecord.resumptionId = resumptionId;
|
|
121
|
-
await messenger.waitForSuccess("Sigma2Resume-Success");
|
|
122
|
-
await messenger.close();
|
|
123
|
-
await this.#sessions.saveResumptionRecord(resumptionRecord);
|
|
124
|
-
} else if (peerResumptionId === void 0 && peerResumeMic === void 0 || peerResumptionId !== void 0 && peerResumeMic !== void 0 && resumptionRecord === void 0) {
|
|
125
|
-
const fabric = await this.#fabrics.findFabricFromDestinationId(destinationId, peerRandom);
|
|
126
|
-
const { operationalCert: nodeOpCert, intermediateCACert, operationalIdentityProtectionKey } = fabric;
|
|
127
|
-
const { publicKey: responderEcdhPublicKey, sharedSecret } = await import_general.Crypto.ecdhGeneratePublicKeyAndSecret(peerEcdhPublicKey);
|
|
128
|
-
const sigma2Salt = import_general.Bytes.concat(
|
|
129
|
-
operationalIdentityProtectionKey,
|
|
130
|
-
responderRandom,
|
|
131
|
-
responderEcdhPublicKey,
|
|
132
|
-
await import_general.Crypto.hash(sigma1Bytes)
|
|
133
|
-
);
|
|
134
|
-
const sigma2Key = await import_general.Crypto.hkdf(sharedSecret, sigma2Salt, import_CaseMessages.KDFSR2_INFO);
|
|
135
|
-
const signatureData = import_CaseMessages.TlvSignedData.encode({
|
|
136
|
-
nodeOpCert,
|
|
137
|
-
intermediateCACert,
|
|
138
|
-
ecdhPublicKey: responderEcdhPublicKey,
|
|
139
|
-
peerEcdhPublicKey
|
|
140
|
-
});
|
|
141
|
-
const signature = await fabric.sign(signatureData);
|
|
142
|
-
const encryptedData = import_CaseMessages.TlvEncryptedDataSigma2.encode({
|
|
143
|
-
nodeOpCert,
|
|
144
|
-
intermediateCACert,
|
|
145
|
-
signature,
|
|
146
|
-
resumptionId
|
|
147
|
-
});
|
|
148
|
-
const encrypted = import_general.Crypto.encrypt(sigma2Key, encryptedData, import_CaseMessages.TBE_DATA2_NONCE);
|
|
149
|
-
const responderSessionId = await this.#sessions.getNextAvailableSessionId();
|
|
150
|
-
const sigma2Bytes = await messenger.sendSigma2({
|
|
151
|
-
responderRandom,
|
|
64
|
+
const resumptionRecord = sigma1.resumptionId !== void 0 && sigma1.initiatorResumeMic !== void 0 ? this.#sessions.findResumptionRecordById(sigma1.resumptionId) : void 0;
|
|
65
|
+
const context = new Sigma1Context(messenger, sigma1Bytes, sigma1, resumptionRecord);
|
|
66
|
+
if (await this.#resume(context)) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (await this.#generateSigma2(context)) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
logger.info(
|
|
73
|
+
`Invalid resumption ID or resume MIC received from ${messenger.getChannelName()}`,
|
|
74
|
+
context.peerResumptionId,
|
|
75
|
+
context.peerResumeMic
|
|
76
|
+
);
|
|
77
|
+
throw new import_general.UnexpectedDataError("Invalid resumption ID or resume MIC.");
|
|
78
|
+
}
|
|
79
|
+
async #resume(cx) {
|
|
80
|
+
if (cx.peerResumptionId === void 0 || cx.peerResumeMic === void 0 || cx.resumptionRecord === void 0) {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
const { sharedSecret, fabric, peerNodeId, caseAuthenticatedTags } = cx.resumptionRecord;
|
|
84
|
+
const peerResumeKey = await import_general.Crypto.hkdf(
|
|
85
|
+
sharedSecret,
|
|
86
|
+
import_general.Bytes.concat(cx.peerRandom, cx.peerResumptionId),
|
|
87
|
+
import_CaseMessages.KDFSR1_KEY_INFO
|
|
88
|
+
);
|
|
89
|
+
try {
|
|
90
|
+
import_general.Crypto.decrypt(peerResumeKey, cx.peerResumeMic, import_CaseMessages.RESUME1_MIC_NONCE);
|
|
91
|
+
} catch (e) {
|
|
92
|
+
import_general.CryptoDecryptError.accept(e);
|
|
93
|
+
cx.peerResumptionId = cx.peerResumeMic = void 0;
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
const responderSessionId = await this.#sessions.getNextAvailableSessionId();
|
|
97
|
+
const secureSessionSalt = import_general.Bytes.concat(cx.peerRandom, cx.peerResumptionId);
|
|
98
|
+
const secureSession = await this.#sessions.createSecureSession({
|
|
99
|
+
sessionId: responderSessionId,
|
|
100
|
+
fabric,
|
|
101
|
+
peerNodeId,
|
|
102
|
+
peerSessionId: cx.peerSessionId,
|
|
103
|
+
sharedSecret,
|
|
104
|
+
salt: secureSessionSalt,
|
|
105
|
+
isInitiator: false,
|
|
106
|
+
isResumption: true,
|
|
107
|
+
peerSessionParameters: cx.peerSessionParams,
|
|
108
|
+
caseAuthenticatedTags
|
|
109
|
+
});
|
|
110
|
+
const resumeSalt = import_general.Bytes.concat(cx.peerRandom, cx.localResumptionId);
|
|
111
|
+
const resumeKey = await import_general.Crypto.hkdf(sharedSecret, resumeSalt, import_CaseMessages.KDFSR2_KEY_INFO);
|
|
112
|
+
const resumeMic = import_general.Crypto.encrypt(resumeKey, new Uint8Array(0), import_CaseMessages.RESUME2_MIC_NONCE);
|
|
113
|
+
try {
|
|
114
|
+
await cx.messenger.sendSigma2Resume({
|
|
115
|
+
resumptionId: cx.localResumptionId,
|
|
116
|
+
resumeMic,
|
|
152
117
|
responderSessionId,
|
|
153
|
-
responderEcdhPublicKey,
|
|
154
|
-
encrypted,
|
|
155
118
|
responderSessionParams: this.#sessions.sessionParameters
|
|
156
119
|
// responder session parameters
|
|
157
120
|
});
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
} = await messenger.readSigma3();
|
|
162
|
-
const sigma3Salt = import_general.Bytes.concat(
|
|
163
|
-
operationalIdentityProtectionKey,
|
|
164
|
-
await import_general.Crypto.hash([sigma1Bytes, sigma2Bytes])
|
|
165
|
-
);
|
|
166
|
-
const sigma3Key = await import_general.Crypto.hkdf(sharedSecret, sigma3Salt, import_CaseMessages.KDFSR3_INFO);
|
|
167
|
-
const peerDecryptedData = import_general.Crypto.decrypt(sigma3Key, peerEncrypted, import_CaseMessages.TBE_DATA3_NONCE);
|
|
168
|
-
const {
|
|
169
|
-
nodeOpCert: peerNewOpCert,
|
|
170
|
-
intermediateCACert: peerIntermediateCACert,
|
|
171
|
-
signature: peerSignature
|
|
172
|
-
} = import_CaseMessages.TlvEncryptedDataSigma3.decode(peerDecryptedData);
|
|
173
|
-
await fabric.verifyCredentials(peerNewOpCert, peerIntermediateCACert);
|
|
174
|
-
const peerSignatureData = import_CaseMessages.TlvSignedData.encode({
|
|
175
|
-
nodeOpCert: peerNewOpCert,
|
|
176
|
-
intermediateCACert: peerIntermediateCACert,
|
|
177
|
-
ecdhPublicKey: peerEcdhPublicKey,
|
|
178
|
-
peerEcdhPublicKey: responderEcdhPublicKey
|
|
179
|
-
});
|
|
180
|
-
const {
|
|
181
|
-
ellipticCurvePublicKey: peerPublicKey,
|
|
182
|
-
subject: { fabricId: peerFabricId, nodeId: peerNodeId, caseAuthenticatedTags }
|
|
183
|
-
} = import_CertificateManager.TlvOperationalCertificate.decode(peerNewOpCert);
|
|
184
|
-
if (fabric.fabricId !== peerFabricId) {
|
|
185
|
-
throw new import_general.UnexpectedDataError(`Fabric ID mismatch: ${fabric.fabricId} !== ${peerFabricId}`);
|
|
186
|
-
}
|
|
187
|
-
await import_general.Crypto.verify((0, import_general.PublicKey)(peerPublicKey), peerSignatureData, peerSignature);
|
|
188
|
-
const secureSessionSalt = import_general.Bytes.concat(
|
|
189
|
-
operationalIdentityProtectionKey,
|
|
190
|
-
await import_general.Crypto.hash([sigma1Bytes, sigma2Bytes, sigma3Bytes])
|
|
191
|
-
);
|
|
192
|
-
const secureSession = await this.#sessions.createSecureSession({
|
|
193
|
-
sessionId: responderSessionId,
|
|
194
|
-
fabric,
|
|
195
|
-
peerNodeId,
|
|
196
|
-
peerSessionId,
|
|
197
|
-
sharedSecret,
|
|
198
|
-
salt: secureSessionSalt,
|
|
199
|
-
isInitiator: false,
|
|
200
|
-
isResumption: false,
|
|
201
|
-
peerSessionParameters: initiatorSessionParams,
|
|
202
|
-
caseAuthenticatedTags
|
|
203
|
-
});
|
|
204
|
-
logger.info(
|
|
205
|
-
`Session ${secureSession.id} created with ${messenger.getChannelName()} for Fabric ${import_types.NodeId.toHexString(
|
|
206
|
-
fabric.nodeId
|
|
207
|
-
)} (index ${fabric.fabricIndex}) and PeerNode ${import_types.NodeId.toHexString(peerNodeId)}`,
|
|
208
|
-
"with CATs",
|
|
209
|
-
caseAuthenticatedTags
|
|
210
|
-
);
|
|
211
|
-
await messenger.sendSuccess();
|
|
212
|
-
const resumptionRecord2 = {
|
|
213
|
-
peerNodeId,
|
|
214
|
-
fabric,
|
|
215
|
-
sharedSecret,
|
|
216
|
-
resumptionId,
|
|
217
|
-
sessionParameters: secureSession.parameters,
|
|
218
|
-
caseAuthenticatedTags
|
|
219
|
-
};
|
|
220
|
-
await messenger.close();
|
|
221
|
-
await this.#sessions.saveResumptionRecord(resumptionRecord2);
|
|
222
|
-
} else {
|
|
223
|
-
logger.info(
|
|
224
|
-
`Invalid resumption ID or resume MIC received from ${messenger.getChannelName()}`,
|
|
225
|
-
peerResumptionId,
|
|
226
|
-
peerResumeMic
|
|
227
|
-
);
|
|
228
|
-
throw new import_general.UnexpectedDataError("Invalid resumption ID or resume MIC.");
|
|
121
|
+
} catch (error) {
|
|
122
|
+
await secureSession.destroy(false);
|
|
123
|
+
throw error;
|
|
229
124
|
}
|
|
125
|
+
logger.info(
|
|
126
|
+
`Session ${secureSession.id} resumed with ${cx.messenger.getChannelName()} for Fabric ${import_types.NodeId.toHexString(
|
|
127
|
+
fabric.nodeId
|
|
128
|
+
)} (index ${fabric.fabricIndex}) and PeerNode ${import_types.NodeId.toHexString(peerNodeId)}`,
|
|
129
|
+
"with CATs",
|
|
130
|
+
caseAuthenticatedTags
|
|
131
|
+
);
|
|
132
|
+
cx.resumptionRecord.resumptionId = cx.localResumptionId;
|
|
133
|
+
await cx.messenger.waitForSuccess("Sigma2Resume-Success");
|
|
134
|
+
await cx.messenger.close();
|
|
135
|
+
await this.#sessions.saveResumptionRecord(cx.resumptionRecord);
|
|
136
|
+
return true;
|
|
137
|
+
}
|
|
138
|
+
async #generateSigma2(cx) {
|
|
139
|
+
if (
|
|
140
|
+
// No resumption attempted is OK
|
|
141
|
+
!(cx.peerResumptionId === void 0 && cx.peerResumeMic === void 0) && // Resumption attempted with no record on our side is OK
|
|
142
|
+
!(cx.peerResumptionId !== void 0 && cx.peerResumeMic !== void 0 && cx.resumptionRecord === void 0)
|
|
143
|
+
) {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
const responderRandom = import_general.Crypto.getRandom();
|
|
147
|
+
const fabric = await this.#fabrics.findFabricFromDestinationId(cx.destinationId, cx.peerRandom);
|
|
148
|
+
const { operationalCert: nodeOpCert, intermediateCACert, operationalIdentityProtectionKey } = fabric;
|
|
149
|
+
const { publicKey: responderEcdhPublicKey, sharedSecret } = await import_general.Crypto.ecdhGeneratePublicKeyAndSecret(
|
|
150
|
+
cx.peerEcdhPublicKey
|
|
151
|
+
);
|
|
152
|
+
const sigma2Salt = import_general.Bytes.concat(
|
|
153
|
+
operationalIdentityProtectionKey,
|
|
154
|
+
responderRandom,
|
|
155
|
+
responderEcdhPublicKey,
|
|
156
|
+
await import_general.Crypto.hash(cx.bytes)
|
|
157
|
+
);
|
|
158
|
+
const sigma2Key = await import_general.Crypto.hkdf(sharedSecret, sigma2Salt, import_CaseMessages.KDFSR2_INFO);
|
|
159
|
+
const signatureData = import_CaseMessages.TlvSignedData.encode({
|
|
160
|
+
nodeOpCert,
|
|
161
|
+
intermediateCACert,
|
|
162
|
+
ecdhPublicKey: responderEcdhPublicKey,
|
|
163
|
+
peerEcdhPublicKey: cx.peerEcdhPublicKey
|
|
164
|
+
});
|
|
165
|
+
const signature = await fabric.sign(signatureData);
|
|
166
|
+
const encryptedData = import_CaseMessages.TlvEncryptedDataSigma2.encode({
|
|
167
|
+
nodeOpCert,
|
|
168
|
+
intermediateCACert,
|
|
169
|
+
signature,
|
|
170
|
+
resumptionId: cx.localResumptionId
|
|
171
|
+
});
|
|
172
|
+
const encrypted = import_general.Crypto.encrypt(sigma2Key, encryptedData, import_CaseMessages.TBE_DATA2_NONCE);
|
|
173
|
+
const responderSessionId = await this.#sessions.getNextAvailableSessionId();
|
|
174
|
+
const sigma2Bytes = await cx.messenger.sendSigma2({
|
|
175
|
+
responderRandom,
|
|
176
|
+
responderSessionId,
|
|
177
|
+
responderEcdhPublicKey,
|
|
178
|
+
encrypted,
|
|
179
|
+
responderSessionParams: this.#sessions.sessionParameters
|
|
180
|
+
// responder session parameters
|
|
181
|
+
});
|
|
182
|
+
const {
|
|
183
|
+
sigma3Bytes,
|
|
184
|
+
sigma3: { encrypted: peerEncrypted }
|
|
185
|
+
} = await cx.messenger.readSigma3();
|
|
186
|
+
const sigma3Salt = import_general.Bytes.concat(operationalIdentityProtectionKey, await import_general.Crypto.hash([cx.bytes, sigma2Bytes]));
|
|
187
|
+
const sigma3Key = await import_general.Crypto.hkdf(sharedSecret, sigma3Salt, import_CaseMessages.KDFSR3_INFO);
|
|
188
|
+
const peerDecryptedData = import_general.Crypto.decrypt(sigma3Key, peerEncrypted, import_CaseMessages.TBE_DATA3_NONCE);
|
|
189
|
+
const {
|
|
190
|
+
nodeOpCert: peerNewOpCert,
|
|
191
|
+
intermediateCACert: peerIntermediateCACert,
|
|
192
|
+
signature: peerSignature
|
|
193
|
+
} = import_CaseMessages.TlvEncryptedDataSigma3.decode(peerDecryptedData);
|
|
194
|
+
await fabric.verifyCredentials(peerNewOpCert, peerIntermediateCACert);
|
|
195
|
+
const peerSignatureData = import_CaseMessages.TlvSignedData.encode({
|
|
196
|
+
nodeOpCert: peerNewOpCert,
|
|
197
|
+
intermediateCACert: peerIntermediateCACert,
|
|
198
|
+
ecdhPublicKey: cx.peerEcdhPublicKey,
|
|
199
|
+
peerEcdhPublicKey: responderEcdhPublicKey
|
|
200
|
+
});
|
|
201
|
+
const {
|
|
202
|
+
ellipticCurvePublicKey: peerPublicKey,
|
|
203
|
+
subject: { fabricId: peerFabricId, nodeId: peerNodeId, caseAuthenticatedTags }
|
|
204
|
+
} = import_CertificateManager.TlvOperationalCertificate.decode(peerNewOpCert);
|
|
205
|
+
if (fabric.fabricId !== peerFabricId) {
|
|
206
|
+
throw new import_general.UnexpectedDataError(`Fabric ID mismatch: ${fabric.fabricId} !== ${peerFabricId}`);
|
|
207
|
+
}
|
|
208
|
+
await import_general.Crypto.verify((0, import_general.PublicKey)(peerPublicKey), peerSignatureData, peerSignature);
|
|
209
|
+
const secureSessionSalt = import_general.Bytes.concat(
|
|
210
|
+
operationalIdentityProtectionKey,
|
|
211
|
+
await import_general.Crypto.hash([cx.bytes, sigma2Bytes, sigma3Bytes])
|
|
212
|
+
);
|
|
213
|
+
const secureSession = await this.#sessions.createSecureSession({
|
|
214
|
+
sessionId: responderSessionId,
|
|
215
|
+
fabric,
|
|
216
|
+
peerNodeId,
|
|
217
|
+
peerSessionId: cx.peerSessionId,
|
|
218
|
+
sharedSecret,
|
|
219
|
+
salt: secureSessionSalt,
|
|
220
|
+
isInitiator: false,
|
|
221
|
+
isResumption: false,
|
|
222
|
+
peerSessionParameters: cx.peerSessionParams,
|
|
223
|
+
caseAuthenticatedTags
|
|
224
|
+
});
|
|
225
|
+
logger.info(
|
|
226
|
+
`Session ${secureSession.id} created with ${cx.messenger.getChannelName()} for Fabric ${import_types.NodeId.toHexString(
|
|
227
|
+
fabric.nodeId
|
|
228
|
+
)} (index ${fabric.fabricIndex}) and PeerNode ${import_types.NodeId.toHexString(peerNodeId)}`,
|
|
229
|
+
"with CATs",
|
|
230
|
+
caseAuthenticatedTags
|
|
231
|
+
);
|
|
232
|
+
await cx.messenger.sendSuccess();
|
|
233
|
+
const resumptionRecord = {
|
|
234
|
+
peerNodeId,
|
|
235
|
+
fabric,
|
|
236
|
+
sharedSecret,
|
|
237
|
+
resumptionId: cx.localResumptionId,
|
|
238
|
+
sessionParameters: secureSession.parameters,
|
|
239
|
+
caseAuthenticatedTags
|
|
240
|
+
};
|
|
241
|
+
await cx.messenger.close();
|
|
242
|
+
await this.#sessions.saveResumptionRecord(resumptionRecord);
|
|
243
|
+
return true;
|
|
230
244
|
}
|
|
231
245
|
async close() {
|
|
232
246
|
}
|
|
233
247
|
}
|
|
248
|
+
class Sigma1Context {
|
|
249
|
+
messenger;
|
|
250
|
+
bytes;
|
|
251
|
+
peerSessionId;
|
|
252
|
+
peerResumptionId;
|
|
253
|
+
peerResumeMic;
|
|
254
|
+
destinationId;
|
|
255
|
+
peerRandom;
|
|
256
|
+
peerEcdhPublicKey;
|
|
257
|
+
peerSessionParams;
|
|
258
|
+
resumptionRecord;
|
|
259
|
+
#localResumptionId;
|
|
260
|
+
constructor(messenger, bytes, sigma1, resumptionRecord) {
|
|
261
|
+
this.messenger = messenger;
|
|
262
|
+
this.bytes = bytes;
|
|
263
|
+
this.peerSessionId = sigma1.initiatorSessionId;
|
|
264
|
+
this.peerResumptionId = sigma1.resumptionId;
|
|
265
|
+
this.peerResumeMic = sigma1.initiatorResumeMic;
|
|
266
|
+
this.destinationId = sigma1.destinationId;
|
|
267
|
+
this.peerRandom = sigma1.initiatorRandom;
|
|
268
|
+
this.peerEcdhPublicKey = sigma1.initiatorEcdhPublicKey;
|
|
269
|
+
this.peerSessionParams = sigma1.initiatorSessionParams;
|
|
270
|
+
this.resumptionRecord = resumptionRecord;
|
|
271
|
+
}
|
|
272
|
+
get localResumptionId() {
|
|
273
|
+
return this.#localResumptionId ??= import_general.Crypto.getRandomData(16);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
234
276
|
//# sourceMappingURL=CaseServer.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/session/case/CaseServer.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,
|
|
5
|
-
"names": [
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FabricManager.d.ts","sourceRoot":"","sources":["../../../src/fabric/FabricManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEH,YAAY,EACZ,WAAW,EACX,aAAa,
|
|
1
|
+
{"version":3,"file":"FabricManager.d.ts","sourceRoot":"","sources":["../../../src/fabric/FabricManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEH,YAAY,EACZ,WAAW,EACX,aAAa,EAEb,GAAG,EACH,WAAW,EAEX,YAAY,EACZ,UAAU,EACV,cAAc,EAEjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,qDAAqD;AACrD,qBAAa,mBAAoB,SAAQ,WAAW;CAAG;AACvD,qBAAa,oBAAqB,SAAQ,WAAW;CAAG;AAExD,oBAAY,YAAY;IACpB,KAAK,IAAA;IACL,OAAO,IAAA;IACP,OAAO,IAAA;CACV;AAED,qBAAa,aAAa;;gBAaV,OAAO,CAAC,EAAE,cAAc;IA2BpC,IAAI,YAAY,gCAEf;IAEK,CAAC,YAAY,CAAC,SAAS,CAAC;IAI9B,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAM9C,IAAI,MAAM;;;;;MAET;IAEK,KAAK;IAOX,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW;IAOtC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW;IAWtC,mBAAmB;IAanB,cAAc,IAAI,YAAY,CAAC,IAAI,CAAC;IAmBpC,SAAS,CAAC,MAAM,EAAE,MAAM;IAyBlB,YAAY,CAAC,WAAW,EAAE,WAAW;IAa3C,CAAC,MAAM,CAAC,QAAQ,CAAC;IAMjB,IAAI,OAAO,aAIV;IAED,IAAI,MAAM,WAET;IAED,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO;IAI3C,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC;IAIlC,2BAA2B,CAAC,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU;IAYxF,aAAa,CAAC,OAAO,EAAE,GAAG;IAW1B,WAAW,CAAC,KAAK,EAAE,WAAW;IAIxB,YAAY,CAAC,MAAM,EAAE,MAAM;IAc3B,YAAY,CAAC,WAAW,EAAE,WAAW;CAS9C"}
|
|
@@ -8,7 +8,6 @@ import {
|
|
|
8
8
|
Construction,
|
|
9
9
|
Environmental,
|
|
10
10
|
ImplementationError,
|
|
11
|
-
InternalError,
|
|
12
11
|
MatterError,
|
|
13
12
|
MatterFlowError,
|
|
14
13
|
MaybePromise,
|
|
@@ -181,7 +180,7 @@ class FabricManager {
|
|
|
181
180
|
if (!Bytes.areEqual(candidateDestinationId, destinationId)) continue;
|
|
182
181
|
return fabric;
|
|
183
182
|
}
|
|
184
|
-
throw new
|
|
183
|
+
throw new FabricNotFoundError();
|
|
185
184
|
}
|
|
186
185
|
findByKeypair(keypair) {
|
|
187
186
|
this.#construction.assert();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/fabric/FabricManager.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,OACG;AAEP,SAAS,mBAAmB;AAC5B,SAAS,cAAc;AAGhB,MAAM,4BAA4B,YAAY;AAAC;AAC/C,MAAM,6BAA6B,YAAY;AAAC;AAEhD,IAAK,eAAL,kBAAKA,kBAAL;AACH,EAAAA,4BAAA;AACA,EAAAA,4BAAA;AACA,EAAAA,4BAAA;AAHQ,SAAAA;AAAA,GAAA;AAML,MAAM,cAAc;AAAA,EACvB,mBAAmB;AAAA,EACV,WAAW,oBAAI,IAAyB;AAAA,EACjD,sBAAsB;AAAA,EACtB;AAAA,EACA,UAAU;AAAA,IACN,OAAO,WAA6B;AAAA,IACpC,SAAS,WAA6B;AAAA,IACtC,SAAS,WAA6B;AAAA,IACtC,gBAAgB,WAAe;AAAA,EACnC;AAAA,EACA;AAAA,EAEA,YAAY,SAA0B;AAClC,SAAK,WAAW;AAEhB,QAAI;AACJ,QAAI,KAAK,aAAa,QAAW;AAC7B,kBAAY,MAAM;AAAA,MAAC;AAAA,IACvB,OAAO;AACH,kBAAY,YAAY;AACpB,YAAI,KAAK,aAAa,QAAW;AAE7B;AAAA,QACJ;AAEA,cAAM,UAAU,MAAM,KAAK,SAAS,IAAqB,WAAW,CAAC,CAAC;AACtE,mBAAW,gBAAgB,SAAS;AAChC,eAAK,WAAW,IAAI,OAAO,YAAY,CAAC;AAAA,QAC5C;AAEA,aAAK,mBAAmB,MAAM,KAAK,SAAS,IAAI,mBAAmB,KAAK,gBAAgB;AAExF,aAAK,sBAAsB;AAAA,MAC/B;AAAA,IACJ;AAEA,SAAK,gBAAgB,aAAa,MAAM,SAAS;AAAA,EACrD;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,OAAO,aAAa,SAAS,IAAI;AAC7B,UAAM,KAAK;AAAA,EACf;AAAA,EAEA,QAAQ,cAAc,MAAM,EAAE,KAAkB;AAC5C,UAAM,WAAW,IAAI,cAAc,IAAI,IAAI,cAAc,EAAE,cAAc,SAAS,CAAC;AACnF,QAAI,IAAI,eAAe,QAAQ;AAC/B,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,QAAQ;AACV,UAAM,KAAK;AACX,SAAK,mBAAmB;AACxB,SAAK,SAAS,MAAM;AACpB,UAAM,KAAK,UAAU,MAAM;AAAA,EAC/B;AAAA,EAEA,IAAI,SAAoC;AACpC,QAAI,OAAO,YAAY,UAAU;AAC7B,gBAAU,QAAQ;AAAA,IACtB;AACA,WAAO,KAAK,SAAS,IAAI,OAAO;AAAA,EACpC;AAAA,EAEA,IAAI,SAAoC;AACpC,QAAI,OAAO,YAAY,UAAU;AAC7B,gBAAU,QAAQ;AAAA,IACtB;AACA,UAAM,SAAS,KAAK,SAAS,IAAI,OAAO;AACxC,QAAI,WAAW,QAAW;AACtB,YAAM,IAAI,oBAAoB,0CAA0C,OAAO,EAAE;AAAA,IACrF;AACA,WAAO;AAAA,EACX;AAAA,EAEA,sBAAsB;AAClB,SAAK,cAAc,OAAO;AAE1B,aAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AAC1B,YAAM,cAAc,KAAK;AACzB,UAAI,KAAK,mBAAmB,IAAK,MAAK,mBAAmB;AACzD,UAAI,CAAC,KAAK,SAAS,IAAI,YAAY,WAAW,CAAC,GAAG;AAC9C,eAAO,YAAY,WAAW;AAAA,MAClC;AAAA,IACJ;AACA,UAAM,IAAI,qBAAqB,iCAAiC;AAAA,EACpE;AAAA,EAEA,iBAAqC;AACjC,QAAI,KAAK,aAAa,QAAW;AAC7B,YAAM,IAAI;AAAA,QACN;AAAA,MACJ;AAAA,IACJ;AAEA,SAAK,cAAc,OAAO;AAE1B,UAAM,cAAc,KAAK,SAAS;AAAA,MAC9B;AAAA,MACA,MAAM,KAAK,KAAK,SAAS,OAAO,CAAC,EAAE,IAAI,YAAU,OAAO,MAAM;AAAA,IAClE;AACA,QAAI,aAAa,GAAG,WAAW,GAAG;AAC9B,aAAO,YAAY,KAAK,MAAM,KAAK,SAAU,IAAI,mBAAmB,KAAK,gBAAgB,CAAC;AAAA,IAC9F;AACA,WAAO,KAAK,SAAS,IAAI,mBAAmB,KAAK,gBAAgB;AAAA,EACrE;AAAA,EAEA,UAAU,QAAgB;AACtB,SAAK,cAAc,OAAO;AAC1B,SAAK,WAAW,MAAM;AAAA,EAC1B;AAAA,EAEA,WAAW,QAAgB;AACvB,UAAM,EAAE,YAAY,IAAI;AACxB,QAAI,KAAK,SAAS,IAAI,WAAW,GAAG;AAChC,YAAM,IAAI,gBAAgB,qBAAqB,WAAW,kBAAkB;AAAA,IAChF;AACA,SAAK,SAAS,IAAI,aAAa,MAAM;AACrC,WAAO,kBAAkB,YAAY,KAAK,aAAa,WAAW,CAAC;AACnE,WAAO,kBAAkB,CAAC,WAAW,SAAS;AAC1C,YAAM,gBAAgB,KAAK,eAAe;AAC1C,aAAO,aAAa,KAAK,eAAe,MAAM;AAC1C,YAAI,UAAU;AACV,eAAK,QAAQ,QAAQ,KAAK,MAAM;AAAA,QACpC;AAAA,MACJ,CAAC;AAAA,IACL;AACA,QAAI,KAAK,qBAAqB;AAC1B,WAAK,QAAQ,MAAM,KAAK,MAAM;AAAA,IAClC;AAAA,EACJ;AAAA,EAEA,MAAM,aAAa,aAA0B;AACzC,UAAM,KAAK;AAEX,UAAM,SAAS,KAAK,SAAS,IAAI,WAAW;AAC5C,QAAI,WAAW;AACX,YAAM,IAAI;AAAA,QACN,qBAAqB,WAAW;AAAA,MACpC;AACJ,SAAK,SAAS,OAAO,WAAW;AAChC,UAAM,KAAK,eAAe;AAC1B,SAAK,QAAQ,QAAQ,KAAK,MAAM;AAAA,EACpC;AAAA,EAEA,CAAC,OAAO,QAAQ,IAAI;AAChB,SAAK,cAAc,OAAO;AAE1B,WAAO,KAAK,SAAS,OAAO;AAAA,EAChC;AAAA,EAEA,IAAI,UAAU;AACV,SAAK,cAAc,OAAO;AAE1B,WAAO,MAAM,KAAK,KAAK,SAAS,OAAO,CAAC;AAAA,EAC5C;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA,EAEA,KAAK,WAAwC;AACzC,WAAO,KAAK,QAAQ,KAAK,SAAS;AAAA,EACtC;AAAA,EAEA,IAAO,YAAmC;AACtC,WAAO,KAAK,QAAQ,IAAI,UAAU;AAAA,EACtC;AAAA,EAEA,MAAM,4BAA4B,eAA2B,iBAA6B;AACtF,SAAK,cAAc,OAAO;AAE1B,eAAW,UAAU,KAAK,SAAS,OAAO,GAAG;AACzC,YAAM,yBAAyB,MAAM,OAAO,iBAAiB,OAAO,QAAQ,eAAe;AAC3F,UAAI,CAAC,MAAM,SAAS,wBAAwB,aAAa,EAAG;AAC5D,aAAO;AAAA,IACX;AAEA,UAAM,IAAI,oBAAoB;AAAA,EAClC;AAAA,EAEA,cAAc,SAAc;AACxB,SAAK,cAAc,OAAO;AAE1B,eAAW,UAAU,KAAK,SAAS,OAAO,GAAG;AACzC,UAAI,OAAO,eAAe,OAAO,GAAG;AAChC,eAAO;AAAA,MACX;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEA,YAAY,OAAoB;AAC5B,WAAO,MAAM,KAAK,KAAK,SAAS,OAAO,CAAC,EAAE,KAAK,YAAU,OAAO,gBAAgB,KAAK;AAAA,EACzF;AAAA,EAEA,MAAM,aAAa,QAAgB;AAC/B,UAAM,KAAK;AAEX,UAAM,EAAE,YAAY,IAAI;AACxB,QAAI,CAAC,KAAK,SAAS,IAAI,WAAW,GAAG;AACjC,YAAM,IAAI;AAAA,QACN,qBAAqB,WAAW;AAAA,MACpC;AAAA,IACJ;AACA,SAAK,SAAS,IAAI,aAAa,MAAM;AACrC,UAAM,KAAK,eAAe;AAC1B,SAAK,QAAQ,QAAQ,KAAK,MAAM;AAAA,EACpC;AAAA,EAEA,MAAM,aAAa,aAA0B;AACzC,UAAM,KAAK;AAEX,UAAM,SAAS,KAAK,SAAS,IAAI,WAAW;AAC5C,QAAI,WAAW,QAAW;AACtB,YAAM,IAAI,gBAAgB,qBAAqB,WAAW,4BAA4B;AAAA,IAC1F;AACA,UAAM,OAAO,OAAO;AAAA,EACxB;AACJ;",
|
|
5
5
|
"names": ["FabricAction"]
|
|
6
6
|
}
|
|
@@ -13,7 +13,6 @@ export declare class CaseServer implements ProtocolHandler {
|
|
|
13
13
|
readonly requiresSecureSession = false;
|
|
14
14
|
constructor(sessions: SessionManager, fabrics: FabricManager);
|
|
15
15
|
onNewExchange(exchange: MessageExchange): Promise<void>;
|
|
16
|
-
private handleSigma1;
|
|
17
16
|
close(): Promise<void>;
|
|
18
17
|
}
|
|
19
18
|
//# sourceMappingURL=CaseServer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CaseServer.d.ts","sourceRoot":"","sources":["../../../../src/session/case/CaseServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"CaseServer.d.ts","sourceRoot":"","sources":["../../../../src/session/case/CaseServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAoB,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG9E,OAAO,EAAE,aAAa,EAAuB,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAoBpE,qBAAa,UAAW,YAAW,eAAe;;IAC9C,QAAQ,CAAC,EAAE,KAA8B;IACzC,QAAQ,CAAC,qBAAqB,SAAS;gBAK3B,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa;IAKtD,aAAa,CAAC,QAAQ,EAAE,eAAe;IAwPvC,KAAK;CAGd"}
|