@agentunion/fastaun-browser 0.4.4 → 0.4.6
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/CHANGELOG.md +41 -0
- package/_packed_docs/CHANGELOG.md +41 -0
- package/_packed_docs/INDEX.md +2 -2
- package/_packed_docs/KITE_DOCS_GUIDE.md +1 -1
- 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 +73 -84
- package/_packed_docs/sdk/01-/345/277/253/351/200/237/345/274/200/345/247/213.md +16 -15
- package/_packed_docs/sdk/02-WebSocket/345/215/217/350/256/256.md +2 -2
- package/_packed_docs/sdk/03-/346/240/270/345/277/203/346/246/202/345/277/265.md +22 -5
- package/_packed_docs/sdk/04-/350/277/236/346/216/245/344/270/216/350/256/244/350/257/201.md +42 -26
- package/_packed_docs/sdk/05-E2EE/345/212/240/345/257/206/351/200/232/344/277/241.md +2 -2
- package/_packed_docs/sdk/06-API/346/211/213/345/206/214.md +61 -35
- package/_packed_docs/sdk/08-/346/234/200/344/275/263/345/256/236/350/267/265.md +3 -3
- package/_packed_docs/sdk/09-message-rpc-manual.md +6 -6
- package/_packed_docs/sdk/AUN_DOCS_GUIDE.md +6 -4
- package/_packed_docs/sdk/INDEX.md +2 -2
- package/_packed_docs/sdk/README.md +3 -3
- package/dist/agent-md.d.ts +111 -0
- package/dist/agent-md.d.ts.map +1 -0
- package/dist/agent-md.js +656 -0
- package/dist/agent-md.js.map +1 -0
- package/dist/aid-store.d.ts +8 -40
- package/dist/aid-store.d.ts.map +1 -1
- package/dist/aid-store.js +89 -172
- package/dist/aid-store.js.map +1 -1
- package/dist/auth.d.ts +8 -13
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +37 -130
- package/dist/auth.js.map +1 -1
- package/dist/bundle.js +6540 -6033
- package/dist/client.d.ts +8 -65
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +193 -762
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/keystore/index.d.ts +49 -22
- package/dist/keystore/index.d.ts.map +1 -1
- package/dist/keystore/index.js +6 -1
- package/dist/keystore/index.js.map +1 -1
- package/dist/keystore/indexeddb-identity-store.d.ts +59 -0
- package/dist/keystore/indexeddb-identity-store.d.ts.map +1 -0
- package/dist/keystore/indexeddb-identity-store.js +489 -0
- package/dist/keystore/indexeddb-identity-store.js.map +1 -0
- package/dist/keystore/indexeddb-shared.d.ts +76 -0
- package/dist/keystore/indexeddb-shared.d.ts.map +1 -0
- package/dist/keystore/indexeddb-shared.js +382 -0
- package/dist/keystore/indexeddb-shared.js.map +1 -0
- package/dist/keystore/indexeddb-token-store.d.ts +119 -0
- package/dist/keystore/indexeddb-token-store.d.ts.map +1 -0
- package/dist/keystore/indexeddb-token-store.js +1086 -0
- package/dist/keystore/indexeddb-token-store.js.map +1 -0
- package/dist/keystore/indexeddb.d.ts +11 -1
- package/dist/keystore/indexeddb.d.ts.map +1 -1
- package/dist/keystore/indexeddb.js +167 -18
- package/dist/keystore/indexeddb.js.map +1 -1
- package/dist/register-flow.d.ts +53 -0
- package/dist/register-flow.d.ts.map +1 -0
- package/dist/register-flow.js +401 -0
- package/dist/register-flow.js.map +1 -0
- package/dist/v2/session/keystore.d.ts +5 -0
- package/dist/v2/session/keystore.d.ts.map +1 -1
- package/dist/v2/session/keystore.js +29 -0
- package/dist/v2/session/keystore.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/_packed_docs/0.4.0_/345/267/256/345/274/202/346/240/270/345/256/236/345/206/263/347/255/226/350/256/260/345/275/225.md +0 -302
- package/_packed_docs/AUN_SDK_0.4.0_/350/256/276/350/256/241/345/257/271/346/257/224/345/210/206/346/236/220.md +0 -194
- package/_packed_docs/AUN_SDK_/351/207/215/346/236/204/345/256/236/346/226/275/350/256/241/345/210/222.md +0 -596
- package/_packed_docs/AUN_SDK_/351/207/215/346/236/204/350/256/276/350/256/241/346/226/271/346/241/210_v3.md +0 -1698
- package/_packed_docs/python-sdk-v2-only-changelog.md +0 -189
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexeddb-token-store.js","sourceRoot":"","sources":["../../src/keystore/indexeddb-token-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ export declare class IndexedDBKeyStore implements KeyStore {
|
|
|
24
24
|
private _log;
|
|
25
25
|
setLogger(log: ModuleLogger): void;
|
|
26
26
|
private static _aidTails;
|
|
27
|
-
/**
|
|
27
|
+
/** 私钥加密种子;空字符串也是有效 seed,默认不再写入明文私钥。 */
|
|
28
28
|
private _encryptionSeed;
|
|
29
29
|
constructor(opts?: {
|
|
30
30
|
encryptionSeed?: string;
|
|
@@ -35,6 +35,15 @@ export declare class IndexedDBKeyStore implements KeyStore {
|
|
|
35
35
|
listIdentities(): Promise<string[]>;
|
|
36
36
|
loadKeyPair(aid: string): Promise<KeyPairRecord | null>;
|
|
37
37
|
saveKeyPair(aid: string, keyPair: KeyPairRecord): Promise<void>;
|
|
38
|
+
pendingIdentityDir(aid: string): Promise<string>;
|
|
39
|
+
listPendingIdentityDirs(aid: string): Promise<string[]>;
|
|
40
|
+
savePendingKeyPair(handle: string, aid: string, keyPair: KeyPairRecord): Promise<void>;
|
|
41
|
+
loadPendingKeyPair(handle: string, aid: string): Promise<KeyPairRecord | null>;
|
|
42
|
+
savePendingCert(handle: string, certPem: string): Promise<void>;
|
|
43
|
+
promotePendingIdentity(handle: string, aid: string): Promise<string>;
|
|
44
|
+
private _protectedPendingKeyPair;
|
|
45
|
+
cleanupPendingDirs(maxAgeMs?: number): Promise<number>;
|
|
46
|
+
discardPendingIdentity(handle: string): Promise<void>;
|
|
38
47
|
loadCert(aid: string, certFingerprint?: string): Promise<string | null>;
|
|
39
48
|
saveCert(aid: string, certPem: string, certFingerprint?: string, opts?: {
|
|
40
49
|
makeActive?: boolean;
|
|
@@ -100,6 +109,7 @@ export declare class IndexedDBKeyStore implements KeyStore {
|
|
|
100
109
|
* 与 _saveMetadataOnlyUnlocked 不同,本方法只更新指定 key,不影响其他字段。
|
|
101
110
|
*/
|
|
102
111
|
setMetadata(aid: string, key: string, value: string): Promise<void>;
|
|
112
|
+
private _loadPendingRecord;
|
|
103
113
|
private _loadKeyPairUnlocked;
|
|
104
114
|
private _saveKeyPairUnlocked;
|
|
105
115
|
private _loadCertUnlocked;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexeddb.d.ts","sourceRoot":"","sources":["../../src/keystore/indexeddb.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAIrG,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAEnB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"indexeddb.d.ts","sourceRoot":"","sources":["../../src/keystore/indexeddb.ts"],"names":[],"mappings":"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"}
|
|
@@ -120,7 +120,7 @@ function hasEncryptionSeed(seed) {
|
|
|
120
120
|
}
|
|
121
121
|
// ── IndexedDB 工具 ──────────────────────────────────────
|
|
122
122
|
const DB_NAME = 'aun-keystore';
|
|
123
|
-
const DB_VERSION =
|
|
123
|
+
const DB_VERSION = 7;
|
|
124
124
|
/** 对象仓库名称 */
|
|
125
125
|
const STORE_KEY_PAIRS = 'key_pairs';
|
|
126
126
|
const STORE_CERTS = 'certs';
|
|
@@ -132,11 +132,19 @@ const STORE_GROUP_OLD_EPOCHS = 'group_old_epochs';
|
|
|
132
132
|
const STORE_SESSIONS = 'e2ee_sessions';
|
|
133
133
|
const STORE_GROUP_STATE = 'group_state';
|
|
134
134
|
const STORE_AGENT_MD_CACHE = 'agent_md_cache';
|
|
135
|
+
const STORE_PENDING_IDENTITIES = 'pending_identities';
|
|
135
136
|
const STRUCTURED_RECOVERY_RETENTION_MS = 7 * 24 * 3600 * 1000;
|
|
136
137
|
const CRITICAL_METADATA_KEYS = [];
|
|
137
138
|
function metadataStoreKey(aid) {
|
|
138
139
|
return safeAid(aid);
|
|
139
140
|
}
|
|
141
|
+
function randomHex(byteLength) {
|
|
142
|
+
const bytes = crypto.getRandomValues(new Uint8Array(byteLength));
|
|
143
|
+
return Array.from(bytes).map((b) => b.toString(16).padStart(2, '0')).join('');
|
|
144
|
+
}
|
|
145
|
+
function pendingIdentityPrefix(aid) {
|
|
146
|
+
return `${safeAid(aid)}-`;
|
|
147
|
+
}
|
|
140
148
|
function normalizeCertFingerprint(certFingerprint) {
|
|
141
149
|
const normalized = String(certFingerprint ?? '').trim().toLowerCase();
|
|
142
150
|
if (!normalized)
|
|
@@ -315,6 +323,9 @@ function openDB() {
|
|
|
315
323
|
if (!db.objectStoreNames.contains(STORE_AGENT_MD_CACHE)) {
|
|
316
324
|
db.createObjectStore(STORE_AGENT_MD_CACHE);
|
|
317
325
|
}
|
|
326
|
+
if (!db.objectStoreNames.contains(STORE_PENDING_IDENTITIES)) {
|
|
327
|
+
db.createObjectStore(STORE_PENDING_IDENTITIES);
|
|
328
|
+
}
|
|
318
329
|
};
|
|
319
330
|
request.onsuccess = () => {
|
|
320
331
|
const db = request.result;
|
|
@@ -464,10 +475,10 @@ export class IndexedDBKeyStore {
|
|
|
464
475
|
_log = _noopLog;
|
|
465
476
|
setLogger(log) { this._log = log; }
|
|
466
477
|
static _aidTails = new Map();
|
|
467
|
-
/**
|
|
478
|
+
/** 私钥加密种子;空字符串也是有效 seed,默认不再写入明文私钥。 */
|
|
468
479
|
_encryptionSeed;
|
|
469
480
|
constructor(opts) {
|
|
470
|
-
this._encryptionSeed = opts?.encryptionSeed;
|
|
481
|
+
this._encryptionSeed = opts?.encryptionSeed ?? '';
|
|
471
482
|
}
|
|
472
483
|
static async changeSeed(oldSeed, newSeed) {
|
|
473
484
|
if (oldSeed === '.seed') {
|
|
@@ -479,8 +490,13 @@ export class IndexedDBKeyStore {
|
|
|
479
490
|
if (!isRecord(row.value))
|
|
480
491
|
continue;
|
|
481
492
|
const envelope = row.value._encrypted_pk;
|
|
482
|
-
if (!isRecord(envelope))
|
|
493
|
+
if (!isRecord(envelope)) {
|
|
494
|
+
const plain = row.value.private_key_pem;
|
|
495
|
+
if (typeof plain === 'string' && plain) {
|
|
496
|
+
migrations.push({ key: row.key, value: deepClone(row.value), privateKeyPem: plain });
|
|
497
|
+
}
|
|
483
498
|
continue;
|
|
499
|
+
}
|
|
484
500
|
try {
|
|
485
501
|
const privateKeyPem = await _decryptPEM(envelope, oldSeed);
|
|
486
502
|
migrations.push({ key: row.key, value: deepClone(row.value), privateKeyPem });
|
|
@@ -588,18 +604,14 @@ export class IndexedDBKeyStore {
|
|
|
588
604
|
delete result._encrypted_pk;
|
|
589
605
|
}
|
|
590
606
|
catch {
|
|
591
|
-
this._log.error(`[keystore] decrypt ${aid} private
|
|
607
|
+
this._log.error(`[keystore] decrypt ${aid} private key failed, maybe encryptionSeed mismatch`);
|
|
608
|
+
throw new Error(`private key decrypt failed for aid ${aid}: seed_password mismatch or IndexedDB record corrupted`);
|
|
592
609
|
}
|
|
593
610
|
}
|
|
594
611
|
else if (
|
|
595
612
|
// 透明迁移:旧版明文数据自动加密回写
|
|
596
613
|
!epk && typeof result.private_key_pem === 'string' && hasEncryptionSeed(this._encryptionSeed)) {
|
|
597
|
-
|
|
598
|
-
await this.saveKeyPair(aid, result);
|
|
599
|
-
}
|
|
600
|
-
catch {
|
|
601
|
-
// 迁移失败不影响读取
|
|
602
|
-
}
|
|
614
|
+
await this.saveKeyPair(aid, result);
|
|
603
615
|
}
|
|
604
616
|
return result;
|
|
605
617
|
}
|
|
@@ -612,6 +624,134 @@ export class IndexedDBKeyStore {
|
|
|
612
624
|
}
|
|
613
625
|
await idbPut(STORE_KEY_PAIRS, metadataStoreKey(aid), record);
|
|
614
626
|
}
|
|
627
|
+
// ── RegisterAID pending 身份 ─────────────────────────
|
|
628
|
+
async pendingIdentityDir(aid) {
|
|
629
|
+
const handle = `${pendingIdentityPrefix(aid)}${randomHex(4)}-${Math.floor(Date.now() / 1000)}`;
|
|
630
|
+
const now = Date.now();
|
|
631
|
+
await idbPut(STORE_PENDING_IDENTITIES, handle, {
|
|
632
|
+
aid,
|
|
633
|
+
created_at: now,
|
|
634
|
+
updated_at: now,
|
|
635
|
+
});
|
|
636
|
+
return handle;
|
|
637
|
+
}
|
|
638
|
+
async listPendingIdentityDirs(aid) {
|
|
639
|
+
const prefix = pendingIdentityPrefix(aid);
|
|
640
|
+
const rows = await idbGetAllByPrefix(STORE_PENDING_IDENTITIES, prefix);
|
|
641
|
+
return rows
|
|
642
|
+
.filter((row) => row.key.startsWith(prefix) && isRecord(row.value) && String(row.value.aid ?? '') === aid)
|
|
643
|
+
.sort((a, b) => Number(b.value.updated_at ?? 0) - Number(a.value.updated_at ?? 0))
|
|
644
|
+
.map((row) => row.key);
|
|
645
|
+
}
|
|
646
|
+
async savePendingKeyPair(handle, aid, keyPair) {
|
|
647
|
+
const current = await this._loadPendingRecord(handle, aid);
|
|
648
|
+
if (!current)
|
|
649
|
+
throw new Error(`pending identity not found: ${handle}`);
|
|
650
|
+
const record = deepClone(keyPair);
|
|
651
|
+
const privateKeyPem = record.private_key_pem;
|
|
652
|
+
if (typeof privateKeyPem !== 'string' || !privateKeyPem) {
|
|
653
|
+
throw new Error('savePendingKeyPair requires private_key_pem');
|
|
654
|
+
}
|
|
655
|
+
record._encrypted_pk = await _encryptPEM(privateKeyPem, this._encryptionSeed ?? '');
|
|
656
|
+
delete record.private_key_pem;
|
|
657
|
+
await idbPut(STORE_PENDING_IDENTITIES, handle, {
|
|
658
|
+
...current,
|
|
659
|
+
aid,
|
|
660
|
+
key_pair: record,
|
|
661
|
+
updated_at: Date.now(),
|
|
662
|
+
});
|
|
663
|
+
}
|
|
664
|
+
async loadPendingKeyPair(handle, aid) {
|
|
665
|
+
const current = await this._loadPendingRecord(handle, aid, false);
|
|
666
|
+
if (!current || !isRecord(current.key_pair))
|
|
667
|
+
return null;
|
|
668
|
+
const result = deepClone(current.key_pair);
|
|
669
|
+
const encrypted = result._encrypted_pk;
|
|
670
|
+
if (isRecord(encrypted)) {
|
|
671
|
+
try {
|
|
672
|
+
const envelope = encrypted;
|
|
673
|
+
result.private_key_pem = await _decryptPEM(envelope, this._encryptionSeed ?? '');
|
|
674
|
+
delete result._encrypted_pk;
|
|
675
|
+
return result;
|
|
676
|
+
}
|
|
677
|
+
catch {
|
|
678
|
+
this._log.error(`[keystore] decrypt pending ${aid} private key failed, maybe encryptionSeed mismatch`);
|
|
679
|
+
throw new Error(`pending identity private key decrypt failed for aid ${aid}: seed_password mismatch or IndexedDB record corrupted`);
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
if (typeof result.private_key_pem === 'string' && result.private_key_pem) {
|
|
683
|
+
// 兼容历史 pending 明文记录:首次加载成功后立即加密回写,避免 pending 私钥继续明文落盘。
|
|
684
|
+
await this.savePendingKeyPair(handle, aid, result);
|
|
685
|
+
return result;
|
|
686
|
+
}
|
|
687
|
+
return result;
|
|
688
|
+
}
|
|
689
|
+
async savePendingCert(handle, certPem) {
|
|
690
|
+
const current = await this._loadPendingRecord(handle, undefined);
|
|
691
|
+
if (!current)
|
|
692
|
+
throw new Error(`pending identity not found: ${handle}`);
|
|
693
|
+
await idbPut(STORE_PENDING_IDENTITIES, handle, {
|
|
694
|
+
...current,
|
|
695
|
+
cert: certPem,
|
|
696
|
+
updated_at: Date.now(),
|
|
697
|
+
});
|
|
698
|
+
}
|
|
699
|
+
async promotePendingIdentity(handle, aid) {
|
|
700
|
+
const current = await this._loadPendingRecord(handle, aid);
|
|
701
|
+
if (!current)
|
|
702
|
+
throw new Error(`pending identity not found: ${handle}`);
|
|
703
|
+
if (!isRecord(current.key_pair)) {
|
|
704
|
+
throw new Error(`promotePendingIdentity: missing pending key pair: ${handle}`);
|
|
705
|
+
}
|
|
706
|
+
const targetKey = metadataStoreKey(aid);
|
|
707
|
+
const [existingKeyPair, existingCert, existingMetadata] = await Promise.all([
|
|
708
|
+
idbGet(STORE_KEY_PAIRS, targetKey),
|
|
709
|
+
idbGet(STORE_CERTS, certStoreKey(aid)),
|
|
710
|
+
idbGet(STORE_METADATA, targetKey),
|
|
711
|
+
]);
|
|
712
|
+
if (existingKeyPair || existingCert || existingMetadata) {
|
|
713
|
+
throw new Error(`promotePendingIdentity: target exists: ${targetKey}`);
|
|
714
|
+
}
|
|
715
|
+
const keyPair = await this._protectedPendingKeyPair(current, aid);
|
|
716
|
+
await idbPut(STORE_KEY_PAIRS, targetKey, keyPair);
|
|
717
|
+
if (typeof current.cert === 'string' && current.cert) {
|
|
718
|
+
await idbPut(STORE_CERTS, certStoreKey(aid), current.cert);
|
|
719
|
+
}
|
|
720
|
+
await idbDelete(STORE_PENDING_IDENTITIES, handle);
|
|
721
|
+
return targetKey;
|
|
722
|
+
}
|
|
723
|
+
async _protectedPendingKeyPair(current, aid) {
|
|
724
|
+
if (!isRecord(current.key_pair)) {
|
|
725
|
+
throw new Error(`pending identity missing key pair for ${aid}`);
|
|
726
|
+
}
|
|
727
|
+
const keyPair = deepClone(current.key_pair);
|
|
728
|
+
const privateKeyPem = keyPair.private_key_pem;
|
|
729
|
+
if (typeof privateKeyPem === 'string' && privateKeyPem) {
|
|
730
|
+
throw new Error(`pending identity private key is plaintext for ${aid}`);
|
|
731
|
+
}
|
|
732
|
+
if (!isRecord(keyPair._encrypted_pk)) {
|
|
733
|
+
throw new Error(`pending identity private key is not encrypted for ${aid}`);
|
|
734
|
+
}
|
|
735
|
+
return keyPair;
|
|
736
|
+
}
|
|
737
|
+
async cleanupPendingDirs(maxAgeMs = 600_000) {
|
|
738
|
+
const rows = await idbGetAll(STORE_PENDING_IDENTITIES);
|
|
739
|
+
const now = Date.now();
|
|
740
|
+
let removed = 0;
|
|
741
|
+
for (const row of rows) {
|
|
742
|
+
if (!isRecord(row.value))
|
|
743
|
+
continue;
|
|
744
|
+
const updatedAt = Number(row.value.updated_at ?? row.value.created_at ?? 0);
|
|
745
|
+
if (updatedAt && now - updatedAt < maxAgeMs)
|
|
746
|
+
continue;
|
|
747
|
+
await idbDelete(STORE_PENDING_IDENTITIES, row.key);
|
|
748
|
+
removed++;
|
|
749
|
+
}
|
|
750
|
+
return removed;
|
|
751
|
+
}
|
|
752
|
+
async discardPendingIdentity(handle) {
|
|
753
|
+
await idbDelete(STORE_PENDING_IDENTITIES, handle);
|
|
754
|
+
}
|
|
615
755
|
// ── 证书 ──────────────────────────────────────────
|
|
616
756
|
async loadCert(aid, certFingerprint) {
|
|
617
757
|
const tStart = Date.now();
|
|
@@ -1015,6 +1155,19 @@ export class IndexedDBKeyStore {
|
|
|
1015
1155
|
});
|
|
1016
1156
|
}
|
|
1017
1157
|
// ── 内部辅助 ─────────────────────────────────────────
|
|
1158
|
+
async _loadPendingRecord(handle, aid, required = true) {
|
|
1159
|
+
const data = await idbGet(STORE_PENDING_IDENTITIES, handle);
|
|
1160
|
+
if (!isRecord(data)) {
|
|
1161
|
+
if (required)
|
|
1162
|
+
throw new Error(`pending identity not found: ${handle}`);
|
|
1163
|
+
return null;
|
|
1164
|
+
}
|
|
1165
|
+
const record = deepClone(data);
|
|
1166
|
+
if (aid !== undefined && String(record.aid ?? '') !== aid) {
|
|
1167
|
+
throw new Error(`pending identity aid mismatch: ${handle}`);
|
|
1168
|
+
}
|
|
1169
|
+
return record;
|
|
1170
|
+
}
|
|
1018
1171
|
async _loadKeyPairUnlocked(aid) {
|
|
1019
1172
|
const data = await idbGet(STORE_KEY_PAIRS, metadataStoreKey(aid));
|
|
1020
1173
|
if (!isRecord(data))
|
|
@@ -1028,18 +1181,14 @@ export class IndexedDBKeyStore {
|
|
|
1028
1181
|
delete result._encrypted_pk;
|
|
1029
1182
|
}
|
|
1030
1183
|
catch {
|
|
1031
|
-
this._log.error(`[keystore] decrypt ${aid} private
|
|
1184
|
+
this._log.error(`[keystore] decrypt ${aid} private key failed, maybe encryptionSeed mismatch`);
|
|
1185
|
+
throw new Error(`private key decrypt failed for aid ${aid}: seed_password mismatch or IndexedDB record corrupted`);
|
|
1032
1186
|
}
|
|
1033
1187
|
}
|
|
1034
1188
|
else if (
|
|
1035
1189
|
// 透明迁移:旧版明文数据自动加密回写
|
|
1036
1190
|
!isRecord(result._encrypted_pk) && typeof result.private_key_pem === 'string' && hasEncryptionSeed(this._encryptionSeed)) {
|
|
1037
|
-
|
|
1038
|
-
await this._saveKeyPairUnlocked(aid, result);
|
|
1039
|
-
}
|
|
1040
|
-
catch {
|
|
1041
|
-
// 迁移失败不影响读取
|
|
1042
|
-
}
|
|
1191
|
+
await this._saveKeyPairUnlocked(aid, result);
|
|
1043
1192
|
}
|
|
1044
1193
|
return result;
|
|
1045
1194
|
}
|