@nopeek/chat 0.2.0 → 0.2.2
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/index.d.ts +38 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +249 -17
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -151,6 +151,11 @@ export declare class NoPeek extends Emitter {
|
|
|
151
151
|
readonly channels: Channels;
|
|
152
152
|
readonly deriveChannelKey?: (channelId: string) => Promise<CryptoKey>;
|
|
153
153
|
static connect(opts: ConnectOptions): Promise<NoPeek>;
|
|
154
|
+
/** Bring a deferred (autoConnectWs:false) client online in the background:
|
|
155
|
+
* publish key packages and open the WebSocket. Idempotent — a no-op if the
|
|
156
|
+
* socket is already up. This is what keeps cold-start instant: connect()
|
|
157
|
+
* returns from local storage alone, then the app calls bringOnline(). */
|
|
158
|
+
bringOnline(): Promise<void>;
|
|
154
159
|
private constructor();
|
|
155
160
|
/** Replace the set of blocked user ids (the app owns the authoritative list). */
|
|
156
161
|
setBlockedUsers(ids: Iterable<string>): void;
|
|
@@ -166,6 +171,8 @@ export declare class NoPeek extends Emitter {
|
|
|
166
171
|
/** Whether this client has a server-registered device identity yet. False only
|
|
167
172
|
* during a deferred connect, before restore()/registerDevice() completes. */
|
|
168
173
|
get deviceRegistered(): boolean;
|
|
174
|
+
/** This device's public ECDH key (JWK) — what welcomes are wrapped to. */
|
|
175
|
+
get devicePublicKeyJwk(): JsonWebKey;
|
|
169
176
|
/**
|
|
170
177
|
* Complete a deferred connect by registering a brand-new device. Call this
|
|
171
178
|
* only when the user has NO restorable backup (genuine new user/device) —
|
|
@@ -201,6 +208,19 @@ export declare class NoPeek extends Emitter {
|
|
|
201
208
|
private handleWelcome;
|
|
202
209
|
/** Fetch any welcomes we missed while offline. */
|
|
203
210
|
syncChannelKey(channelId: string, mlsGroupId: string): Promise<boolean>;
|
|
211
|
+
/** Channels already checked for a self-addressed welcome this session. */
|
|
212
|
+
private selfWelcomeChecked;
|
|
213
|
+
/**
|
|
214
|
+
* Self-heal for channels created before establishKeys wrapped the welcome to
|
|
215
|
+
* the creator's OWN device: if this device HOLDS the channel key but no
|
|
216
|
+
* welcome in the group addresses this deviceId, post one (wrapped to
|
|
217
|
+
* ourselves). A future device that restores this identity from the encrypted
|
|
218
|
+
* backup — or an already-restored device sharing this deviceId — can then
|
|
219
|
+
* pull the key via syncChannelKey even when the backup's channel-key map is
|
|
220
|
+
* stale. Runs at most once per channel per device (persisted mark);
|
|
221
|
+
* best-effort and safe to fire-and-forget.
|
|
222
|
+
*/
|
|
223
|
+
ensureSelfWelcome(channelId: string, mlsGroupId: string | null | undefined): Promise<void>;
|
|
204
224
|
/** In-flight key recoveries, deduped per channel so a burst of undecryptable
|
|
205
225
|
* frames triggers a single welcome sync rather than one fetch per message. */
|
|
206
226
|
private keyRecovery;
|
|
@@ -233,7 +253,24 @@ export declare class NoPeek extends Emitter {
|
|
|
233
253
|
* password was reset). Accepts a string (treated as a recovery code, legacy)
|
|
234
254
|
* or `{ password?, recoveryCode? }`.
|
|
235
255
|
*/
|
|
236
|
-
backup(secrets
|
|
256
|
+
backup(secrets?: BackupSecrets | string): Promise<string>;
|
|
257
|
+
/** Where the current backup envelope's raw data key is cached on this device.
|
|
258
|
+
* Sensitivity-equivalent to the channel keys (`nopeek:<user>:channelKeys`)
|
|
259
|
+
* already persisted in the same store — it decrypts a payload containing
|
|
260
|
+
* exactly those keys plus the device identity, both stored beside it. */
|
|
261
|
+
private backupDkStoreKey;
|
|
262
|
+
/** Whether this device holds a cached backup data key — i.e. backup() can
|
|
263
|
+
* refresh the envelope with NO password/recovery code in memory. */
|
|
264
|
+
hasCachedBackupKey(): Promise<boolean>;
|
|
265
|
+
/**
|
|
266
|
+
* Pull channel keys this device is missing from the newest backup, using the
|
|
267
|
+
* locally cached data key (no password/recovery code needed). This is the
|
|
268
|
+
* flip side of the secret-less refresh: a device that restored BEFORE some
|
|
269
|
+
* key entered the backup can pick it up later, once any key-holding device
|
|
270
|
+
* has refreshed the envelope. Emits `channelKeyReceived` per new channel so
|
|
271
|
+
* open chats re-decrypt in place. Returns how many keys were added.
|
|
272
|
+
*/
|
|
273
|
+
refreshKeysFromBackup(): Promise<number>;
|
|
237
274
|
/**
|
|
238
275
|
* Restore chats on a NEW device from the latest encrypted backup. Pass the
|
|
239
276
|
* account password (preferred) and/or the recovery code — whichever unlocks
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -27,8 +27,12 @@ const defaultStore = () => {
|
|
|
27
27
|
}
|
|
28
28
|
return new MemoryStore();
|
|
29
29
|
};
|
|
30
|
-
/**
|
|
31
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Streamed messages edit at most ~every 120 ms (plus natural boundaries).
|
|
32
|
+
* More frequent, smaller edits feed the client-side typewriter reveal a steady
|
|
33
|
+
* trickle so the visible text eases in smoothly instead of arriving in big jumps.
|
|
34
|
+
*/
|
|
35
|
+
const STREAM_THROTTLE_MS = 120;
|
|
32
36
|
class Emitter {
|
|
33
37
|
listeners = new Map();
|
|
34
38
|
on(event, fn) {
|
|
@@ -87,13 +91,26 @@ export class NoPeek extends Emitter {
|
|
|
87
91
|
await np.ensureDevice();
|
|
88
92
|
// With deferDeviceRegistration and no locally saved identity there is no
|
|
89
93
|
// deviceId yet — key packages and the WS wait for restore()/registerDevice().
|
|
90
|
-
|
|
94
|
+
// With autoConnectWs:false, EVERYTHING networked is deferred to bringOnline()
|
|
95
|
+
// — connect() returns after only the local device load, so a returning user
|
|
96
|
+
// can render the cached UI instantly and come online in the background.
|
|
97
|
+
if (np.deviceId && np.autoWs) {
|
|
91
98
|
await np.ensureKeyPackages();
|
|
92
|
-
|
|
93
|
-
await np.connectWs();
|
|
99
|
+
await np.connectWs();
|
|
94
100
|
}
|
|
95
101
|
return np;
|
|
96
102
|
}
|
|
103
|
+
/** Bring a deferred (autoConnectWs:false) client online in the background:
|
|
104
|
+
* publish key packages and open the WebSocket. Idempotent — a no-op if the
|
|
105
|
+
* socket is already up. This is what keeps cold-start instant: connect()
|
|
106
|
+
* returns from local storage alone, then the app calls bringOnline(). */
|
|
107
|
+
async bringOnline() {
|
|
108
|
+
if (!this.deviceId)
|
|
109
|
+
return;
|
|
110
|
+
await this.ensureKeyPackages();
|
|
111
|
+
if (!this.ws)
|
|
112
|
+
await this.connectWs();
|
|
113
|
+
}
|
|
97
114
|
constructor(opts) {
|
|
98
115
|
super();
|
|
99
116
|
this.apiUrl = opts.apiUrl.replace(/\/$/, "");
|
|
@@ -188,6 +205,10 @@ export class NoPeek extends Emitter {
|
|
|
188
205
|
get deviceRegistered() {
|
|
189
206
|
return Boolean(this.deviceId);
|
|
190
207
|
}
|
|
208
|
+
/** This device's public ECDH key (JWK) — what welcomes are wrapped to. */
|
|
209
|
+
get devicePublicKeyJwk() {
|
|
210
|
+
return this.keys.publicKeyJwk;
|
|
211
|
+
}
|
|
191
212
|
/**
|
|
192
213
|
* Complete a deferred connect by registering a brand-new device. Call this
|
|
193
214
|
* only when the user has NO restorable backup (genuine new user/device) —
|
|
@@ -485,6 +506,52 @@ export class NoPeek extends Emitter {
|
|
|
485
506
|
}
|
|
486
507
|
return false;
|
|
487
508
|
}
|
|
509
|
+
/** Channels already checked for a self-addressed welcome this session. */
|
|
510
|
+
selfWelcomeChecked = new Set();
|
|
511
|
+
/**
|
|
512
|
+
* Self-heal for channels created before establishKeys wrapped the welcome to
|
|
513
|
+
* the creator's OWN device: if this device HOLDS the channel key but no
|
|
514
|
+
* welcome in the group addresses this deviceId, post one (wrapped to
|
|
515
|
+
* ourselves). A future device that restores this identity from the encrypted
|
|
516
|
+
* backup — or an already-restored device sharing this deviceId — can then
|
|
517
|
+
* pull the key via syncChannelKey even when the backup's channel-key map is
|
|
518
|
+
* stale. Runs at most once per channel per device (persisted mark);
|
|
519
|
+
* best-effort and safe to fire-and-forget.
|
|
520
|
+
*/
|
|
521
|
+
async ensureSelfWelcome(channelId, mlsGroupId) {
|
|
522
|
+
if (!mlsGroupId || this.deriveChannelKey || !this.deviceId)
|
|
523
|
+
return; // preshared mode has no welcomes
|
|
524
|
+
const key = this.channelKeys.get(channelId);
|
|
525
|
+
if (!key)
|
|
526
|
+
return;
|
|
527
|
+
if (this.selfWelcomeChecked.has(channelId))
|
|
528
|
+
return;
|
|
529
|
+
this.selfWelcomeChecked.add(channelId);
|
|
530
|
+
const mark = `nopeek:${this.userId}:selfWelcomed:${channelId}`;
|
|
531
|
+
try {
|
|
532
|
+
if (await this.store.get(mark))
|
|
533
|
+
return;
|
|
534
|
+
const { handshakes } = await this.api("GET", `/v1/apps/${this.appId}/mls/groups/${mlsGroupId}/handshakes?sinceEpoch=0`);
|
|
535
|
+
const covered = handshakes.some((h) => h.kind === "welcome" && h.recipientDeviceIds?.includes(this.deviceId));
|
|
536
|
+
if (!covered) {
|
|
537
|
+
const wrapped = await wrapChannelKey(key, [{ deviceId: this.deviceId, publicKeyJwk: this.keys.publicKeyJwk }]);
|
|
538
|
+
const welcome = { suite: "npdev-1", channelId, wrapped };
|
|
539
|
+
// Only `commit` handshakes are epoch-guarded server-side; welcomes
|
|
540
|
+
// append at the steady-state epoch (same as the member-add flow).
|
|
541
|
+
await this.api("POST", `/v1/apps/${this.appId}/mls/groups/${mlsGroupId}/handshakes`, {
|
|
542
|
+
epoch: 1,
|
|
543
|
+
kind: "welcome",
|
|
544
|
+
senderDeviceId: this.deviceId,
|
|
545
|
+
recipientDeviceIds: [this.deviceId],
|
|
546
|
+
payload: b64.enc(new TextEncoder().encode(JSON.stringify(welcome))),
|
|
547
|
+
});
|
|
548
|
+
}
|
|
549
|
+
await this.store.set(mark, "1");
|
|
550
|
+
}
|
|
551
|
+
catch {
|
|
552
|
+
this.selfWelcomeChecked.delete(channelId); // retry on a later ensureKey
|
|
553
|
+
}
|
|
554
|
+
}
|
|
488
555
|
/** In-flight key recoveries, deduped per channel so a burst of undecryptable
|
|
489
556
|
* frames triggers a single welcome sync rather than one fetch per message. */
|
|
490
557
|
keyRecovery = new Map();
|
|
@@ -549,21 +616,30 @@ export class NoPeek extends Emitter {
|
|
|
549
616
|
* password was reset). Accepts a string (treated as a recovery code, legacy)
|
|
550
617
|
* or `{ password?, recoveryCode? }`.
|
|
551
618
|
*/
|
|
552
|
-
async backup(secrets) {
|
|
619
|
+
async backup(secrets = {}) {
|
|
553
620
|
const s = typeof secrets === "string" ? { recoveryCode: secrets } : secrets;
|
|
554
|
-
if (!s.password && !s.recoveryCode)
|
|
555
|
-
throw new Error("backup requires a password or a recovery code");
|
|
556
621
|
// WRAP PRESERVATION: a refresh that only knows ONE secret (the common case —
|
|
557
622
|
// after login only the password is in memory) must NOT drop the other unlock
|
|
558
623
|
// path. If we can unwrap the existing envelope's data key, reuse it and carry
|
|
559
624
|
// forward any wraps we can't recreate; otherwise start a fresh envelope.
|
|
625
|
+
//
|
|
626
|
+
// SECRET-LESS REFRESH: with NO secrets at all, the envelope's data key can
|
|
627
|
+
// still come from the locally cached copy (persisted by every successful
|
|
628
|
+
// backup/restore on this device — same trust domain as the channel keys it
|
|
629
|
+
// protects). This is what lets a boot session (password long gone from
|
|
630
|
+
// memory) fold a freshly acquired channel key into the backup, so a future
|
|
631
|
+
// new-device sign-in can decrypt ALL history, not just the channels that
|
|
632
|
+
// existed at last login.
|
|
560
633
|
let dataKey = await generateChannelKey();
|
|
561
634
|
let rawDK = await exportRawKeyB64(dataKey);
|
|
635
|
+
let reusedDK = false;
|
|
562
636
|
const carried = {};
|
|
637
|
+
let remoteChannelKeys = null;
|
|
563
638
|
try {
|
|
564
639
|
const { backups } = await this.api("GET", `/v1/apps/${this.appId}/users/${this.userId}/history-backups`);
|
|
565
|
-
const
|
|
566
|
-
|
|
640
|
+
const newest = backups[0];
|
|
641
|
+
const kd = newest?.keyDerivation;
|
|
642
|
+
if (newest && kd?.scheme === "wrapped-v2" && kd.wraps) {
|
|
567
643
|
let oldDK = null;
|
|
568
644
|
const unlockers = [
|
|
569
645
|
["password", s.password],
|
|
@@ -590,7 +666,31 @@ export class NoPeek extends Emitter {
|
|
|
590
666
|
// recovery wrap forward instead of orphaning it under a fresh dk.
|
|
591
667
|
if (!oldDK && this.escrowRestoredDK)
|
|
592
668
|
oldDK = this.escrowRestoredDK;
|
|
669
|
+
// Locally cached data key (validated below against the actual payload —
|
|
670
|
+
// it may be stale if another device re-created the envelope).
|
|
671
|
+
const cachedDK = oldDK ? null : await this.store.get(this.backupDkStoreKey());
|
|
672
|
+
// Download the existing payload when we hold a dk candidate: it VALIDATES
|
|
673
|
+
// a cached dk and lets us MERGE channel keys this device doesn't hold, so
|
|
674
|
+
// a device that restored an older/partial backup never clobbers a richer
|
|
675
|
+
// one. Best-effort — a failed download must not break a secret-unlocked
|
|
676
|
+
// refresh (wrap preservation worked without it before).
|
|
677
|
+
const candidate = oldDK ?? cachedDK;
|
|
678
|
+
if (candidate && newest.downloadUrl) {
|
|
679
|
+
try {
|
|
680
|
+
const res = await fetch(newest.downloadUrl);
|
|
681
|
+
if (res.ok) {
|
|
682
|
+
const ct = b64.enc(new Uint8Array(await res.arrayBuffer()));
|
|
683
|
+
const payload = await decryptPayload(await importRawKeyB64(candidate), ct);
|
|
684
|
+
remoteChannelKeys = payload.channelKeys ?? null;
|
|
685
|
+
oldDK = candidate; // decrypt success ⇒ the cached dk is the live one
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
catch {
|
|
689
|
+
/* download/decrypt failed — cached dk unproven, secret-unlocked dk still fine */
|
|
690
|
+
}
|
|
691
|
+
}
|
|
593
692
|
if (oldDK) {
|
|
693
|
+
reusedDK = true;
|
|
594
694
|
rawDK = oldDK;
|
|
595
695
|
dataKey = await importRawKeyB64(oldDK);
|
|
596
696
|
for (const kind of ["password", "recovery"]) {
|
|
@@ -598,12 +698,39 @@ export class NoPeek extends Emitter {
|
|
|
598
698
|
if (!provided && kd.wraps[kind])
|
|
599
699
|
carried[kind] = kd.wraps[kind];
|
|
600
700
|
}
|
|
701
|
+
// Same dk ⇒ the existing escrow wrap is still valid; carry it so a
|
|
702
|
+
// transiently unreachable escrow config doesn't drop the escrow path.
|
|
703
|
+
if (kd.wraps.escrow)
|
|
704
|
+
carried.escrow = kd.wraps.escrow;
|
|
601
705
|
}
|
|
602
706
|
}
|
|
603
707
|
}
|
|
604
708
|
catch {
|
|
605
709
|
/* no existing backup / fetch failed — fresh envelope below */
|
|
606
710
|
}
|
|
711
|
+
// A fresh envelope's dk is wrapped only under the provided secrets — with
|
|
712
|
+
// none, the backup would be unrecoverable, so refuse.
|
|
713
|
+
if (!s.password && !s.recoveryCode && !reusedDK) {
|
|
714
|
+
throw new Error("backup requires a password or a recovery code");
|
|
715
|
+
}
|
|
716
|
+
// Merge: keys from the existing backup that this device lacks stay in the
|
|
717
|
+
// new payload (and heal this device's local key store while we're at it).
|
|
718
|
+
if (remoteChannelKeys) {
|
|
719
|
+
let healed = false;
|
|
720
|
+
for (const [chId, raw] of Object.entries(remoteChannelKeys)) {
|
|
721
|
+
if (this.channelKeys.has(chId))
|
|
722
|
+
continue;
|
|
723
|
+
try {
|
|
724
|
+
this.channelKeys.set(chId, await importChannelKey(raw));
|
|
725
|
+
healed = true;
|
|
726
|
+
}
|
|
727
|
+
catch {
|
|
728
|
+
/* skip a corrupt entry */
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
if (healed)
|
|
732
|
+
await this.persistChannelKeys();
|
|
733
|
+
}
|
|
607
734
|
const channelKeys = {};
|
|
608
735
|
for (const [chId, k] of this.channelKeys)
|
|
609
736
|
channelKeys[chId] = await exportChannelKey(k);
|
|
@@ -641,8 +768,73 @@ export class NoPeek extends Emitter {
|
|
|
641
768
|
const put = await fetch(uploadUrl, { method: "PUT", body: bytes, headers: { "content-type": "application/octet-stream" } });
|
|
642
769
|
if (!put.ok)
|
|
643
770
|
throw new Error(`backup upload failed: HTTP ${put.status}`);
|
|
771
|
+
// Cache the envelope's data key so future refreshes on this device need no
|
|
772
|
+
// secret (see the secret-less-refresh note above).
|
|
773
|
+
try {
|
|
774
|
+
await this.store.set(this.backupDkStoreKey(), rawDK);
|
|
775
|
+
}
|
|
776
|
+
catch {
|
|
777
|
+
/* store hiccup — the backup itself succeeded */
|
|
778
|
+
}
|
|
644
779
|
return rec.backupId;
|
|
645
780
|
}
|
|
781
|
+
/** Where the current backup envelope's raw data key is cached on this device.
|
|
782
|
+
* Sensitivity-equivalent to the channel keys (`nopeek:<user>:channelKeys`)
|
|
783
|
+
* already persisted in the same store — it decrypts a payload containing
|
|
784
|
+
* exactly those keys plus the device identity, both stored beside it. */
|
|
785
|
+
backupDkStoreKey() {
|
|
786
|
+
return `nopeek:${this.userId}:backupDk`;
|
|
787
|
+
}
|
|
788
|
+
/** Whether this device holds a cached backup data key — i.e. backup() can
|
|
789
|
+
* refresh the envelope with NO password/recovery code in memory. */
|
|
790
|
+
async hasCachedBackupKey() {
|
|
791
|
+
try {
|
|
792
|
+
return Boolean(await this.store.get(this.backupDkStoreKey()));
|
|
793
|
+
}
|
|
794
|
+
catch {
|
|
795
|
+
return false;
|
|
796
|
+
}
|
|
797
|
+
}
|
|
798
|
+
/**
|
|
799
|
+
* Pull channel keys this device is missing from the newest backup, using the
|
|
800
|
+
* locally cached data key (no password/recovery code needed). This is the
|
|
801
|
+
* flip side of the secret-less refresh: a device that restored BEFORE some
|
|
802
|
+
* key entered the backup can pick it up later, once any key-holding device
|
|
803
|
+
* has refreshed the envelope. Emits `channelKeyReceived` per new channel so
|
|
804
|
+
* open chats re-decrypt in place. Returns how many keys were added.
|
|
805
|
+
*/
|
|
806
|
+
async refreshKeysFromBackup() {
|
|
807
|
+
const rawDK = await this.store.get(this.backupDkStoreKey());
|
|
808
|
+
if (!rawDK)
|
|
809
|
+
throw new Error("No cached backup key on this device — restore with a password or recovery code.");
|
|
810
|
+
const { backups } = await this.api("GET", `/v1/apps/${this.appId}/users/${this.userId}/history-backups`);
|
|
811
|
+
if (!backups.length)
|
|
812
|
+
return 0;
|
|
813
|
+
const res = await fetch(backups[0].downloadUrl);
|
|
814
|
+
if (!res.ok)
|
|
815
|
+
throw new Error(`backup download failed: HTTP ${res.status}`);
|
|
816
|
+
const ct = b64.enc(new Uint8Array(await res.arrayBuffer()));
|
|
817
|
+
// Throws if the envelope was re-keyed by another device (stale cached dk).
|
|
818
|
+
const payload = await decryptPayload(await importRawKeyB64(rawDK), ct);
|
|
819
|
+
const added = [];
|
|
820
|
+
for (const [chId, raw] of Object.entries(payload.channelKeys ?? {})) {
|
|
821
|
+
if (this.channelKeys.has(chId))
|
|
822
|
+
continue;
|
|
823
|
+
try {
|
|
824
|
+
this.channelKeys.set(chId, await importChannelKey(raw));
|
|
825
|
+
added.push(chId);
|
|
826
|
+
}
|
|
827
|
+
catch {
|
|
828
|
+
/* skip a corrupt entry */
|
|
829
|
+
}
|
|
830
|
+
}
|
|
831
|
+
if (added.length) {
|
|
832
|
+
await this.persistChannelKeys();
|
|
833
|
+
for (const chId of added)
|
|
834
|
+
this.emit("channelKeyReceived", { channelId: chId });
|
|
835
|
+
}
|
|
836
|
+
return added.length;
|
|
837
|
+
}
|
|
646
838
|
/**
|
|
647
839
|
* Restore chats on a NEW device from the latest encrypted backup. Pass the
|
|
648
840
|
* account password (preferred) and/or the recovery code — whichever unlocks
|
|
@@ -663,6 +855,7 @@ export class NoPeek extends Emitter {
|
|
|
663
855
|
let payload;
|
|
664
856
|
if (kd.scheme === "wrapped-v2") {
|
|
665
857
|
let dataKey = null;
|
|
858
|
+
let rawDK = null;
|
|
666
859
|
for (const [kind, secret] of [["password", s.password], ["recovery", s.recoveryCode]]) {
|
|
667
860
|
const w = secret && kd.wraps?.[kind];
|
|
668
861
|
if (!w)
|
|
@@ -671,6 +864,7 @@ export class NoPeek extends Emitter {
|
|
|
671
864
|
const kek = await deriveBackupKey(secret, w.salt, w.iterations);
|
|
672
865
|
const { dk } = await decryptPayload(kek, w.wrapped);
|
|
673
866
|
dataKey = await importRawKeyB64(dk);
|
|
867
|
+
rawDK = dk;
|
|
674
868
|
break;
|
|
675
869
|
}
|
|
676
870
|
catch {
|
|
@@ -680,6 +874,16 @@ export class NoPeek extends Emitter {
|
|
|
680
874
|
if (!dataKey)
|
|
681
875
|
throw new Error("Couldn't unlock the backup with the provided password or recovery code.");
|
|
682
876
|
payload = await decryptPayload(dataKey, ct);
|
|
877
|
+
// Cache the data key: this restored device can then refresh the backup and
|
|
878
|
+
// pull later-added keys (refreshKeysFromBackup) with no secret in memory.
|
|
879
|
+
if (rawDK) {
|
|
880
|
+
try {
|
|
881
|
+
await this.store.set(this.backupDkStoreKey(), rawDK);
|
|
882
|
+
}
|
|
883
|
+
catch {
|
|
884
|
+
/* store hiccup — restore itself succeeded */
|
|
885
|
+
}
|
|
886
|
+
}
|
|
683
887
|
}
|
|
684
888
|
else {
|
|
685
889
|
// legacy single-layer backup: payload keyed directly off the recovery code
|
|
@@ -750,6 +954,12 @@ export class NoPeek extends Emitter {
|
|
|
750
954
|
const ct = b64.enc(new Uint8Array(await res.arrayBuffer()));
|
|
751
955
|
const payload = await decryptPayload(dataKey, ct);
|
|
752
956
|
this.escrowRestoredDK = dk; // lets the next backup() carry old wraps forward
|
|
957
|
+
try {
|
|
958
|
+
await this.store.set(this.backupDkStoreKey(), dk); // secret-less refresh, as in restore()
|
|
959
|
+
}
|
|
960
|
+
catch {
|
|
961
|
+
/* store hiccup — restore itself succeeded */
|
|
962
|
+
}
|
|
753
963
|
await this.adoptBackedUpDevice(payload.device);
|
|
754
964
|
for (const [chId, raw] of Object.entries(payload.channelKeys)) {
|
|
755
965
|
this.channelKeys.set(chId, await importChannelKey(raw));
|
|
@@ -992,15 +1202,33 @@ export class Channel {
|
|
|
992
1202
|
async establishKeys(memberIds) {
|
|
993
1203
|
const key = await generateChannelKey();
|
|
994
1204
|
this.np.setChannelKey(this.channelId, key);
|
|
1205
|
+
// Wrap for EVERY member device — peers, the creator's OTHER devices, and
|
|
1206
|
+
// (crucially) this device itself. The self-wrap makes the welcome a durable
|
|
1207
|
+
// second carrier of the key: a future device that restores this identity
|
|
1208
|
+
// from the encrypted backup can always pull the key via syncChannelKey,
|
|
1209
|
+
// even when the backup's channel-key map predates this channel. Without it,
|
|
1210
|
+
// a creator-side key lives ONLY in local storage + whatever backup refresh
|
|
1211
|
+
// happened to run afterwards.
|
|
995
1212
|
const recipients = [];
|
|
996
|
-
const
|
|
997
|
-
for (const userId of
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
const
|
|
1001
|
-
|
|
1213
|
+
const users = [...new Set([...memberIds, this.np.userId])];
|
|
1214
|
+
for (const userId of users) {
|
|
1215
|
+
try {
|
|
1216
|
+
const { keyPackages } = await this.np.api("POST", `/v1/apps/${this.np.appId}/users/${userId}/key-packages/claim`);
|
|
1217
|
+
for (const kp of keyPackages) {
|
|
1218
|
+
if (kp.deviceId === this.np.deviceId)
|
|
1219
|
+
continue; // self added below with the known local key
|
|
1220
|
+
const parsed = JSON.parse(new TextDecoder().decode(b64.dec(kp.data)));
|
|
1221
|
+
recipients.push({ deviceId: kp.deviceId, publicKeyJwk: parsed.pub });
|
|
1222
|
+
}
|
|
1223
|
+
}
|
|
1224
|
+
catch (e) {
|
|
1225
|
+
// Our own OTHER devices are best-effort (they can restore via backup);
|
|
1226
|
+
// a peer we can't reach keys for is a real ceremony failure, as before.
|
|
1227
|
+
if (userId !== this.np.userId)
|
|
1228
|
+
throw e;
|
|
1002
1229
|
}
|
|
1003
1230
|
}
|
|
1231
|
+
recipients.push({ deviceId: this.np.deviceId, publicKeyJwk: this.np.devicePublicKeyJwk });
|
|
1004
1232
|
// advance epoch 0 -> 1 (server-enforced single writer)
|
|
1005
1233
|
await this.np.api("POST", `/v1/apps/${this.np.appId}/mls/groups/${this.record.mlsGroupId}/handshakes`, {
|
|
1006
1234
|
epoch: 0,
|
|
@@ -1024,8 +1252,12 @@ export class Channel {
|
|
|
1024
1252
|
async ensureKey() {
|
|
1025
1253
|
if (!this.e2ee)
|
|
1026
1254
|
return true;
|
|
1027
|
-
if (this.np.getChannelKey(this.channelId))
|
|
1255
|
+
if (this.np.getChannelKey(this.channelId)) {
|
|
1256
|
+
// We hold the key — make sure a welcome addressed to THIS device exists in
|
|
1257
|
+
// the group so a backup-restored successor of this identity can pull it.
|
|
1258
|
+
void this.np.ensureSelfWelcome(this.channelId, this.record.mlsGroupId);
|
|
1028
1259
|
return true;
|
|
1260
|
+
}
|
|
1029
1261
|
if (await this.np.deriveAndSet(this.channelId))
|
|
1030
1262
|
return true;
|
|
1031
1263
|
if (!this.record.mlsGroupId)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|