@agentunion/fastaun 0.3.2 → 0.3.4

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 (85) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/_packed_docs/CHANGELOG.md +43 -0
  3. package/_packed_docs/INDEX.md +81 -0
  4. package/_packed_docs/KITE_DOCS_GUIDE.md +55 -0
  5. package/_packed_docs/agent.md//350/277/234/347/250/213agent.md/347/274/223/345/255/230/344/270/216etag/351/200/217/344/274/240/346/226/271/346/241/210.md +328 -0
  6. package/_packed_docs/cli/AUN-CLI/350/256/276/350/256/241/346/226/207/346/241/243.md +686 -0
  7. package/_packed_docs/design//350/267/250/350/257/255/350/250/200/345/256/271/345/231/250E2E/346/265/213/350/257/225/346/226/271/346/241/210.md +665 -0
  8. package/_packed_docs/protocol//351/231/204/345/275/225N-/345/210/206/345/270/203/345/274/217Trace/345/215/217/350/256/256.md +257 -0
  9. package/_packed_docs/sdk/01-/345/277/253/351/200/237/345/274/200/345/247/213.md +5 -5
  10. package/_packed_docs/sdk/02-WebSocket/345/215/217/350/256/256.md +1 -1
  11. package/_packed_docs/sdk/03-/346/240/270/345/277/203/346/246/202/345/277/265.md +2 -2
  12. package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +454 -396
  13. package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +1410 -1244
  14. package/_packed_docs/sdk/07-/351/224/231/350/257/257/345/244/204/347/220/206.md +19 -1
  15. package/_packed_docs/sdk/08-/346/234/200/344/275/263/345/256/236/350/267/265.md +20 -5
  16. package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +6 -4
  17. package/_packed_docs/sdk/E2EE_V2/346/266/210/346/201/257/351/200/232/344/277/241/346/227/266/345/272/217/345/233/276.md +171 -0
  18. package/_packed_docs/sdk/INDEX.md +9 -4
  19. package/_packed_docs/sdk/README.md +3 -3
  20. package/dist/auth.d.ts +44 -8
  21. package/dist/auth.js +398 -119
  22. package/dist/auth.js.map +1 -1
  23. package/dist/client.d.ts +123 -19
  24. package/dist/client.js +2650 -673
  25. package/dist/client.js.map +1 -1
  26. package/dist/discovery.d.ts +4 -0
  27. package/dist/discovery.js +28 -13
  28. package/dist/discovery.js.map +1 -1
  29. package/dist/errors.d.ts +4 -0
  30. package/dist/errors.js +7 -0
  31. package/dist/errors.js.map +1 -1
  32. package/dist/events.d.ts +9 -0
  33. package/dist/events.js +42 -12
  34. package/dist/events.js.map +1 -1
  35. package/dist/index.d.ts +2 -2
  36. package/dist/index.js +2 -2
  37. package/dist/index.js.map +1 -1
  38. package/dist/keystore/aid-db.d.ts +4 -0
  39. package/dist/keystore/aid-db.js +94 -0
  40. package/dist/keystore/aid-db.js.map +1 -1
  41. package/dist/keystore/file.d.ts +23 -1
  42. package/dist/keystore/file.js +109 -1
  43. package/dist/keystore/file.js.map +1 -1
  44. package/dist/keystore/index.d.ts +20 -0
  45. package/dist/logger.d.ts +2 -0
  46. package/dist/logger.js +7 -4
  47. package/dist/logger.js.map +1 -1
  48. package/dist/namespaces/auth.d.ts +34 -4
  49. package/dist/namespaces/auth.js +194 -51
  50. package/dist/namespaces/auth.js.map +1 -1
  51. package/dist/net.d.ts +43 -0
  52. package/dist/net.js +192 -0
  53. package/dist/net.js.map +1 -0
  54. package/dist/secret-store/file-store.d.ts +21 -2
  55. package/dist/secret-store/file-store.js +166 -11
  56. package/dist/secret-store/file-store.js.map +1 -1
  57. package/dist/seq-tracker.d.ts +32 -3
  58. package/dist/seq-tracker.js +60 -3
  59. package/dist/seq-tracker.js.map +1 -1
  60. package/dist/tools/cross-sdk-agent.d.ts +2 -0
  61. package/dist/tools/cross-sdk-agent.js +695 -0
  62. package/dist/tools/cross-sdk-agent.js.map +1 -0
  63. package/dist/transport.d.ts +10 -1
  64. package/dist/transport.js +196 -32
  65. package/dist/transport.js.map +1 -1
  66. package/dist/v2/crypto/canonical.d.ts +1 -1
  67. package/dist/v2/crypto/canonical.js +42 -17
  68. package/dist/v2/crypto/canonical.js.map +1 -1
  69. package/dist/v2/e2ee/decrypt.js +57 -3
  70. package/dist/v2/e2ee/decrypt.js.map +1 -1
  71. package/dist/v2/e2ee/encrypt-group.js +16 -7
  72. package/dist/v2/e2ee/encrypt-group.js.map +1 -1
  73. package/dist/v2/e2ee/encrypt-p2p.js +42 -9
  74. package/dist/v2/e2ee/encrypt-p2p.js.map +1 -1
  75. package/dist/v2/e2ee/metadata-auth.d.ts +1 -0
  76. package/dist/v2/e2ee/metadata-auth.js +37 -1
  77. package/dist/v2/e2ee/metadata-auth.js.map +1 -1
  78. package/dist/v2/e2ee/types.d.ts +2 -2
  79. package/dist/v2/session/keystore.d.ts +10 -3
  80. package/dist/v2/session/keystore.js +158 -30
  81. package/dist/v2/session/keystore.js.map +1 -1
  82. package/dist/v2/session/session.d.ts +7 -3
  83. package/dist/v2/session/session.js +64 -12
  84. package/dist/v2/session/session.js.map +1 -1
  85. package/package.json +46 -46
