@zcloak/ai-agent 1.0.9 → 1.0.12
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/bind.d.ts +7 -2
- package/dist/bind.js +120 -16
- package/dist/bind.js.map +1 -1
- package/dist/crypto.d.ts +14 -0
- package/dist/crypto.js +28 -1
- package/dist/crypto.js.map +1 -1
- package/dist/idl.d.ts +3 -0
- package/dist/idl.js +32 -5
- package/dist/idl.js.map +1 -1
- package/dist/key-store.d.ts +28 -3
- package/dist/key-store.js +45 -5
- package/dist/key-store.js.map +1 -1
- package/dist/rpc.d.ts +27 -6
- package/dist/rpc.js +6 -5
- package/dist/rpc.js.map +1 -1
- package/dist/serve.js +73 -1
- package/dist/serve.js.map +1 -1
- package/dist/types/registry.d.ts +42 -1
- package/dist/types/registry.js +1 -1
- package/dist/types/sign-event.d.ts +1 -1
- package/dist/types/sign-event.js +1 -1
- package/dist/vetkey.d.ts +4 -1
- package/dist/vetkey.js +392 -2
- package/dist/vetkey.js.map +1 -1
- package/package.json +1 -1
package/dist/bind.d.ts
CHANGED
|
@@ -8,8 +8,13 @@
|
|
|
8
8
|
* Uses @dfinity JS SDK to interact directly with ICP canister, no dfx required.
|
|
9
9
|
*
|
|
10
10
|
* Usage:
|
|
11
|
-
* zcloak-ai bind prepare <
|
|
12
|
-
* zcloak-ai bind check-passkey <
|
|
11
|
+
* zcloak-ai bind prepare <user_principal_or_ai_id> Prepare binding and generate authentication URL
|
|
12
|
+
* zcloak-ai bind check-passkey <user_principal_or_ai_id> Check if a principal has a registered passkey
|
|
13
|
+
*
|
|
14
|
+
* The <user_principal_or_ai_id> argument accepts:
|
|
15
|
+
* - A raw ICP principal (e.g. "57odc-ymip7-...")
|
|
16
|
+
* - A human-readable AI ID containing "." (e.g. "alice#1234.ai" or "runner#8939.agent")
|
|
17
|
+
* In the latter case the registry canister is queried first to resolve the principal.
|
|
13
18
|
*
|
|
14
19
|
* All commands support --identity=<pem_path> to specify identity file.
|
|
15
20
|
*/
|
package/dist/bind.js
CHANGED
|
@@ -8,8 +8,13 @@
|
|
|
8
8
|
* Uses @dfinity JS SDK to interact directly with ICP canister, no dfx required.
|
|
9
9
|
*
|
|
10
10
|
* Usage:
|
|
11
|
-
* zcloak-ai bind prepare <
|
|
12
|
-
* zcloak-ai bind check-passkey <
|
|
11
|
+
* zcloak-ai bind prepare <user_principal_or_ai_id> Prepare binding and generate authentication URL
|
|
12
|
+
* zcloak-ai bind check-passkey <user_principal_or_ai_id> Check if a principal has a registered passkey
|
|
13
|
+
*
|
|
14
|
+
* The <user_principal_or_ai_id> argument accepts:
|
|
15
|
+
* - A raw ICP principal (e.g. "57odc-ymip7-...")
|
|
16
|
+
* - A human-readable AI ID containing "." (e.g. "alice#1234.ai" or "runner#8939.agent")
|
|
17
|
+
* In the latter case the registry canister is queried first to resolve the principal.
|
|
13
18
|
*
|
|
14
19
|
* All commands support --identity=<pem_path> to specify identity file.
|
|
15
20
|
*/
|
|
@@ -18,21 +23,116 @@ function showHelp() {
|
|
|
18
23
|
console.log('zCloak.ai Agent-Owner Binding Tool');
|
|
19
24
|
console.log('');
|
|
20
25
|
console.log('Usage:');
|
|
21
|
-
console.log(' zcloak-ai bind prepare <
|
|
22
|
-
console.log(' zcloak-ai bind check-passkey <
|
|
26
|
+
console.log(' zcloak-ai bind prepare <user_principal_or_ai_id> Prepare binding and generate authentication URL');
|
|
27
|
+
console.log(' zcloak-ai bind check-passkey <user_principal_or_ai_id> Check if a principal has a registered passkey');
|
|
28
|
+
console.log('');
|
|
29
|
+
console.log('Arguments:');
|
|
30
|
+
console.log(' user_principal_or_ai_id ICP principal OR human-readable AI ID (e.g. alice#1234.ai)');
|
|
23
31
|
console.log('');
|
|
24
32
|
console.log('Options:');
|
|
25
33
|
console.log(' --identity=<pem_path> Specify identity PEM file');
|
|
26
34
|
console.log('');
|
|
27
35
|
console.log('Flow:');
|
|
28
|
-
console.log(' 1. Script
|
|
29
|
-
console.log(' 2. Script
|
|
30
|
-
console.log(' 3. Script
|
|
31
|
-
console.log(' 4.
|
|
36
|
+
console.log(' 1. Script resolves AI ID → principal if needed (via registry canister lookup)');
|
|
37
|
+
console.log(' 2. Script checks if target principal has a registered passkey (pre-check)');
|
|
38
|
+
console.log(' 3. Script calls agent_prepare_bond to get WebAuthn challenge');
|
|
39
|
+
console.log(' 4. Script generates authentication URL');
|
|
40
|
+
console.log(' 5. User opens the URL in browser and completes authentication with passkey');
|
|
32
41
|
console.log('');
|
|
33
42
|
console.log('Examples:');
|
|
34
43
|
console.log(' zcloak-ai bind prepare "57odc-ymip7-b7edu-aevpq-nu54m-q4paq-vsrtd-nlnmm-lkos3-d4h3t-7qe"');
|
|
35
44
|
console.log(' zcloak-ai bind check-passkey "57odc-ymip7-b7edu-aevpq-nu54m-q4paq-vsrtd-nlnmm-lkos3-d4h3t-7qe"');
|
|
45
|
+
console.log(' zcloak-ai bind prepare "alice#1234.ai"');
|
|
46
|
+
console.log(' zcloak-ai bind check-passkey "alice#1234.ai"');
|
|
47
|
+
}
|
|
48
|
+
// ========== Input Resolution Helpers ==========
|
|
49
|
+
/**
|
|
50
|
+
* Detect whether the input looks like a human-readable AI ID rather than a raw principal.
|
|
51
|
+
*
|
|
52
|
+
* AI IDs end with ".ai" (e.g. "alice#1234.ai", "alice.ai").
|
|
53
|
+
* ICP principals only contain alphanumeric characters and hyphens, never a dot.
|
|
54
|
+
*/
|
|
55
|
+
function isAiId(input) {
|
|
56
|
+
return input.endsWith('.ai');
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Parse a ".ai" AI ID string into a structured ID record for canister lookup.
|
|
60
|
+
*
|
|
61
|
+
* Two formats are supported:
|
|
62
|
+
* - With discriminator : "alice#8730.ai" → { id: "alice", index: [8730n], domain: [{ AI: null }] }
|
|
63
|
+
* - Vanity (no #) : "alice.ai" → { id: "alice", index: [], domain: [{ AI: null }] }
|
|
64
|
+
*
|
|
65
|
+
* @param aiId - AI ID string ending with ".ai"
|
|
66
|
+
* @returns Structured ID record ready to pass to user_profile_get_by_id
|
|
67
|
+
* @throws If the string does not end with ".ai" or has an invalid format
|
|
68
|
+
*/
|
|
69
|
+
function parseAiIdToRecord(aiId) {
|
|
70
|
+
if (!aiId.endsWith('.ai')) {
|
|
71
|
+
throw new Error(`Expected an AI ID ending with ".ai", got: "${aiId}"`);
|
|
72
|
+
}
|
|
73
|
+
// Strip the ".ai" suffix to get the name part (e.g. "alice#8730" or "alice")
|
|
74
|
+
const namePart = aiId.slice(0, -3); // remove ".ai"
|
|
75
|
+
const hashIndex = namePart.indexOf('#');
|
|
76
|
+
if (hashIndex === -1) {
|
|
77
|
+
// Vanity name — no discriminator (e.g. "alice.ai")
|
|
78
|
+
return {
|
|
79
|
+
id: namePart,
|
|
80
|
+
index: [], // Candid opt — empty = null
|
|
81
|
+
domain: [{ AI: null }],
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
// Indexed name (e.g. "alice#8730.ai")
|
|
85
|
+
const baseName = namePart.slice(0, hashIndex);
|
|
86
|
+
const indexStr = namePart.slice(hashIndex + 1);
|
|
87
|
+
const indexNum = parseInt(indexStr, 10);
|
|
88
|
+
if (!baseName || !indexStr || isNaN(indexNum) || indexNum < 0) {
|
|
89
|
+
throw new Error(`Invalid AI ID format: "${aiId}". Expected "name#number.ai" or "name.ai".`);
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
id: baseName,
|
|
93
|
+
index: [BigInt(indexNum)], // Candid opt — [value] = Some(value)
|
|
94
|
+
domain: [{ AI: null }],
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Resolve a ".ai" AI ID string to a raw ICP principal text.
|
|
99
|
+
*
|
|
100
|
+
* Parses the AI ID into a structured ID record and calls
|
|
101
|
+
* user_profile_get_by_id on the registry canister, then extracts
|
|
102
|
+
* the principal_id field from the returned UserProfile.
|
|
103
|
+
*
|
|
104
|
+
* @param session - Current CLI session
|
|
105
|
+
* @param aiId - AI ID string ending with ".ai" (e.g. "alice#8730.ai" or "alice.ai")
|
|
106
|
+
* @returns Resolved ICP principal text
|
|
107
|
+
* @throws If the AI ID cannot be found or has no principal bound
|
|
108
|
+
*/
|
|
109
|
+
async function resolveAIIDToPrincipal(session, aiId) {
|
|
110
|
+
const idRecord = parseAiIdToRecord(aiId);
|
|
111
|
+
console.error(`Resolving AI ID "${aiId}" → id="${idRecord.id}", index=${idRecord.index.length ? idRecord.index[0].toString() : 'null'}...`);
|
|
112
|
+
const actor = await session.getAnonymousRegistryActor();
|
|
113
|
+
const result = await actor.user_profile_get_by_id(idRecord);
|
|
114
|
+
// opt UserProfile — empty array means not found
|
|
115
|
+
if (!result || result.length === 0) {
|
|
116
|
+
throw new Error(`AI ID not found in registry: "${aiId}". Check the spelling and try again.`);
|
|
117
|
+
}
|
|
118
|
+
const profile = result[0];
|
|
119
|
+
// principal_id is opt text — the owner's bound principal
|
|
120
|
+
if (!profile.principal_id || profile.principal_id.length === 0) {
|
|
121
|
+
throw new Error(`AI ID "${aiId}" exists in registry but has no principal bound.`);
|
|
122
|
+
}
|
|
123
|
+
const principal = profile.principal_id[0];
|
|
124
|
+
console.error(`Resolved: ${aiId} → ${principal}`);
|
|
125
|
+
return principal;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Resolve input (raw principal OR ".ai" AI ID) to an ICP principal text.
|
|
129
|
+
* Dispatches to resolveAIIDToPrincipal for AI IDs; returns input as-is otherwise.
|
|
130
|
+
*/
|
|
131
|
+
async function resolveInputToPrincipal(session, input) {
|
|
132
|
+
if (!isAiId(input)) {
|
|
133
|
+
return input;
|
|
134
|
+
}
|
|
135
|
+
return resolveAIIDToPrincipal(session, input);
|
|
36
136
|
}
|
|
37
137
|
// ========== Passkey Pre-check Helper ==========
|
|
38
138
|
/**
|
|
@@ -53,12 +153,14 @@ async function hasPasskey(session, userPrincipal) {
|
|
|
53
153
|
}
|
|
54
154
|
// ========== Command Implementations ==========
|
|
55
155
|
/** Check if a principal has a registered passkey (standalone command) */
|
|
56
|
-
async function cmdCheckPasskey(session,
|
|
57
|
-
if (!
|
|
58
|
-
console.error('Error: user principal ID is required');
|
|
59
|
-
console.error('Usage: zcloak-ai bind check-passkey <
|
|
156
|
+
async function cmdCheckPasskey(session, userInput) {
|
|
157
|
+
if (!userInput) {
|
|
158
|
+
console.error('Error: user principal ID or AI ID is required');
|
|
159
|
+
console.error('Usage: zcloak-ai bind check-passkey <user_principal_or_ai_id>');
|
|
60
160
|
process.exit(1);
|
|
61
161
|
}
|
|
162
|
+
// Resolve AI ID → principal if needed
|
|
163
|
+
const userPrincipal = await resolveInputToPrincipal(session, userInput);
|
|
62
164
|
console.error('Checking passkey status...');
|
|
63
165
|
const result = await hasPasskey(session, userPrincipal);
|
|
64
166
|
if (result) {
|
|
@@ -73,12 +175,14 @@ async function cmdCheckPasskey(session, userPrincipal) {
|
|
|
73
175
|
}
|
|
74
176
|
}
|
|
75
177
|
/** Prepare binding and generate authentication URL */
|
|
76
|
-
async function cmdPrepare(session,
|
|
77
|
-
if (!
|
|
78
|
-
console.error('Error: user principal ID is required');
|
|
79
|
-
console.error('Usage: zcloak-ai bind prepare <
|
|
178
|
+
async function cmdPrepare(session, userInput) {
|
|
179
|
+
if (!userInput) {
|
|
180
|
+
console.error('Error: user principal ID or AI ID is required');
|
|
181
|
+
console.error('Usage: zcloak-ai bind prepare <user_principal_or_ai_id>');
|
|
80
182
|
process.exit(1);
|
|
81
183
|
}
|
|
184
|
+
// Resolve AI ID → principal if needed
|
|
185
|
+
const userPrincipal = await resolveInputToPrincipal(session, userInput);
|
|
82
186
|
// Pre-check: ensure the target principal has a passkey before proceeding
|
|
83
187
|
console.error('Pre-check: verifying passkey status...');
|
|
84
188
|
const passkeyOk = await hasPasskey(session, userPrincipal);
|
package/dist/bind.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bind.js","sourceRoot":"","sources":["../src/bind.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"bind.js","sourceRoot":"","sources":["../src/bind.ts"],"names":[],"mappings":"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"}
|
package/dist/crypto.d.ts
CHANGED
|
@@ -52,6 +52,20 @@ export declare function ibeEncrypt(dpkBytes: Uint8Array, ibeIdentity: string, pl
|
|
|
52
52
|
* @returns Decrypted plaintext
|
|
53
53
|
*/
|
|
54
54
|
export declare function ibeDecrypt(encryptedKeyBytes: Uint8Array, dpkBytes: Uint8Array, ibeIdentity: string, ciphertextBytes: Uint8Array, transportSecret: TransportSecretKey): Uint8Array;
|
|
55
|
+
/**
|
|
56
|
+
* IBE-decrypt ciphertext using a cached (already-decrypted) VetKey.
|
|
57
|
+
*
|
|
58
|
+
* Used by Mail daemon mode: the VetKey is derived once at startup and
|
|
59
|
+
* cached in KeyStore. Subsequent decryptions skip the canister call
|
|
60
|
+
* and transport-decryption step entirely.
|
|
61
|
+
*
|
|
62
|
+
* @param vetkeyBytes - Raw VetKey bytes (48 bytes, compressed G1 point)
|
|
63
|
+
* @param dpkBytes - IBE derived public key (96 bytes)
|
|
64
|
+
* @param ibeIdentity - IBE identity string used during encryption
|
|
65
|
+
* @param ciphertextBytes - IBE ciphertext
|
|
66
|
+
* @returns Decrypted plaintext
|
|
67
|
+
*/
|
|
68
|
+
export declare function ibeDecryptWithCachedKey(vetkeyBytes: Uint8Array, _dpkBytes: Uint8Array, _ibeIdentity: string, ciphertextBytes: Uint8Array): Uint8Array;
|
|
55
69
|
/**
|
|
56
70
|
* Transport-decrypt an EncryptedVetKey and return raw VetKey bytes.
|
|
57
71
|
*
|
package/dist/crypto.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* All formats are byte-level compatible with the Rust vetkey-tool implementation.
|
|
14
14
|
*/
|
|
15
15
|
import crypto from 'crypto';
|
|
16
|
-
import { TransportSecretKey, DerivedPublicKey, EncryptedVetKey, IbeCiphertext, IbeIdentity, IbeSeed, } from '@dfinity/vetkeys';
|
|
16
|
+
import { TransportSecretKey, DerivedPublicKey, EncryptedVetKey, VetKey, IbeCiphertext, IbeIdentity, IbeSeed, } from '@dfinity/vetkeys';
|
|
17
17
|
import { encryptionError, decryptionError } from './error.js';
|
|
18
18
|
// ============================================================================
|
|
19
19
|
// Constants
|
|
@@ -102,6 +102,33 @@ export function ibeDecrypt(encryptedKeyBytes, dpkBytes, ibeIdentity, ciphertextB
|
|
|
102
102
|
throw decryptionError(`IBE decrypt failed: ${e instanceof Error ? e.message : String(e)}`, e);
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* IBE-decrypt ciphertext using a cached (already-decrypted) VetKey.
|
|
107
|
+
*
|
|
108
|
+
* Used by Mail daemon mode: the VetKey is derived once at startup and
|
|
109
|
+
* cached in KeyStore. Subsequent decryptions skip the canister call
|
|
110
|
+
* and transport-decryption step entirely.
|
|
111
|
+
*
|
|
112
|
+
* @param vetkeyBytes - Raw VetKey bytes (48 bytes, compressed G1 point)
|
|
113
|
+
* @param dpkBytes - IBE derived public key (96 bytes)
|
|
114
|
+
* @param ibeIdentity - IBE identity string used during encryption
|
|
115
|
+
* @param ciphertextBytes - IBE ciphertext
|
|
116
|
+
* @returns Decrypted plaintext
|
|
117
|
+
*/
|
|
118
|
+
export function ibeDecryptWithCachedKey(vetkeyBytes, _dpkBytes, _ibeIdentity, ciphertextBytes) {
|
|
119
|
+
try {
|
|
120
|
+
// Reconstruct VetKey from cached raw bytes.
|
|
121
|
+
// The VetKey was already verified during the initial derive_vetkey + decryptAndVerify
|
|
122
|
+
// step at daemon startup, so no re-verification is needed here.
|
|
123
|
+
const vetKey = VetKey.deserialize(vetkeyBytes);
|
|
124
|
+
// IBE-decrypt the ciphertext
|
|
125
|
+
const ibeCiphertext = IbeCiphertext.deserialize(ciphertextBytes);
|
|
126
|
+
return ibeCiphertext.decrypt(vetKey);
|
|
127
|
+
}
|
|
128
|
+
catch (e) {
|
|
129
|
+
throw decryptionError(`IBE decrypt (cached key) failed: ${e instanceof Error ? e.message : String(e)}`, e);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
105
132
|
/**
|
|
106
133
|
* Transport-decrypt an EncryptedVetKey and return raw VetKey bytes.
|
|
107
134
|
*
|
package/dist/crypto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,MAAM,EACN,aAAa,EACb,WAAW,EACX,OAAO,GACR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE9D,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,gDAAgD;AAChD,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAE/D,0BAA0B;AAC1B,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,sCAAsC;AACtC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,mDAAmD;AACnD,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,mFAAmF;AACnF,MAAM,aAAa,GAAG,CAAC,GAAG,CAAC,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAEtE,kFAAkF;AAClF,MAAM,oBAAoB,GAAG,+BAA+B,CAAC;AAE7D,+EAA+E;AAC/E,wCAAwC;AACxC,+EAA+E;AAE/E;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB;IACtC,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,EAAE,CAAC;IACxC,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;IAC5C,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CACxB,QAAoB,EACpB,WAAmB,EACnB,SAAqB;IAErB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACzE,OAAO,UAAU,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,eAAe,CACnB,uBAAuB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EACnE,CAAC,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,UAAU,CACxB,iBAA6B,EAC7B,QAAoB,EACpB,WAAmB,EACnB,eAA2B,EAC3B,eAAmC;IAEnC,IAAI,CAAC;QACH,yCAAyC;QACzC,MAAM,eAAe,GAAG,eAAe,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACvE,MAAM,GAAG,GAAG,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACnD,kFAAkF;QAClF,MAAM,aAAa,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,eAAe,CAAC,gBAAgB,CAAC,eAAe,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;QAErF,uCAAuC;QACvC,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QACjE,OAAO,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,eAAe,CACnB,uBAAuB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EACnE,CAAC,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CACrC,WAAuB,EACvB,SAAqB,EACrB,YAAoB,EACpB,eAA2B;IAE3B,IAAI,CAAC;QACH,4CAA4C;QAC5C,sFAAsF;QACtF,gEAAgE;QAChE,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAE/C,6BAA6B;QAC7B,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QACjE,OAAO,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,eAAe,CACnB,oCAAoC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAChF,CAAC,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,iBAA6B,EAC7B,QAAoB,EACpB,YAAoB,EACpB,eAAmC;IAEnC,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,eAAe,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACvE,MAAM,GAAG,GAAG,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACnD,mEAAmE;QACnE,MAAM,iBAAiB,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,eAAe,CAAC,gBAAgB,CAAC,eAAe,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;QACzF,OAAO,MAAM,CAAC,cAAc,EAAE,CAAC;IACjC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,eAAe,CACnB,uCAAuC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EACnF,CAAC,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB,EAAE,OAAmB;IACpE,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,OAAO,GAAG,SAAS,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;AAClD,CAAC;AAED,+EAA+E;AAC/E,uCAAuC;AACvC,+EAA+E;AAE/E;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,WAAuB;IACpD,IAAI,WAAW,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC9B,MAAM,eAAe,CAAC,2CAA2C,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,8DAA8D;IAC9D,6DAA6D;IAC7D,OAAO,MAAM,CAAC,IAAI,CAChB,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAClF,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,SAAqB;IAC9D,gCAAgC;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAEtD,2BAA2B;IAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5E,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,WAAW;IAE5C,mEAAmE;IACnE,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,gBAAgB;QAChB,MAAM,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC;QACjC,KAAK;QACL,SAAS;QACT,GAAG;KACJ,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,IAAgB;IACzD,wBAAwB;IACxB,IAAI,IAAI,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;QAChC,MAAM,eAAe,CACnB,mBAAmB,IAAI,CAAC,MAAM,mBAAmB,aAAa,yBAAyB,CACxF,CAAC;IACJ,CAAC;IAED,wBAAwB;IACxB,IACE,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM;QAC1B,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM;QAC1B,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,MAAM;QAC1B,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAI,MAAM;MAC1B,CAAC;QACD,MAAM,eAAe,CAAC,6CAA6C,CAAC,CAAC;IACvE,CAAC;IAED,mBAAmB;IACnB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,kBAAkB,EAAE,CAAC;QACnC,MAAM,eAAe,CACnB,6BAA6B,IAAI,CAAC,CAAC,CAAC,cAAc,kBAAkB,GAAG,CACxE,CAAC;IACJ,CAAC;IAED,qBAAqB;IACrB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAwB,aAAa;IAC7F,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAe,YAAY;IAC5F,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC,EAAE,iBAAiB,CAAC,MAAM,GAAG,iBAAiB,CAAC,CAAC;IAC/F,MAAM,GAAG,GAAG,iBAAiB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,GAAG,iBAAiB,CAAC,CAAC;IAErF,2BAA2B;IAC3B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACpE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,eAAe,CACnB,kFAAkF,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAC9H,CAAC,CACF,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/idl.d.ts
CHANGED
|
@@ -75,6 +75,8 @@ export declare const signIdlFactory: IDL.InterfaceFactory;
|
|
|
75
75
|
* @param I - The IDL module
|
|
76
76
|
*/
|
|
77
77
|
export declare function buildRegistryTypes(I: typeof IDL): {
|
|
78
|
+
Domain: IDL.VariantClass;
|
|
79
|
+
ID: IDL.RecordClass;
|
|
78
80
|
Position: IDL.RecordClass;
|
|
79
81
|
AiProfile: IDL.RecordClass;
|
|
80
82
|
UserProfile: IDL.RecordClass;
|
|
@@ -92,6 +94,7 @@ export declare function buildRegistryService(I: typeof IDL, types: ReturnType<ty
|
|
|
92
94
|
get_username_by_principal: IDL.FuncClass<[IDL.TextClass], [IDL.OptClass<string>]>;
|
|
93
95
|
get_user_principal: IDL.FuncClass<[IDL.TextClass], [IDL.OptClass<import("@dfinity/principal").Principal>]>;
|
|
94
96
|
user_profile_get: IDL.FuncClass<[IDL.TextClass], [IDL.OptClass<Record<string, any>>]>;
|
|
97
|
+
user_profile_get_by_id: IDL.FuncClass<[IDL.RecordClass], [IDL.OptClass<Record<string, any>>]>;
|
|
95
98
|
user_profile_get_by_principal: IDL.FuncClass<[IDL.TextClass], [IDL.OptClass<Record<string, any>>]>;
|
|
96
99
|
register_agent: IDL.FuncClass<[IDL.TextClass], [IDL.VariantClass]>;
|
|
97
100
|
agent_prepare_bond: IDL.FuncClass<[IDL.TextClass], [IDL.VariantClass]>;
|
package/dist/idl.js
CHANGED
|
@@ -163,6 +163,23 @@ export const signIdlFactory = () => {
|
|
|
163
163
|
* @param I - The IDL module
|
|
164
164
|
*/
|
|
165
165
|
export function buildRegistryTypes(I) {
|
|
166
|
+
/** Domain variant — namespace for ID resolution */
|
|
167
|
+
const Domain = I.Variant({
|
|
168
|
+
AI: I.Null,
|
|
169
|
+
ORG: I.Null,
|
|
170
|
+
AGENT: I.Null,
|
|
171
|
+
});
|
|
172
|
+
/**
|
|
173
|
+
* ID record — structured identifier for user_profile_get_by_id
|
|
174
|
+
* id : base name (e.g. "alice", "runner#8939")
|
|
175
|
+
* index : optional numeric discriminator (e.g. 8939 from "alice#8939.ai"); null for vanity IDs
|
|
176
|
+
* domain : optional namespace (AI | ORG | AGENT); null defaults to AI
|
|
177
|
+
*/
|
|
178
|
+
const ID = I.Record({
|
|
179
|
+
id: I.Text,
|
|
180
|
+
index: I.Opt(I.Nat64),
|
|
181
|
+
domain: I.Opt(Domain),
|
|
182
|
+
});
|
|
166
183
|
/** Position record — position information in the registry */
|
|
167
184
|
const Position = I.Record({
|
|
168
185
|
is_human: I.Bool,
|
|
@@ -170,14 +187,22 @@ export function buildRegistryTypes(I) {
|
|
|
170
187
|
});
|
|
171
188
|
/** AI profile record */
|
|
172
189
|
const AiProfile = I.Record({
|
|
190
|
+
ai_name: I.Opt(ID),
|
|
191
|
+
default_name: I.Opt(ID),
|
|
192
|
+
is_free: I.Bool,
|
|
193
|
+
valid_time: I.Opt(I.Nat64),
|
|
194
|
+
bio: I.Opt(I.Text),
|
|
173
195
|
position: I.Opt(Position),
|
|
174
196
|
});
|
|
175
197
|
/** User profile record */
|
|
176
198
|
const UserProfile = I.Record({
|
|
177
199
|
username: I.Text,
|
|
178
|
-
|
|
200
|
+
create_time: I.Nat64,
|
|
201
|
+
modify_time: I.Nat64,
|
|
202
|
+
passkey_name: I.Vec(I.Text),
|
|
203
|
+
display_name: I.Text,
|
|
179
204
|
principal_id: I.Opt(I.Text),
|
|
180
|
-
|
|
205
|
+
ai_profile: I.Opt(AiProfile),
|
|
181
206
|
});
|
|
182
207
|
/** Registration success result record */
|
|
183
208
|
const RegisterResult = I.Record({
|
|
@@ -192,7 +217,7 @@ export function buildRegistryTypes(I) {
|
|
|
192
217
|
request_timestamp: I.Nat64, // When the 2FA request was created
|
|
193
218
|
confirm_timestamp: I.Opt(I.Nat64), // When the 2FA was confirmed (null if pending)
|
|
194
219
|
});
|
|
195
|
-
return { Position, AiProfile, UserProfile, RegisterResult, TwoFARecord };
|
|
220
|
+
return { Domain, ID, Position, AiProfile, UserProfile, RegisterResult, TwoFARecord };
|
|
196
221
|
}
|
|
197
222
|
/**
|
|
198
223
|
* Build the registry canister service, reusing pre-built named types.
|
|
@@ -202,15 +227,17 @@ export function buildRegistryTypes(I) {
|
|
|
202
227
|
* @param types - Named types from buildRegistryTypes() (same instances used in the registry)
|
|
203
228
|
*/
|
|
204
229
|
export function buildRegistryService(I, types) {
|
|
205
|
-
const { UserProfile, RegisterResult, TwoFARecord } = types;
|
|
230
|
+
const { UserProfile, RegisterResult, TwoFARecord, ID } = types;
|
|
206
231
|
return I.Service({
|
|
207
232
|
// ===== Query operations (query) =====
|
|
208
233
|
// Get username by principal
|
|
209
234
|
get_username_by_principal: I.Func([I.Text], [I.Opt(I.Text)], ['query']),
|
|
210
235
|
// Get principal by username
|
|
211
236
|
get_user_principal: I.Func([I.Text], [I.Opt(I.Principal)], ['query']),
|
|
212
|
-
// Get UserProfile by username
|
|
237
|
+
// Get UserProfile by username (legacy)
|
|
213
238
|
user_profile_get: I.Func([I.Text], [I.Opt(UserProfile)], ['query']),
|
|
239
|
+
// Get UserProfile by structured ID (supports .ai vanity and indexed names)
|
|
240
|
+
user_profile_get_by_id: I.Func([ID], [I.Opt(UserProfile)], ['query']),
|
|
214
241
|
// Get UserProfile by principal
|
|
215
242
|
user_profile_get_by_principal: I.Func([I.Text], [I.Opt(UserProfile)], ['query']),
|
|
216
243
|
// ===== Update operations (update call, requires identity) =====
|
package/dist/idl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idl.js","sourceRoot":"","sources":["../src/idl.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"idl.js","sourceRoot":"","sources":["../src/idl.ts"],"names":[],"mappings":"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"}
|
package/dist/key-store.d.ts
CHANGED
|
@@ -22,11 +22,16 @@ import type { ActorSubclass } from '@dfinity/agent';
|
|
|
22
22
|
* In-memory AES-256 key holder for daemon mode.
|
|
23
23
|
*
|
|
24
24
|
* The AES key is derived from VetKey at startup and held in a Buffer.
|
|
25
|
-
*
|
|
25
|
+
* Optionally caches the raw VetKey bytes for IBE decryption (Mail daemon mode).
|
|
26
|
+
* Call destroy() when done to zero all key bytes.
|
|
26
27
|
*/
|
|
27
28
|
export declare class KeyStore {
|
|
28
29
|
/** AES-256 key (32 bytes), derived from VetKey via HKDF */
|
|
29
30
|
private aesKey;
|
|
31
|
+
/** Raw VetKey bytes (48 bytes, compressed G1 point) — cached for IBE decryption */
|
|
32
|
+
private vetkeyBytes;
|
|
33
|
+
/** IBE derived public key bytes (96 bytes) — cached for IBE decryption */
|
|
34
|
+
private dpkBytes;
|
|
30
35
|
/** Derivation ID used for this key (format: "{principal}:{key_name}") */
|
|
31
36
|
private _derivationId;
|
|
32
37
|
/** Whether the key has been destroyed */
|
|
@@ -56,6 +61,12 @@ export declare class KeyStore {
|
|
|
56
61
|
* @internal
|
|
57
62
|
*/
|
|
58
63
|
static createForTest(derivationId: string, key?: Buffer): KeyStore;
|
|
64
|
+
/**
|
|
65
|
+
* Create a KeyStore with VetKey + DPK for IBE testing.
|
|
66
|
+
*
|
|
67
|
+
* @internal
|
|
68
|
+
*/
|
|
69
|
+
static createForTestWithIbe(derivationId: string, vetkeyBytes: Buffer, dpkBytes: Uint8Array, key?: Buffer): KeyStore;
|
|
59
70
|
/**
|
|
60
71
|
* Encrypt plaintext using the held AES-256 key.
|
|
61
72
|
*
|
|
@@ -72,12 +83,26 @@ export declare class KeyStore {
|
|
|
72
83
|
* @returns Decrypted plaintext
|
|
73
84
|
*/
|
|
74
85
|
decrypt(ciphertext: Uint8Array): Buffer;
|
|
86
|
+
/**
|
|
87
|
+
* IBE-decrypt a ciphertext using the cached VetKey.
|
|
88
|
+
*
|
|
89
|
+
* Used by Mail daemon mode: the sender IBE-encrypted using identity
|
|
90
|
+
* "{recipient_principal}:Mail", and the recipient's daemon holds the
|
|
91
|
+
* VetKey for that identity.
|
|
92
|
+
*
|
|
93
|
+
* @param ibeIdentity - IBE identity string used during encryption
|
|
94
|
+
* @param ciphertextBytes - IBE ciphertext bytes
|
|
95
|
+
* @returns Decrypted plaintext
|
|
96
|
+
*/
|
|
97
|
+
ibeDecrypt(ibeIdentity: string, ciphertextBytes: Uint8Array): Buffer;
|
|
98
|
+
/** Whether this KeyStore supports IBE decryption (has cached VetKey) */
|
|
99
|
+
get hasIbeSupport(): boolean;
|
|
75
100
|
/** Get the derivation ID (for status reporting, not sensitive) */
|
|
76
101
|
get derivationId(): string;
|
|
77
102
|
/**
|
|
78
|
-
* Destroy the key store by zeroing
|
|
103
|
+
* Destroy the key store by zeroing all key bytes.
|
|
79
104
|
*
|
|
80
|
-
* After calling destroy(), encrypt() and
|
|
105
|
+
* After calling destroy(), encrypt(), decrypt(), and ibeDecrypt() will throw.
|
|
81
106
|
* This is best-effort memory cleanup — JavaScript GC may have
|
|
82
107
|
* created copies we cannot reach.
|
|
83
108
|
*/
|
package/dist/key-store.js
CHANGED
|
@@ -23,14 +23,17 @@ import { encryptionError, canisterCallError } from './error.js';
|
|
|
23
23
|
* In-memory AES-256 key holder for daemon mode.
|
|
24
24
|
*
|
|
25
25
|
* The AES key is derived from VetKey at startup and held in a Buffer.
|
|
26
|
-
*
|
|
26
|
+
* Optionally caches the raw VetKey bytes for IBE decryption (Mail daemon mode).
|
|
27
|
+
* Call destroy() when done to zero all key bytes.
|
|
27
28
|
*/
|
|
28
29
|
export class KeyStore {
|
|
29
|
-
constructor(aesKey, derivationId) {
|
|
30
|
+
constructor(aesKey, derivationId, vetkeyBytes, dpkBytes) {
|
|
30
31
|
/** Whether the key has been destroyed */
|
|
31
32
|
this.destroyed = false;
|
|
32
33
|
this.aesKey = aesKey;
|
|
33
34
|
this._derivationId = derivationId;
|
|
35
|
+
this.vetkeyBytes = vetkeyBytes ?? null;
|
|
36
|
+
this.dpkBytes = dpkBytes ?? null;
|
|
34
37
|
}
|
|
35
38
|
/**
|
|
36
39
|
* Derive a VetKey from the canister via the sign actor and create a KeyStore.
|
|
@@ -74,7 +77,8 @@ export class KeyStore {
|
|
|
74
77
|
const vetkeyBytes = cryptoOps.decryptVetkey(encryptedVetkeyBytes, dpkBytes, derivationId, transportSecret);
|
|
75
78
|
// Step 5: HKDF derive AES-256 key from VetKey bytes
|
|
76
79
|
const aesKey = cryptoOps.vetkeyToAes256(vetkeyBytes);
|
|
77
|
-
|
|
80
|
+
// Cache raw VetKey and DPK for IBE decryption (Mail daemon mode)
|
|
81
|
+
return new KeyStore(aesKey, derivationId, Buffer.from(vetkeyBytes), dpkBytes);
|
|
78
82
|
}
|
|
79
83
|
/**
|
|
80
84
|
* Create a KeyStore with a known test key (for unit/integration testing only).
|
|
@@ -85,6 +89,15 @@ export class KeyStore {
|
|
|
85
89
|
const aesKey = key ?? Buffer.alloc(32, 0x42); // Fixed test key
|
|
86
90
|
return new KeyStore(aesKey, derivationId);
|
|
87
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Create a KeyStore with VetKey + DPK for IBE testing.
|
|
94
|
+
*
|
|
95
|
+
* @internal
|
|
96
|
+
*/
|
|
97
|
+
static createForTestWithIbe(derivationId, vetkeyBytes, dpkBytes, key) {
|
|
98
|
+
const aesKey = key ?? Buffer.alloc(32, 0x42);
|
|
99
|
+
return new KeyStore(aesKey, derivationId, vetkeyBytes, dpkBytes);
|
|
100
|
+
}
|
|
88
101
|
/**
|
|
89
102
|
* Encrypt plaintext using the held AES-256 key.
|
|
90
103
|
*
|
|
@@ -107,20 +120,47 @@ export class KeyStore {
|
|
|
107
120
|
this.checkNotDestroyed();
|
|
108
121
|
return cryptoOps.aes256Decrypt(this.aesKey, ciphertext);
|
|
109
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* IBE-decrypt a ciphertext using the cached VetKey.
|
|
125
|
+
*
|
|
126
|
+
* Used by Mail daemon mode: the sender IBE-encrypted using identity
|
|
127
|
+
* "{recipient_principal}:Mail", and the recipient's daemon holds the
|
|
128
|
+
* VetKey for that identity.
|
|
129
|
+
*
|
|
130
|
+
* @param ibeIdentity - IBE identity string used during encryption
|
|
131
|
+
* @param ciphertextBytes - IBE ciphertext bytes
|
|
132
|
+
* @returns Decrypted plaintext
|
|
133
|
+
*/
|
|
134
|
+
ibeDecrypt(ibeIdentity, ciphertextBytes) {
|
|
135
|
+
this.checkNotDestroyed();
|
|
136
|
+
if (!this.vetkeyBytes || !this.dpkBytes) {
|
|
137
|
+
throw encryptionError("KeyStore does not have cached VetKey/DPK bytes (required for IBE decryption)");
|
|
138
|
+
}
|
|
139
|
+
return Buffer.from(cryptoOps.ibeDecryptWithCachedKey(this.vetkeyBytes, this.dpkBytes, ibeIdentity, ciphertextBytes));
|
|
140
|
+
}
|
|
141
|
+
/** Whether this KeyStore supports IBE decryption (has cached VetKey) */
|
|
142
|
+
get hasIbeSupport() {
|
|
143
|
+
return this.vetkeyBytes !== null && this.dpkBytes !== null;
|
|
144
|
+
}
|
|
110
145
|
/** Get the derivation ID (for status reporting, not sensitive) */
|
|
111
146
|
get derivationId() {
|
|
112
147
|
return this._derivationId;
|
|
113
148
|
}
|
|
114
149
|
/**
|
|
115
|
-
* Destroy the key store by zeroing
|
|
150
|
+
* Destroy the key store by zeroing all key bytes.
|
|
116
151
|
*
|
|
117
|
-
* After calling destroy(), encrypt() and
|
|
152
|
+
* After calling destroy(), encrypt(), decrypt(), and ibeDecrypt() will throw.
|
|
118
153
|
* This is best-effort memory cleanup — JavaScript GC may have
|
|
119
154
|
* created copies we cannot reach.
|
|
120
155
|
*/
|
|
121
156
|
destroy() {
|
|
122
157
|
if (!this.destroyed) {
|
|
123
158
|
this.aesKey.fill(0);
|
|
159
|
+
if (this.vetkeyBytes) {
|
|
160
|
+
this.vetkeyBytes.fill(0);
|
|
161
|
+
this.vetkeyBytes = null;
|
|
162
|
+
}
|
|
163
|
+
this.dpkBytes = null;
|
|
124
164
|
this.destroyed = true;
|
|
125
165
|
}
|
|
126
166
|
}
|
package/dist/key-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-store.js","sourceRoot":"","sources":["../src/key-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEhE
|
|
1
|
+
{"version":3,"file":"key-store.js","sourceRoot":"","sources":["../src/key-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,OAAO,QAAQ;IAYnB,YACE,MAAc,EACd,YAAoB,EACpB,WAAoB,EACpB,QAAqB;QAPvB,yCAAyC;QACjC,cAAS,GAAG,KAAK,CAAC;QAQxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,IAAI,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAC1B,KAAyB,EACzB,YAAoB;QAEpB,qFAAqF;QACrF,IAAI,QAAoB,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,kBAAkB,EAAgB,CAAC;YAC9D,QAAQ,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,iBAAiB,CACrB,8BAA8B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAC1E,CAAC,CACF,CAAC;QACJ,CAAC;QAED,gDAAgD;QAChD,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,GAAG,SAAS,CAAC,wBAAwB,EAAE,CAAC;QAEhF,mDAAmD;QACnD,IAAI,oBAAgC,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,aAAa,CACtC,YAAY,EACZ,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CACd,CAAC;YAChB,oBAAoB,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,iBAAiB,CACrB,yBAAyB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EACrE,CAAC,CACF,CAAC;QACJ,CAAC;QAED,kDAAkD;QAClD,MAAM,WAAW,GAAG,SAAS,CAAC,aAAa,CACzC,oBAAoB,EACpB,QAAQ,EACR,YAAY,EACZ,eAAe,CAChB,CAAC;QAEF,oDAAoD;QACpD,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAErD,iEAAiE;QACjE,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;IAChF,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,YAAoB,EAAE,GAAY;QACrD,MAAM,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,iBAAiB;QAC/D,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,oBAAoB,CACzB,YAAoB,EACpB,WAAmB,EACnB,QAAoB,EACpB,GAAY;QAEZ,MAAM,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7C,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,SAAqB;QAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzD,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,UAAsB;QAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;;;OAUG;IACH,UAAU,CAAC,WAAmB,EAAE,eAA2B;QACzD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,eAAe,CACnB,8EAA8E,CAC/E,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAChB,SAAS,CAAC,uBAAuB,CAC/B,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,QAAQ,EACb,WAAW,EACX,eAAe,CAChB,CACF,CAAC;IACJ,CAAC;IAED,wEAAwE;IACxE,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;IAC7D,CAAC;IAED,kEAAkE;IAClE,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;;;;OAMG;IACH,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YAC1B,CAAC;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED,+CAA+C;IACvC,iBAAiB;QACvB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,eAAe,CAAC,4CAA4C,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;CACF"}
|