@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 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 <user_principal> Prepare binding and generate authentication URL
12
- * zcloak-ai bind check-passkey <user_principal> Check if a principal has a registered 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 <user_principal> Prepare binding and generate authentication URL
12
- * zcloak-ai bind check-passkey <user_principal> Check if a principal has a registered 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 <user_principal> Prepare binding and generate authentication URL');
22
- console.log(' zcloak-ai bind check-passkey <user_principal> Check if a principal has a registered 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 checks if target principal has a registered passkey (pre-check)');
29
- console.log(' 2. Script calls agent_prepare_bond to get WebAuthn challenge');
30
- console.log(' 3. Script generates authentication URL');
31
- console.log(' 4. User opens the URL in browser and completes authentication with passkey');
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, userPrincipal) {
57
- if (!userPrincipal) {
58
- console.error('Error: user principal ID is required');
59
- console.error('Usage: zcloak-ai bind check-passkey <user_principal>');
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, userPrincipal) {
77
- if (!userPrincipal) {
78
- console.error('Error: user principal ID is required');
79
- console.error('Usage: zcloak-ai bind prepare <user_principal>');
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":"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"}
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
  *
@@ -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":"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"}
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
- ai_profile: I.Opt(AiProfile),
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
- passkey_name: I.Vec(I.Text), // Passkey names registered by the user
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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"}
@@ -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
- * Call destroy() when done to zero the key bytes.
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 the AES key bytes.
103
+ * Destroy the key store by zeroing all key bytes.
79
104
  *
80
- * After calling destroy(), encrypt() and decrypt() will throw.
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
- * Call destroy() when done to zero the key bytes.
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
- return new KeyStore(aesKey, derivationId);
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 the AES key bytes.
150
+ * Destroy the key store by zeroing all key bytes.
116
151
  *
117
- * After calling destroy(), encrypt() and decrypt() will throw.
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
  }
@@ -1 +1 @@
1
- {"version":3,"file":"key-store.js","sourceRoot":"","sources":["../src/key-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key-store.js","sourceRoot":"","sources":["../src/key-store.ts"],"names":[],"mappings":"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"}