@modularizer/plat 0.9.0 → 0.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.
Files changed (42) hide show
  1. package/dist/client-entry.d.ts +1 -0
  2. package/dist/client-entry.d.ts.map +1 -1
  3. package/dist/client-entry.js +1 -0
  4. package/dist/client-entry.js.map +1 -1
  5. package/dist/client-server-entry.d.ts +1 -0
  6. package/dist/client-server-entry.d.ts.map +1 -1
  7. package/dist/client-server-entry.js +1 -0
  8. package/dist/client-server-entry.js.map +1 -1
  9. package/dist/client-side-python/runtime.d.ts.map +1 -1
  10. package/dist/client-side-python/runtime.js +8 -0
  11. package/dist/client-side-python/runtime.js.map +1 -1
  12. package/dist/client-side-server/identity.d.ts +80 -17
  13. package/dist/client-side-server/identity.d.ts.map +1 -1
  14. package/dist/client-side-server/identity.js +212 -31
  15. package/dist/client-side-server/identity.js.map +1 -1
  16. package/dist/client-side-server/mqtt-webrtc.d.ts +38 -6
  17. package/dist/client-side-server/mqtt-webrtc.d.ts.map +1 -1
  18. package/dist/client-side-server/mqtt-webrtc.js +839 -68
  19. package/dist/client-side-server/mqtt-webrtc.js.map +1 -1
  20. package/dist/client-side-server/protocol.d.ts +68 -3
  21. package/dist/client-side-server/protocol.d.ts.map +1 -1
  22. package/dist/client-side-server/protocol.js +110 -0
  23. package/dist/client-side-server/protocol.js.map +1 -1
  24. package/dist/client-side-server/runtime.d.ts.map +1 -1
  25. package/dist/client-side-server/runtime.js +7 -0
  26. package/dist/client-side-server/runtime.js.map +1 -1
  27. package/dist/client-side-server/secure-crypto.d.ts +35 -0
  28. package/dist/client-side-server/secure-crypto.d.ts.map +1 -0
  29. package/dist/client-side-server/secure-crypto.js +171 -0
  30. package/dist/client-side-server/secure-crypto.js.map +1 -0
  31. package/dist/client-side-server/server.js +1 -1
  32. package/dist/client-side-server/server.js.map +1 -1
  33. package/dist/client-side-server/signaling.d.ts +1 -0
  34. package/dist/client-side-server/signaling.d.ts.map +1 -1
  35. package/dist/client-side-server/signaling.js.map +1 -1
  36. package/dist/server/authority-server.d.ts +4 -4
  37. package/dist/server/authority-server.d.ts.map +1 -1
  38. package/dist/server/authority-server.js +23 -21
  39. package/dist/server/authority-server.js.map +1 -1
  40. package/dist/server/server.js +1 -1
  41. package/dist/server/server.js.map +1 -1
  42. package/package.json +1 -1
@@ -19,7 +19,7 @@ export function saveTrustedClientSideServerRecordToMap(knownHosts, record) {
19
19
  return;
20
20
  }
21
21
  const list = Array.isArray(existing) ? existing : [existing];
22
- const idx = list.findIndex((r) => clientSideServerPublicKeysEqual(r.publicKeyJwk, record.publicKeyJwk));
22
+ const idx = list.findIndex((r) => clientSideServerPublicKeysEqual(getSigningPublicKeyJwk(r), getSigningPublicKeyJwk(record)));
23
23
  if (idx >= 0) {
24
24
  list[idx] = record;
25
25
  }
@@ -46,7 +46,7 @@ export function loadAllTrustedClientSideServerRecordsForName(knownHosts, serverN
46
46
  }
47
47
  export function isTrustedPublicKeyForServer(knownHosts, serverName, publicKeyJwk) {
48
48
  const records = loadAllTrustedClientSideServerRecordsForName(knownHosts, serverName);
49
- return records.some((r) => clientSideServerPublicKeysEqual(r.publicKeyJwk, publicKeyJwk));
49
+ return records.some((r) => clientSideServerPublicKeysEqual(getSigningPublicKeyJwk(r), publicKeyJwk));
50
50
  }