@@ -9,15 +9,17 @@
9
9
  * - 接受任意 sqlite-like 句柄(exec / prepare),便于复用 AIDDatabase 的连接
10
10
  * - BLOB 字段返回 Uint8Array(node:sqlite 默认行为)
11
11
  */
12
+ import { createHash } from 'node:crypto';
12
13
  export const V2_DEVICE_KEYS_DDL = `
13
14
  CREATE TABLE IF NOT EXISTS v2_device_keys (
14
15
  device_id TEXT NOT NULL,
15
16
  key_type TEXT NOT NULL,
17
+ group_id TEXT NOT NULL DEFAULT '',
16
18
  key_id TEXT NOT NULL DEFAULT '',
17
19
  private_key BLOB NOT NULL,
18
20
  public_key BLOB NOT NULL,
19
21
  created_at INTEGER NOT NULL,
20
- PRIMARY KEY (device_id, key_type, key_id)
22
+ PRIMARY KEY (device_id, key_type, group_id, key_id)
21
23
  )`;
22
24
  function asBuffer(value) {
23
25
  if (value instanceof Uint8Array)
@@ -32,42 +34,136 @@ function asBuffer(value) {
32
34
  function toSqliteBlob(value) {
33
35
  return Buffer.isBuffer(value) ? value : Buffer.from(value.buffer, value.byteOffset, value.byteLength);
34
36
  }
37
+ function ikSpkId(pubDer) {
38
+ const hashHex = createHash('sha256').update(pubDer).digest('hex');
39
+ return `sha256:${hashHex.substring(0, 16)}`;
40
+ }
41
+ function isUploadedMarkerKeyType(keyType) {
42
+ return keyType === 'spk_uploaded' || keyType === 'group_spk_uploaded';
43
+ }
44
+ const UPLOADED_MARKER_BLOB = Buffer.from([0]);
45
+ function decodeLegacyTextHex(value) {
46
+ const hex = String(value ?? '');
47
+ return Buffer.from(hex, 'hex').toString('utf8');
48
+ }
49
+ function normalizeLegacyBlob(value, keyType) {
50
+ if (value === null || value === undefined) {
51
+ if (isUploadedMarkerKeyType(keyType))
52
+ return UPLOADED_MARKER_BLOB;
53
+ throw new Error(`missing v2 key blob for key_type=${keyType}`);
54
+ }
55
+ const blob = toSqliteBlob(asBuffer(value));
56
+ if (blob.length === 0 && isUploadedMarkerKeyType(keyType))
57
+ return UPLOADED_MARKER_BLOB;
58
+ return blob;
59
+ }
35
60
  export class V2KeyStore {
36
61
  db;
37
62
  constructor(db) {
38
63
  this.db = db;
39
64
  this.db.exec(V2_DEVICE_KEYS_DDL);
65
+ this._migrateSchema();
66
+ }
67
+ _migrateSchema() {
68
+ const rows = this.db.prepare('PRAGMA table_info(v2_device_keys)').all();
69
+ const hasGroupId = rows.some((r) => r.name === 'group_id');
70
+ const pkCols = rows.filter((r) => Number(r.pk) > 0).sort((a, b) => Number(a.pk) - Number(b.pk)).map((r) => r.name);
71
+ const pkOk = JSON.stringify(pkCols) === JSON.stringify(['device_id', 'key_type', 'group_id', 'key_id']);
72
+ if (hasGroupId && pkOk) {
73
+ this.db.exec('CREATE INDEX IF NOT EXISTS idx_v2_device_keys_scope_created ON v2_device_keys(device_id, key_type, group_id, created_at)');
74
+ return;
75
+ }
76
+ this.db.exec('BEGIN');
77
+ try {
78
+ this.db.exec('ALTER TABLE v2_device_keys RENAME TO v2_device_keys_legacy');
79
+ this.db.exec(`
80
+ CREATE TABLE v2_device_keys (
81
+ device_id TEXT NOT NULL,
82
+ key_type TEXT NOT NULL,
83
+ group_id TEXT NOT NULL DEFAULT '',
84
+ key_id TEXT NOT NULL DEFAULT '',
85
+ private_key BLOB NOT NULL,
86
+ public_key BLOB NOT NULL,
87
+ created_at INTEGER NOT NULL,
88
+ PRIMARY KEY (device_id, key_type, group_id, key_id)
89
+ )`);
90
+ const selectSql = hasGroupId
91
+ ? 'SELECT device_id, key_type, group_id, hex(key_id) AS key_id_hex, private_key, public_key, created_at FROM v2_device_keys_legacy'
92
+ : "SELECT device_id, key_type, '' AS group_id, hex(key_id) AS key_id_hex, private_key, public_key, created_at FROM v2_device_keys_legacy";
93
+ const legacyRows = this.db.prepare(selectSql).all();
94
+ const insert = this.db.prepare(`INSERT OR REPLACE INTO v2_device_keys
95
+ (device_id, key_type, group_id, key_id, private_key, public_key, created_at)
96
+ VALUES (?, ?, ?, ?, ?, ?, ?)`);
97
+ for (const row of legacyRows) {
98
+ let groupId = String(row.group_id ?? '');
99
+ let keyId = decodeLegacyTextHex(row.key_id_hex);
100
+ if (row.key_type === 'group_spk' || row.key_type === 'group_spk_uploaded') {
101
+ const keyIdBytes = Buffer.from(String(row.key_id_hex ?? ''), 'hex');
102
+ const sep = keyIdBytes.indexOf(0);
103
+ if (sep >= 0) {
104
+ groupId = keyIdBytes.subarray(0, sep).toString('utf8');
105
+ keyId = keyIdBytes.subarray(sep + 1).toString('utf8');
106
+ }
107
+ }
108
+ let privateKey;
109
+ let publicKey;
110
+ try {
111
+ privateKey = normalizeLegacyBlob(row.private_key, row.key_type);
112
+ publicKey = normalizeLegacyBlob(row.public_key, row.key_type);
113
+ }
114
+ catch {
115
+ continue;
116
+ }
117
+ insert.run(row.device_id, row.key_type, groupId, keyId, privateKey, publicKey, row.created_at);
118
+ }
119
+ this.db.exec('DROP TABLE v2_device_keys_legacy');
120
+ this.db.exec('CREATE INDEX IF NOT EXISTS idx_v2_device_keys_scope_created ON v2_device_keys(device_id, key_type, group_id, created_at)');
121
+ this.db.exec('COMMIT');
122
+ }
123
+ catch (err) {
124
+ this.db.exec('ROLLBACK');
125
+ throw err;
126
+ }
40
127
  }
41
128
  saveIK(deviceId, priv, pubDer) {
42
- this.db
43
- .prepare(`INSERT OR REPLACE INTO v2_device_keys (device_id, key_type, key_id, private_key, public_key, created_at)
44
- VALUES (?, 'ik', '', ?, ?, ?)`)
45
- .run(deviceId, toSqliteBlob(priv), toSqliteBlob(pubDer), Date.now());
129
+ const stmt = this.db.prepare(`INSERT OR REPLACE INTO v2_device_keys (device_id, key_type, group_id, key_id, private_key, public_key, created_at)
130
+ VALUES (?, 'ik', '', ?, ?, ?, ?)`);
131
+ const now = Date.now();
132
+ stmt.run(deviceId, '', toSqliteBlob(priv), toSqliteBlob(pubDer), now);
133
+ stmt.run(deviceId, ikSpkId(pubDer), toSqliteBlob(priv), toSqliteBlob(pubDer), now);
46
134
  }
47
135
  loadIK(deviceId) {
48
136
  const row = this.db
49
- .prepare(`SELECT private_key, public_key FROM v2_device_keys WHERE device_id=? AND key_type='ik' AND key_id=''`)
137
+ .prepare(`SELECT private_key, public_key FROM v2_device_keys WHERE device_id=? AND key_type='ik' AND group_id='' AND key_id=''`)
50
138
  .get(deviceId);
51
139
  if (!row)
52
140
  return null;
53
141
  return { priv: asBuffer(row.private_key), pubDer: asBuffer(row.public_key) };
54
142
  }
143
+ loadIKSPK(deviceId, spkId) {
144
+ const row = this.db
145
+ .prepare(`SELECT private_key, public_key FROM v2_device_keys WHERE device_id=? AND key_type='ik' AND group_id='' AND key_id=?`)
146
+ .get(deviceId, spkId);
147
+ if (!row)
148
+ return null;
149
+ return { priv: asBuffer(row.private_key), pubDer: asBuffer(row.public_key) };
150
+ }
55
151
  saveSPK(deviceId, spkId, priv, pubDer) {
56
152
  this.db
57
- .prepare(`INSERT OR REPLACE INTO v2_device_keys (device_id, key_type, key_id, private_key, public_key, created_at)
58
- VALUES (?, 'spk', ?, ?, ?, ?)`)
153
+ .prepare(`INSERT OR REPLACE INTO v2_device_keys (device_id, key_type, group_id, key_id, private_key, public_key, created_at)
154
+ VALUES (?, 'spk', '', ?, ?, ?, ?)`)
59
155
  .run(deviceId, spkId, toSqliteBlob(priv), toSqliteBlob(pubDer), Date.now());
60
156
  }
61
157
  loadSPK(deviceId, spkId) {
62
158
  const row = this.db
63
- .prepare(`SELECT private_key FROM v2_device_keys WHERE device_id=? AND key_type='spk' AND key_id=?`)
159
+ .prepare(`SELECT private_key FROM v2_device_keys WHERE device_id=? AND key_type='spk' AND group_id='' AND key_id=?`)
64
160
  .get(deviceId, spkId);
65
161
  return row ? asBuffer(row.private_key) : null;
66
162
  }
67
163
  loadCurrentSPK(deviceId) {
68
164
  const row = this.db
69
165
  .prepare(`SELECT key_id, private_key, public_key FROM v2_device_keys
70
- WHERE device_id=? AND key_type='spk' ORDER BY created_at DESC, key_id DESC LIMIT 1`)
166
+ WHERE device_id=? AND key_type='spk' AND group_id='' ORDER BY created_at DESC, key_id DESC LIMIT 1`)
71
167
  .get(deviceId);
72
168
  if (!row)
73
169
  return null;
@@ -79,15 +175,36 @@ export class V2KeyStore {
79
175
  }
80
176
  deleteSPK(deviceId, spkId) {
81
177
  this.db
82
- .prepare(`DELETE FROM v2_device_keys WHERE device_id=? AND key_type='spk' AND key_id=?`)
178
+ .prepare(`DELETE FROM v2_device_keys WHERE device_id=? AND key_type='spk' AND group_id='' AND key_id=?`)
83
179
  .run(deviceId, spkId);
180
+ this.db
181
+ .prepare(`DELETE FROM v2_device_keys WHERE device_id=? AND key_type='spk_uploaded' AND group_id='' AND key_id=?`)
182
+ .run(deviceId, spkId);
183
+ }
184
+ markSPKUploaded(deviceId, spkId) {
185
+ this.db
186
+ .prepare(`INSERT OR REPLACE INTO v2_device_keys (device_id, key_type, group_id, key_id, private_key, public_key, created_at)
187
+ VALUES (?, 'spk_uploaded', '', ?, ?, ?, ?)`)
188
+ .run(deviceId, spkId, UPLOADED_MARKER_BLOB, UPLOADED_MARKER_BLOB, Date.now());
189
+ }
190
+ loadLatestUploadedSPKId(deviceId) {
191
+ const row = this.db
192
+ .prepare(`SELECT marker.key_id FROM v2_device_keys AS marker
193
+ WHERE marker.device_id=? AND marker.key_type='spk_uploaded' AND marker.group_id=''
194
+ AND EXISTS (
195
+ SELECT 1 FROM v2_device_keys AS key
196
+ WHERE key.device_id=marker.device_id AND key.key_type='spk' AND key.group_id='' AND key.key_id=marker.key_id
197
+ )
198
+ ORDER BY marker.created_at DESC LIMIT 1`)
199
+ .get(deviceId);
200
+ return row ? row.key_id : null;
84
201
  }
85
202
  listRecentSPKIds(deviceId, n) {
86
203
  if (n <= 0)
87
204
  return [];
88
205
  const rows = this.db
89
206
  .prepare(`SELECT key_id FROM v2_device_keys
90
- WHERE device_id=? AND key_type='spk' ORDER BY created_at DESC, key_id DESC LIMIT ?`)
207
+ WHERE device_id=? AND key_type='spk' AND group_id='' ORDER BY created_at DESC, key_id DESC LIMIT ?`)
91
208
  .all(deviceId, n);
92
209
  return rows.map((r) => r.key_id);
93
210
  }
@@ -95,44 +212,55 @@ export class V2KeyStore {
95
212
  const cutoff = Date.now() / 1000 - maxAgeMs / 1000;
96
213
  const rows = this.db
97
214
  .prepare(`SELECT key_id FROM v2_device_keys
98
- WHERE device_id=? AND key_type='spk' AND created_at < ?`)
215
+ WHERE device_id=? AND key_type='spk' AND group_id='' AND created_at < ?`)
99
216
  .all(deviceId, cutoff);
100
217
  return rows.map((r) => r.key_id);
101
218
  }
102
219
  // ── Group SPK ──────────────────────────────────────────────────
103
- /** 复合 key_id: `${groupId}\0${spkId}` */
104
- _groupSPKKeyId(groupId, spkId) {
105
- return `${groupId}\0${spkId}`;
106
- }
107
220
  saveGroupSPK(deviceId, groupId, spkId, priv, pubDer) {
108
221
  this.db
109
- .prepare(`INSERT OR REPLACE INTO v2_device_keys (device_id, key_type, key_id, private_key, public_key, created_at)
110
- VALUES (?, 'group_spk', ?, ?, ?, ?)`)
111
- .run(deviceId, this._groupSPKKeyId(groupId, spkId), toSqliteBlob(priv), toSqliteBlob(pubDer), Date.now());
222
+ .prepare(`INSERT OR REPLACE INTO v2_device_keys (device_id, key_type, group_id, key_id, private_key, public_key, created_at)
223
+ VALUES (?, 'group_spk', ?, ?, ?, ?, ?)`)
224
+ .run(deviceId, groupId, spkId, toSqliteBlob(priv), toSqliteBlob(pubDer), Date.now());
112
225
  }
113
226
  loadGroupSPK(deviceId, groupId, spkId) {
114
227
  const row = this.db
115
- .prepare(`SELECT private_key FROM v2_device_keys WHERE device_id=? AND key_type='group_spk' AND key_id=?`)
116
- .get(deviceId, this._groupSPKKeyId(groupId, spkId));
228
+ .prepare(`SELECT private_key FROM v2_device_keys
229
+ WHERE device_id=? AND key_type='group_spk' AND group_id=? AND key_id=?`)
230
+ .get(deviceId, groupId, spkId);
117
231
  return row ? asBuffer(row.private_key) : null;
118
232
  }
119
233
  loadCurrentGroupSPK(deviceId, groupId) {
120
- const prefix = `${groupId}\0%`;
121
234
  const row = this.db
122
235
  .prepare(`SELECT key_id, private_key, public_key FROM v2_device_keys
123
- WHERE device_id=? AND key_type='group_spk' AND key_id LIKE ?
124
- ORDER BY created_at DESC LIMIT 1`)
125
- .get(deviceId, prefix);
236
+ WHERE device_id=? AND key_type='group_spk' AND group_id=?
237
+ ORDER BY created_at DESC, key_id DESC LIMIT 1`)
238
+ .get(deviceId, groupId);
126
239
  if (!row)
127
240
  return null;
128
- // key_id = "{groupId}\0{spkId}",提取 spkId
129
- const parts = row.key_id.split('\0');
130
- const spkId = parts.length > 1 ? parts[1] : row.key_id;
131
241
  return {
132
- spkId,
242
+ spkId: row.key_id,
133
243
  priv: asBuffer(row.private_key),
134
244
  pubDer: asBuffer(row.public_key),
135
245
  };
136
246
  }
247
+ markGroupSPKUploaded(deviceId, groupId, spkId) {
248
+ this.db
249
+ .prepare(`INSERT OR REPLACE INTO v2_device_keys (device_id, key_type, group_id, key_id, private_key, public_key, created_at)
250
+ VALUES (?, 'group_spk_uploaded', ?, ?, ?, ?, ?)`)
251
+ .run(deviceId, groupId, spkId, UPLOADED_MARKER_BLOB, UPLOADED_MARKER_BLOB, Date.now());
252
+ }
253
+ loadLatestUploadedGroupSPKId(deviceId, groupId) {
254
+ const row = this.db
255
+ .prepare(`SELECT marker.key_id FROM v2_device_keys AS marker
256
+ WHERE marker.device_id=? AND marker.key_type='group_spk_uploaded' AND marker.group_id=?
257
+ AND EXISTS (
258
+ SELECT 1 FROM v2_device_keys AS key
259
+ WHERE key.device_id=marker.device_id AND key.key_type='group_spk' AND key.group_id=marker.group_id AND key.key_id=marker.key_id
260
+ )
261
+ ORDER BY marker.created_at DESC, marker.key_id DESC LIMIT 1`)
262
+ .get(deviceId, groupId);
263
+ return row ? row.key_id : null;
264
+ }
137
265
  }