51
51
  export async function generateClientSideServerIdentityKeyPair(options = {}) {
52
52
  const subtle = await resolveSubtle();
@@ -68,11 +68,35 @@ export async function createClientSideServerKeyId(publicKeyJwk) {
68
68
  const fingerprint = await getClientSideServerPublicKeyFingerprint(publicKeyJwk);
69
69
  return `cssk-${fingerprint.slice(0, 16)}`;
70
70
  }
71
+ export async function generateClientSideServerEncryptionKeyPair(options = {}) {
72
+ const subtle = await resolveSubtle();
73
+ const keyPair = await subtle.generateKey({
74
+ name: 'X25519',
75
+ }, true, ['deriveKey', 'deriveBits']);
76
+ const publicKeyJwk = await subtle.exportKey('jwk', keyPair.publicKey);
77
+ const privateKeyJwk = await subtle.exportKey('jwk', keyPair.privateKey);
78
+ return {
79
+ algorithm: 'X25519',
80
+ publicKeyJwk,
81
+ privateKeyJwk,
82
+ keyId: options.keyId ?? await createClientSideServerEncryptionKeyId(publicKeyJwk),
83
+ createdAt: Date.now(),
84
+ };
85
+ }
86
+ export async function createClientSideServerEncryptionKeyId(publicKeyJwk) {
87
+ const fingerprint = await getClientSideServerEncryptionPublicKeyFingerprint(publicKeyJwk);
88
+ return `csse-${fingerprint.slice(0, 16)}`;
89
+ }
71
90
  export async function getClientSideServerPublicKeyFingerprint(publicKeyJwk) {
72
91
  const subtle = await resolveSubtle();
73
92
  const digest = await subtle.digest('SHA-256', toBufferSource(encodeUtf8(stableStringify(publicKeyJwk))));
74
93
  return base64UrlEncode(new Uint8Array(digest));
75
94
  }
95
+ export async function getClientSideServerEncryptionPublicKeyFingerprint(publicKeyJwk) {
96
+ const subtle = await resolveSubtle();
97
+ const digest = await subtle.digest('SHA-256', toBufferSource(encodeUtf8(stableStringify(publicKeyJwk))));
98
+ return base64UrlEncode(new Uint8Array(digest));
99
+ }
76
100
  export async function signClientSideServerChallenge(keyPair, challenge) {
77
101
  const subtle = await resolveSubtle();
78
102
  const privateKey = await subtle.importKey('jwk', keyPair.privateKeyJwk, {
@@ -120,6 +144,34 @@ export async function verifySignedClientSideServerAuthorityRecord(record, author
120
144
  return false;
121
145
  return verifyClientSideServerChallenge(authorityPublicKeyJwk, stableStringify(payload), signature);
122
146
  }
147
+ export async function createSignedClientSideServerAuthorityRecordV2(authorityKeyPair, input) {
148
+ const payload = {
149
+ protocol: 'plat-css-authority-v2',
150
+ serverName: input.serverName,
151
+ signingPublicKeyJwk: input.signingPublicKeyJwk,
152
+ encryptionPublicKeyJwk: input.encryptionPublicKeyJwk,
153
+ signingKeyId: input.signingKeyId,
154
+ encryptionKeyId: input.encryptionKeyId,
155
+ authorityName: input.authorityName,
156
+ issuedAt: input.issuedAt ?? Date.now(),
157
+ };
158
+ const signature = await signClientSideServerChallenge(authorityKeyPair, stableStringify(payload));
159
+ return {
160
+ ...payload,
161
+ signature,
162
+ };
163
+ }
164
+ export async function verifySignedClientSideServerAuthorityRecordV2(record, authorityPublicKeyJwk) {
165
+ const { signature, ...payload } = record;
166
+ if (payload.protocol !== 'plat-css-authority-v2')
167
+ return false;
168
+ return verifyClientSideServerChallenge(authorityPublicKeyJwk, stableStringify(payload), signature);
169
+ }
170
+ export async function verifyAnySignedClientSideServerAuthorityRecord(record, authorityPublicKeyJwk) {
171
+ return isClientSideServerSignedAuthorityRecordV2(record)
172
+ ? verifySignedClientSideServerAuthorityRecordV2(record, authorityPublicKeyJwk)
173
+ : verifySignedClientSideServerAuthorityRecord(record, authorityPublicKeyJwk);
174
+ }
123
175
  export async function toClientSideServerPublicIdentity(keyPair) {
124
176
  return {
125
177
  algorithm: keyPair.algorithm,
@@ -129,6 +181,15 @@ export async function toClientSideServerPublicIdentity(keyPair) {
129
181
  fingerprint: await getClientSideServerPublicKeyFingerprint(keyPair.publicKeyJwk),
130
182
  };
131
183
  }
184
+ export async function toClientSideServerEncryptionPublicIdentity(keyPair) {
185
+ return {
186
+ algorithm: keyPair.algorithm,
187
+ publicKeyJwk: keyPair.publicKeyJwk,
188
+ keyId: keyPair.keyId,
189
+ createdAt: keyPair.createdAt,
190
+ fingerprint: await getClientSideServerEncryptionPublicKeyFingerprint(keyPair.publicKeyJwk),
191
+ };
192
+ }
132
193
  export function saveClientSideServerIdentityKeyPair(keyPair, options = {}) {
133
194
  const storage = resolveStorage(options.storage);
134
195
  if (!storage)
@@ -155,6 +216,32 @@ export async function getOrCreateClientSideServerIdentityKeyPair(options = {}) {
155
216
  }
156
217
  return created;
157
218
  }
219
+ export function saveClientSideServerEncryptionKeyPair(keyPair, options = {}) {
220
+ const storage = resolveStorage(options.storage);
221
+ if (!storage)
222
+ throw new Error('No storage available to save a client-side server encryption key pair');
223
+ storage.setItem(options.storageKey ?? 'plat-css:enc-keypair', JSON.stringify(keyPair));
224
+ }
225
+ export function loadClientSideServerEncryptionKeyPair(options = {}) {
226
+ const storage = resolveStorage(options.storage);
227
+ if (!storage)
228
+ return null;
229
+ const raw = storage.getItem(options.storageKey ?? 'plat-css:enc-keypair');
230
+ if (!raw)
231
+ return null;
232
+ return JSON.parse(raw);
233
+ }
234
+ export async function getOrCreateClientSideServerEncryptionKeyPair(options = {}) {
235
+ const existing = loadClientSideServerEncryptionKeyPair(options);
236
+ if (existing)
237
+ return existing;
238
+ const created = await generateClientSideServerEncryptionKeyPair(options);
239
+ const storage = resolveStorage(options.storage);
240
+ if (storage) {
241
+ storage.setItem(options.storageKey ?? 'plat-css:enc-keypair', JSON.stringify(created));
242
+ }
243
+ return created;
244
+ }
158
245
  export function saveTrustedClientSideServerRecord(record, options = {}) {
159
246
  const storage = resolveStorage(options.storage);
160
247
  if (!storage)
@@ -210,18 +297,30 @@ export async function trustClientSideServerOnFirstUse(serverName, identity, opti
210
297
  return record;
211
298
  }
212
299
  export async function trustClientSideServerFromAuthorityRecord(record, authorityPublicKeyJwk, options = {}) {
213
- const valid = await verifySignedClientSideServerAuthorityRecord(record, authorityPublicKeyJwk);
300
+ const valid = await verifyAnySignedClientSideServerAuthorityRecord(record, authorityPublicKeyJwk);
214
301
  if (!valid) {
215
302
  throw new Error(`Authority record for ${record.serverName} failed signature verification`);
216
303
  }
217
- const trusted = {
218
- serverName: record.serverName,
219
- publicKeyJwk: record.publicKeyJwk,
220
- keyId: record.keyId,
221
- fingerprint: await getClientSideServerPublicKeyFingerprint(record.publicKeyJwk),
222
- trustedAt: Date.now(),
223
- source: 'authority',
224
- };
304
+ const trusted = isClientSideServerSignedAuthorityRecordV2(record)
305
+ ? {
306
+ serverName: record.serverName,
307
+ signingPublicKeyJwk: record.signingPublicKeyJwk,
308
+ encryptionPublicKeyJwk: record.encryptionPublicKeyJwk,
309
+ signingKeyId: record.signingKeyId,
310
+ encryptionKeyId: record.encryptionKeyId,
311
+ signingFingerprint: await getClientSideServerPublicKeyFingerprint(record.signingPublicKeyJwk),
312
+ encryptionFingerprint: await getClientSideServerEncryptionPublicKeyFingerprint(record.encryptionPublicKeyJwk),
313
+ trustedAt: Date.now(),
314
+ source: 'authority',
315
+ }
316
+ : {
317
+ serverName: record.serverName,
318
+ publicKeyJwk: record.publicKeyJwk,
319
+ keyId: record.keyId,
320
+ fingerprint: await getClientSideServerPublicKeyFingerprint(record.publicKeyJwk),
321
+ trustedAt: Date.now(),
322
+ source: 'authority',
323
+ };
225
324
  saveTrustedClientSideServerRecord(trusted, options);
226
325
  return trusted;
227
326
  }
@@ -239,35 +338,55 @@ export function createClientSideServerAuthorityResolver(options) {
239
338
  export function createStaticClientSideServerAuthorityRegistry(options) {
240
339
  const records = new Map();
241
340
  for (const [serverName, value] of Object.entries(options.records ?? {})) {
242
- records.set(serverName, normalizePublicKey(value));
341
+ records.set(serverName, normalizeAuthorityIdentity(value));
243
342
  }
244
343
  return {
245
344
  register(serverName, value) {
246
- records.set(serverName, normalizePublicKey(value));
345
+ records.set(serverName, normalizeAuthorityIdentity(value));
247
346
  },
248
347
  async resolve(serverName) {
249
- const publicKeyJwk = records.get(serverName);
250
- if (!publicKeyJwk)
348
+ const record = records.get(serverName);
349
+ if (!record)
251
350
  return null;
252
- return createSignedClientSideServerAuthorityRecord(options.authorityKeyPair, {
253
- serverName,
254
- publicKeyJwk,
255
- authorityName: options.authorityName,
256
- });
351
+ return record.encryptionPublicKeyJwk
352
+ ? createSignedClientSideServerAuthorityRecordV2(options.authorityKeyPair, {
353
+ serverName,
354
+ signingPublicKeyJwk: record.signingPublicKeyJwk,
355
+ encryptionPublicKeyJwk: record.encryptionPublicKeyJwk,
356
+ signingKeyId: record.signingKeyId,
357
+ encryptionKeyId: record.encryptionKeyId,
358
+ authorityName: options.authorityName,
359
+ })
360
+ : createSignedClientSideServerAuthorityRecord(options.authorityKeyPair, {
361
+ serverName,
362
+ publicKeyJwk: record.signingPublicKeyJwk,
363
+ keyId: record.signingKeyId,
364
+ authorityName: options.authorityName,
365
+ });
257
366
  },
258
367
  createServer() {
259
368
  return {
260
369
  authorityName: options.authorityName,
261
370
  publicKeyJwk: options.authorityKeyPair.publicKeyJwk,
262
371
  resolve: async (serverName) => {
263
- const publicKeyJwk = records.get(serverName);
264
- if (!publicKeyJwk)
372
+ const record = records.get(serverName);
373
+ if (!record)
265
374
  return null;
266
- return createSignedClientSideServerAuthorityRecord(options.authorityKeyPair, {
267
- serverName,
268
- publicKeyJwk,
269
- authorityName: options.authorityName,
270
- });
375
+ return record.encryptionPublicKeyJwk
376
+ ? createSignedClientSideServerAuthorityRecordV2(options.authorityKeyPair, {
377
+ serverName,
378
+ signingPublicKeyJwk: record.signingPublicKeyJwk,
379
+ encryptionPublicKeyJwk: record.encryptionPublicKeyJwk,
380
+ signingKeyId: record.signingKeyId,
381
+ encryptionKeyId: record.encryptionKeyId,
382
+ authorityName: options.authorityName,
383
+ })
384
+ : createSignedClientSideServerAuthorityRecord(options.authorityKeyPair, {
385
+ serverName,
386
+ publicKeyJwk: record.signingPublicKeyJwk,
387
+ keyId: record.signingKeyId,
388
+ authorityName: options.authorityName,
389
+ });
271
390
  },
272
391
  };
273
392
  },
@@ -316,6 +435,37 @@ export async function resolveTrustedClientSideServerFromAuthorities(serverName,
316
435
  export function clientSideServerPublicKeysEqual(a, b) {
317
436
  return stableStringify(a) === stableStringify(b);
318
437
  }
438
+ export function isClientSideServerTrustedServerRecordV2(value) {
439
+ return Boolean(value
440
+ && typeof value === 'object'
441
+ && 'signingPublicKeyJwk' in value
442
+ && 'encryptionPublicKeyJwk' in value);
443
+ }
444
+ export function isClientSideServerSignedAuthorityRecordV2(value) {
445
+ return Boolean(value
446
+ && typeof value === 'object'
447
+ && value.protocol === 'plat-css-authority-v2'
448
+ && 'signingPublicKeyJwk' in value
449
+ && 'encryptionPublicKeyJwk' in value);
450
+ }
451
+ export async function trustedClientSideServerRecordToResolvedIdentityBundle(record) {
452
+ if (!isClientSideServerTrustedServerRecordV2(record))
453
+ return null;
454
+ return {
455
+ signing: {
456
+ algorithm: 'ECDSA-P256',
457
+ publicKeyJwk: record.signingPublicKeyJwk,
458
+ keyId: record.signingKeyId ?? await createClientSideServerKeyId(record.signingPublicKeyJwk),
459
+ fingerprint: record.signingFingerprint,
460
+ },
461
+ encryption: {
462
+ algorithm: 'X25519',
463
+ publicKeyJwk: record.encryptionPublicKeyJwk,
464
+ keyId: record.encryptionKeyId ?? await createClientSideServerEncryptionKeyId(record.encryptionPublicKeyJwk),
465
+ fingerprint: record.encryptionFingerprint,
466
+ },
467
+ };
468
+ }
319
469
  function resolveStorage(storage) {
320
470
  if (storage)
321
471
  return storage;
@@ -323,10 +473,41 @@ function resolveStorage(storage) {
323
473
  return localStorage;
324
474
  return null;
325
475
  }
326
- function normalizePublicKey(value) {
327
- if ('publicKeyJwk' in value)
328
- return value.publicKeyJwk;
329
- return value;
476
+ function getSigningPublicKeyJwk(record) {
477
+ return isClientSideServerTrustedServerRecordV2(record) ? record.signingPublicKeyJwk : record.publicKeyJwk;
478
+ }
479
+ function normalizeAuthorityIdentity(value) {
480
+ if (isResolvedIdentityBundle(value)) {
481
+ return {
482
+ signingPublicKeyJwk: value.signing.publicKeyJwk,
483
+ encryptionPublicKeyJwk: value.encryption.publicKeyJwk,
484
+ signingKeyId: value.signing.keyId,
485
+ encryptionKeyId: value.encryption.keyId,
486
+ };
487
+ }
488
+ if (isClientSideServerTrustedServerRecordV2(value)) {
489
+ return {
490
+ signingPublicKeyJwk: value.signingPublicKeyJwk,
491
+ encryptionPublicKeyJwk: value.encryptionPublicKeyJwk,
492
+ signingKeyId: value.signingKeyId,
493
+ encryptionKeyId: value.encryptionKeyId,
494
+ };
495
+ }
496
+ if ('publicKeyJwk' in value) {
497
+ return {
498
+ signingPublicKeyJwk: value.publicKeyJwk,
499
+ signingKeyId: 'keyId' in value ? value.keyId : undefined,
500
+ };
501
+ }
502
+ return {
503
+ signingPublicKeyJwk: value,
504
+ };
505
+ }
506
+ function isResolvedIdentityBundle(value) {
507
+ return Boolean(value
508
+ && typeof value === 'object'
509
+ && 'signing' in value
510
+ && 'encryption' in value);
330
511
  }
331
512
  function stableStringify(value) {
332
513
  return JSON.stringify(sortValue(value));
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/client-side-server/identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/client-side-server/identity.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,16 @@
1
1
  import { type IClientOptions } from 'mqtt';
2
2
  import type { OpenAPIClientTransportPlugin } from '../client/transport-plugin';
3
3
  import { type ClientSideServerChannel } from './channel';
4
- import { type ClientSideServerAuthorityServer, type ClientSideServerExportedKeyPair, type ClientSideServerPublicIdentity, type ClientSideServerSignedAuthorityRecord, type ClientSideServerStorageLike, type ClientSideServerTrustedServerRecord } from './identity';
4
+ import { type ClientSideServerAnyAuthorityRecord, type ClientSideServerAnyTrustedServerRecord, type ClientSideServerAuthorityServer, type ClientSideServerEncryptionKeyPair, type ClientSideServerExportedKeyPair, type ClientSideServerPublicIdentity, type ClientSideServerStorageLike } from './identity';
5
5
  import { type ClientSideServerInstanceInfo, type ClientSideServerPeerMessage } from './protocol';
6
6
  import { type ClientSideServerAddress } from './signaling';
7
7
  import type { PLATClientSideServer } from './server';
8
8
  export declare const DEFAULT_CLIENT_SIDE_SERVER_MQTT_BROKER = "wss://broker.emqx.io:8084/mqtt";
9
9
  export declare const DEFAULT_CLIENT_SIDE_SERVER_MQTT_TOPIC = "mrtchat/plat-css";
10
+ export declare const DEFAULT_CLIENT_SIDE_SERVER_SEALED_TOPIC = "plat";
11
+ export declare const DEFAULT_CLIENT_SIDE_SERVER_MAX_SEALED_MESSAGE_BYTES = 65536;
12
+ export declare const DEFAULT_CLIENT_SIDE_SERVER_REPLAY_WINDOW_MS: number;
13
+ export declare const DEFAULT_CLIENT_SIDE_SERVER_CLOCK_SKEW_TOLERANCE_MS = 30000;
10
14
  export declare const DEFAULT_CLIENT_SIDE_SERVER_ICE_SERVERS: RTCIceServer[];
11
15
  export interface ClientSideServerWorkerInfo {
12
16
  weight?: number;
@@ -36,7 +40,7 @@ export interface ClientSideServerDiscoveryCandidate {
36
40
  instanceId: string;
37
41
  serverName: string;
38
42
  identity: ClientSideServerPublicIdentity;
39
- authorityRecord?: ClientSideServerSignedAuthorityRecord;
43
+ authorityRecord?: ClientSideServerAnyAuthorityRecord;
40
44
  mqttChallengeVerified: boolean;
41
45
  workerInfo: ClientSideServerWorkerInfo;
42
46
  instanceInfo?: ClientSideServerInstanceInfo;
@@ -52,7 +56,7 @@ export interface ClientSideServerWorkerState {
52
56
  instanceId: string;
53
57
  session: ClientSideServerPeerSession;
54
58
  identity: ClientSideServerPublicIdentity;
55
- authorityRecord?: ClientSideServerSignedAuthorityRecord;
59
+ authorityRecord?: ClientSideServerAnyAuthorityRecord;
56
60
  status: 'connecting' | 'verifying' | 'active' | 'standby' | 'draining' | 'failed' | 'closed';
57
61
  weight: number;
58
62
  serverAdvertisedWeight: number;
@@ -76,6 +80,24 @@ export interface ClientSideServerMQTTWebRTCOptions {
76
80
  identity?: ClientSideServerIdentityOptions;
77
81
  workerPool?: ClientSideServerWorkerPoolOptions;
78
82
  requirePrivateChallenge?: boolean;
83
+ secureSignaling?: boolean;
84
+ anonymousRouting?: boolean;
85
+ sealedTopic?: string;
86
+ maxSealedMessageBytes?: number;
87
+ replayWindowMs?: number;
88
+ clockSkewToleranceMs?: number;
89
+ serverEncryptionKeyPair?: ClientSideServerEncryptionKeyPair;
90
+ signalingAuth?: {
91
+ required?: boolean;
92
+ verify?: (credentials: {
93
+ username: string;
94
+ password: string;
95
+ }, context: {
96
+ serverName: string;
97
+ connectionId: string;
98
+ senderId: string;
99
+ }) => Promise<boolean> | boolean;
100
+ };
79
101
  }
80
102
  export interface ClientSideServerMQTTWebRTCServerOptions extends ClientSideServerMQTTWebRTCOptions {
81
103
  serverName: string;
@@ -92,7 +114,7 @@ export interface ClientSideServerIdentityOptions {
92
114
  keyPair?: ClientSideServerExportedKeyPair;
93
115
  storage?: ClientSideServerStorageLike;
94
116
  keyPairStorageKey?: string;
95
- knownHosts?: Record<string, ClientSideServerTrustedServerRecord>;
117
+ knownHosts?: Record<string, ClientSideServerAnyTrustedServerRecord>;
96
118
  knownHostsStorage?: ClientSideServerStorageLike;
97
119
  knownHostsStorageKey?: string;
98
120
  trustOnFirstUse?: boolean;
@@ -101,8 +123,8 @@ export interface ClientSideServerIdentityOptions {
101
123
  authorityName?: string;
102
124
  };
103
125
  authorityServers?: ClientSideServerAuthorityServer[];
104
- authorityResolver?: (serverName: string) => Promise<ClientSideServerTrustedServerRecord | null>;
105
- authorityRecord?: ClientSideServerSignedAuthorityRecord;
126
+ authorityResolver?: (serverName: string) => Promise<ClientSideServerAnyTrustedServerRecord | null>;
127
+ authorityRecord?: ClientSideServerAnyAuthorityRecord;
106
128
  }
107
129
  export interface ClientSideServerPeerSession extends ClientSideServerChannel {
108
130
  readonly address: ClientSideServerAddress;
@@ -130,8 +152,11 @@ export declare class ClientSideServerMQTTWebRTCServer {
130
152
  private announceTimer?;
131
153
  private identityKeyPair?;
132
154
  private publicIdentity?;
155
+ private encryptionKeyPair?;
156
+ private encryptionPublicIdentity?;
133
157
  private clientCount;
134
158
  private resolvedInstanceInfo?;
159
+ private readonly seenSealedNonces;
135
160
  constructor(options: ClientSideServerMQTTWebRTCServerOptions);
136
161
  get connectionUrl(): string;
137
162
  start(): Promise<void>;
@@ -144,7 +169,14 @@ export declare class ClientSideServerMQTTWebRTCServer {
144
169
  private handleControlMessage;
145
170
  drain(): Promise<void>;
146
171
  private acceptOffer;
172
+ private acceptSealedOffer;
147
173
  private ensureIdentity;
174
+ private ensureEncryptionIdentity;
175
+ private isSealedReplay;
176
+ private rememberSealedNonce;
177
+ private pruneSeenSealedNonces;
178
+ private publishSealedResponse;
179
+ private authorizeSealedOffer;
148
180
  }
149
181
  export declare function createClientSideServerMQTTWebRTCTransportPlugin(options?: ClientSideServerMQTTWebRTCOptions): OpenAPIClientTransportPlugin;
150
182
  export declare function createClientSideServerMQTTWebRTCPeerPool(options?: ClientSideServerMQTTWebRTCOptions): ClientSideServerPeerPool;
@@ -1 +1 @@
1
- {"version":3,"file":"mqtt-webrtc.d.ts","sourceRoot":"","sources":["../../src/client-side-server/mqtt-webrtc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mqtt-webrtc.d.ts","sourceRoot":"","sources":["../../src/client-side-server/mqtt-webrtc.ts"],"names":[],"mappings":"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"}