138
266
  //# sourceMappingURL=keystore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keystore.js","sourceRoot":"","sources":["../../../src/v2/session/keystore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keystore.js","sourceRoot":"","sources":["../../../src/v2/session/keystore.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,7 @@ export declare class V2Session {
45
45
  private _peerIKCache;
46
46
  private _verifiedSPKs;
47
47
  private _oldSPKMaxSeq;
48
+ private _spkCache;
48
49
  private _nowFn;
49
50
  constructor(store: V2KeyStore, deviceId: string, aid: string, ikPriv: Uint8Array, ikPubDer: Uint8Array);
50
51
  /** 测试用:注入虚拟时钟。 */
@@ -58,6 +59,8 @@ export declare class V2Session {
58
59
  /** 加载或生成当前 SPK;IK 由构造函数注入,无需加载。 */
59
60
  ensureKeys(): void;
60
61
  private _generateNewSPK;
62
+ private _ikSPKId;
63
+ private _normalizeGroupSPKLookup;
61
64
  /** 注册本设备 SPK 到服务端。IK = AID 长期密钥,无需注册。 */
62
65
  ensureRegistered(callFn: CallFn): Promise<void>;
63
66
  /** SPK 由 AID 私钥(IK)签名背书,并上报到 message.v2.put_peer_pk。 */
@@ -67,8 +70,9 @@ export declare class V2Session {
67
70
  /**
68
71
  * 返回解密所需的私钥。
69
72
  * - spkId 空:1DH(仅 IK)
70
- * - spkId == 当前 SPK:当前 spkPriv
71
- * - 否则:从 store 加载旧 SPK 私钥(可能为 null = 已销毁)
73
+ * - spkId == 当前/历史 device SPK:对应 spkPriv
74
+ * - spkId == IK 指纹:走 IK 特殊 fallback,返回 IK 私钥作为 spkPriv
75
+ * - 否则:显式报 spk_missing
72
76
  */
73
77
  getDecryptKeys(spkId: string | null | undefined): {
74
78
  ikPriv: Uint8Array;
@@ -110,7 +114,7 @@ export declare class V2Session {
110
114
  priv: Uint8Array;
111
115
  pubDer: Uint8Array;
112
116
  }>;
113
- /** 群消息解密优先查 group SPK;找不到时 fallback P2P SPK 兼容历史消息。 */
117
+ /** 群消息解密按 group SPK -> device SPK -> IK fallback;仍找不到则显式报错。 */
114
118
  getGroupDecryptKeys(groupId: string, spkId: string): {
115
119
  ikPriv: Uint8Array;
116
120
  spkPriv: Uint8Array | null;
@@ -39,6 +39,7 @@ export class V2Session {
39
39
  _peerIKCache = new Map();
40
40
  _verifiedSPKs = new Set();
41
41
  _oldSPKMaxSeq = new Map();
42
+ _spkCache = new Map();
42
43
  _nowFn = () => Date.now();
43
44
  constructor(store, deviceId, aid, ikPriv, ikPubDer) {
44
45
  if (!ikPriv || !ikPubDer) {
@@ -49,6 +50,7 @@ export class V2Session {
49
50
  this._aid = aid;
50
51
  this._ikPriv = ikPriv;
51
52
  this._ikPubDer = ikPubDer;
53
+ this._store.saveIK(this._deviceId, this._ikPriv, this._ikPubDer);
52
54
  }
53
55
  /** 测试用:注入虚拟时钟。 */
54
56
  _setNowFn(fn) {
@@ -92,12 +94,29 @@ export class V2Session {
92
94
  this._spkPriv = priv;
93
95
  this._spkPubDer = pubDer;
94
96
  }
97
+ _ikSPKId() {
98
+ const hashHex = createHash('sha256').update(this._ikPubDer).digest('hex');
99
+ return `sha256:${hashHex.substring(0, 16)}`;
100
+ }
101
+ _normalizeGroupSPKLookup(groupId, spkId) {
102
+ const nul = spkId.indexOf('\0');
103
+ if (nul < 0)
104
+ return { groupId, spkId };
105
+ return { groupId: spkId.slice(0, nul), spkId: spkId.slice(nul + 1) };
106
+ }
95
107
  /** 注册本设备 SPK 到服务端。IK = AID 长期密钥,无需注册。 */
96
108
  async ensureRegistered(callFn) {
97
109
  if (this._registered)
98
110
  return;
99
111
  this.ensureKeys();
112
+ const uploadedSPKId = this._store.loadLatestUploadedSPKId(this._deviceId);
113
+ if (uploadedSPKId) {
114
+ this._registered = true;
115
+ this._lastUploadedSPKId = uploadedSPKId;
116
+ return;
117
+ }
100
118
  await this._registerSPK(callFn);
119
+ this._store.markSPKUploaded(this._deviceId, this._spkId);
101
120
  this._registered = true;
102
121
  this._lastUploadedSPKId = this._spkId;
103
122
  }
@@ -132,8 +151,9 @@ export class V2Session {
132
151
  /**
133
152
  * 返回解密所需的私钥。
134
153
  * - spkId 空:1DH(仅 IK)
135
- * - spkId == 当前 SPK:当前 spkPriv
136
- * - 否则:从 store 加载旧 SPK 私钥(可能为 null = 已销毁)
154
+ * - spkId == 当前/历史 device SPK:对应 spkPriv
155
+ * - spkId == IK 指纹:走 IK 特殊 fallback,返回 IK 私钥作为 spkPriv
156
+ * - 否则:显式报 spk_missing
137
157
  */
138
158
  getDecryptKeys(spkId) {
139
159
  this.ensureKeys();
@@ -141,10 +161,22 @@ export class V2Session {
141
161
  return { ikPriv: this._ikPriv };
142
162
  if (spkId === this._spkId)
143
163
  return { ikPriv: this._ikPriv, spkPriv: this._spkPriv };
164
+ const cached = this._spkCache.get(spkId);
165
+ if (cached)
166
+ return { ikPriv: this._ikPriv, spkPriv: cached };
144
167
  const oldSPK = this._store.loadSPK(this._deviceId, spkId);
145
- if (!oldSPK)
146
- return { ikPriv: this._ikPriv };
147
- return { ikPriv: this._ikPriv, spkPriv: oldSPK };
168
+ if (oldSPK) {
169
+ this._spkCache.set(spkId, oldSPK);
170
+ return { ikPriv: this._ikPriv, spkPriv: oldSPK };
171
+ }
172
+ const ikAlias = this._store.loadIKSPK(this._deviceId, spkId);
173
+ if (ikAlias)
174
+ return { ikPriv: ikAlias.priv, spkPriv: ikAlias.priv };
175
+ if (spkId === this._ikSPKId()) {
176
+ this._store.saveIK(this._deviceId, this._ikPriv, this._ikPubDer);
177
+ return { ikPriv: this._ikPriv, spkPriv: this._ikPriv };
178
+ }
179
+ throw new Error(`spk_missing: spk_id=${spkId}`);
148
180
  }
149
181
  /** 判断 spkId 是否命中当前活跃 SPK。 */
150
182
  isCurrentSPK(spkId) {
@@ -221,6 +253,7 @@ export class V2Session {
221
253
  async rotateSPK(callFn) {
222
254
  this._generateNewSPK();
223
255
  await this._registerSPK(callFn);
256
+ this._store.markSPKUploaded(this._deviceId, this._spkId);
224
257
  this._lastUploadedSPKId = this._spkId;
225
258
  }
226
259
  cachePeerIK(peerAid, deviceId, ikPubDer) {
@@ -259,6 +292,11 @@ export class V2Session {
259
292
  }
260
293
  /** 注册指定群的 group SPK 到服务端。group 服务负责成员鉴权。 */
261
294
  async ensureGroupRegistered(groupId, callFn) {
295
+ const uploadedSPKId = this._store.loadLatestUploadedGroupSPKId(this._deviceId, groupId);
296
+ if (uploadedSPKId) {
297
+ this._lastUploadedGroupSPKIds.set(groupId, uploadedSPKId);
298
+ return;
299
+ }
262
300
  const { spkId, pubDer } = this.ensureGroupSPK(groupId);
263
301
  await this._publishGroupSPK(groupId, spkId, pubDer, callFn);
264
302
  }
@@ -272,20 +310,30 @@ export class V2Session {
272
310
  await this._publishGroupSPK(groupId, spkId, pubDer, callFn);
273
311
  return { spkId, priv, pubDer };
274
312
  }
275
- /** 群消息解密优先查 group SPK;找不到时 fallback P2P SPK 兼容历史消息。 */
313
+ /** 群消息解密按 group SPK -> device SPK -> IK fallback;仍找不到则显式报错。 */
276
314
  getGroupDecryptKeys(groupId, spkId) {
277
315
  this.ensureKeys();
278
316
  if (!spkId)
279
317
  return { ikPriv: this._ikPriv, spkPriv: null };
318
+ const lookup = this._normalizeGroupSPKLookup(groupId, spkId);
280
319
  // 优先查 group SPK
281
- const groupSPK = this._store.loadGroupSPK(this._deviceId, groupId, spkId);
320
+ const groupSPK = this._store.loadGroupSPK(this._deviceId, lookup.groupId, lookup.spkId);
282
321
  if (groupSPK)
283
322
  return { ikPriv: this._ikPriv, spkPriv: groupSPK };
284
- // fallback 到 P2P SPK(兼容历史消息)
285
- if (spkId === this._spkId)
323
+ // fallback 到 device SPK,再 fallback 到 IK 特殊 fallback(兼容历史消息)
324
+ if (lookup.spkId === this._spkId)
286
325
  return { ikPriv: this._ikPriv, spkPriv: this._spkPriv ?? null };
287
- const oldSPK = this._store.loadSPK(this._deviceId, spkId);
288
- return { ikPriv: this._ikPriv, spkPriv: oldSPK };
326
+ const oldSPK = this._store.loadSPK(this._deviceId, lookup.spkId);
327
+ if (oldSPK)
328
+ return { ikPriv: this._ikPriv, spkPriv: oldSPK };
329
+ const ikAlias = this._store.loadIKSPK(this._deviceId, lookup.spkId);
330
+ if (ikAlias)
331
+ return { ikPriv: ikAlias.priv, spkPriv: ikAlias.priv };
332
+ if (lookup.spkId === this._ikSPKId()) {
333
+ this._store.saveIK(this._deviceId, this._ikPriv, this._ikPubDer);
334
+ return { ikPriv: this._ikPriv, spkPriv: this._ikPriv };
335
+ }
336
+ throw new Error(`spk_missing: spk_id=${lookup.spkId}`);
289
337
  }
290
338
  /** 判断 spk_id 是否为本进程最后一次成功上传的 P2P SPK。 */
291
339
  isLastUploadedSPK(spkId) {
@@ -293,7 +341,10 @@ export class V2Session {
293
341
  }
294
342
  /** 判断 spk_id 是否为本进程在该群最后一次成功上传的 group SPK。 */
295
343
  isLastUploadedGroupSPK(groupId, spkId) {
296
- return Boolean(spkId) && this._lastUploadedGroupSPKIds.get(groupId) === spkId;
344
+ if (!spkId)
345
+ return false;
346
+ const lookup = this._normalizeGroupSPKLookup(groupId, spkId);
347
+ return this._lastUploadedGroupSPKIds.get(lookup.groupId) === lookup.spkId;
297
348
  }
298
349
  /** 签名并上传 group SPK 到 group.v2.put_group_pk。 */
299
350
  async _publishGroupSPK(groupId, spkId, pubDer, callFn) {
@@ -312,6 +363,7 @@ export class V2Session {
312
363
  spk_signature: Buffer.from(signature).toString('base64'),
313
364
  spk_timestamp: spkTimestamp,
314
365
  });
366
+ this._store.markGroupSPKUploaded(this._deviceId, groupId, spkId);
315
367
  this._lastUploadedGroupSPKIds.set(groupId, spkId);
316
368
  }
317
369
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/v2/session/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/v2/session/session.ts"],"names":[],"mappings":"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"}