@smartledger/keys 1.2.2 → 1.4.0
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/LICENSE +23 -23
- package/README.md +535 -492
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/sdk.d.ts +94 -1
- package/dist/cjs/sdk.d.ts.map +1 -1
- package/dist/cjs/sdk.js +255 -6
- package/dist/cjs/sdk.js.map +1 -1
- package/dist/cjs/types.d.ts +83 -1
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/esm/sdk.d.ts +94 -1
- package/dist/esm/sdk.d.ts.map +1 -1
- package/dist/esm/sdk.js +255 -7
- package/dist/esm/sdk.js.map +1 -1
- package/dist/esm/types.d.ts +83 -1
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/lumen-keys.js +6885 -135
- package/dist/lumen-keys.js.map +4 -4
- package/dist/lumen-keys.min.js +2070 -1
- package/dist/lumen-keys.min.js.map +4 -4
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +76 -76
package/dist/cjs/index.d.ts
CHANGED
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AAGzB,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AAGzB,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -19,6 +19,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
19
19
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
20
|
};
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.BIP32Derivation = void 0;
|
|
22
23
|
__exportStar(require("./types.js"), exports);
|
|
23
24
|
__exportStar(require("./sdk.js"), exports);
|
|
25
|
+
var crypto_1 = require("@smartledger/crypto");
|
|
26
|
+
Object.defineProperty(exports, "BIP32Derivation", { enumerable: true, get: function () { return crypto_1.BIP32Derivation; } });
|
|
24
27
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;AAEH,6CAA2B;AAC3B,2CAAyB;AAIzB,8CAAsD;AAA7C,yGAAA,eAAe,OAAA"}
|
package/dist/cjs/sdk.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* a clean, high-level API for key operations.
|
|
6
6
|
*/
|
|
7
7
|
import { KeyRegistry, SignatureSuiteRegistry, CryptoProfile } from '@smartledger/crypto';
|
|
8
|
-
import { KeySDK, KeyRecord, CreateKeyOptions } from './types.js';
|
|
8
|
+
import { KeySDK, KeyRecord, CreateKeyOptions, MultiSignatureResult, MultiVerificationResult, SuiteSignature } from './types.js';
|
|
9
9
|
/**
|
|
10
10
|
* Configuration for DefaultKeySDK.
|
|
11
11
|
*/
|
|
@@ -24,6 +24,8 @@ export declare class DefaultKeySDK implements KeySDK {
|
|
|
24
24
|
private keyRegistry;
|
|
25
25
|
private suiteRegistry;
|
|
26
26
|
private keyCounter;
|
|
27
|
+
private counterInitialized;
|
|
28
|
+
private counterInitPromises;
|
|
27
29
|
constructor(config: KeySDKConfig);
|
|
28
30
|
/**
|
|
29
31
|
* Create a new key for an agent.
|
|
@@ -57,6 +59,77 @@ export declare class DefaultKeySDK implements KeySDK {
|
|
|
57
59
|
* Get or create key (idempotent).
|
|
58
60
|
*/
|
|
59
61
|
getOrCreateKey(agentId: string, profile: CryptoProfile, options?: CreateKeyOptions): Promise<KeyRecord>;
|
|
62
|
+
/**
|
|
63
|
+
* Create both primary and secondary keys for an agent.
|
|
64
|
+
*/
|
|
65
|
+
createDualSignatureKeys(agentId: string, profile: CryptoProfile, options?: CreateKeyOptions): Promise<{
|
|
66
|
+
primaryKey: KeyRecord;
|
|
67
|
+
secondaryKey: KeyRecord;
|
|
68
|
+
}>;
|
|
69
|
+
/**
|
|
70
|
+
* Idempotent creation of both primary and secondary keys.
|
|
71
|
+
*/
|
|
72
|
+
getOrCreateDualSignatureKeys(agentId: string, profile: CryptoProfile, options?: CreateKeyOptions): Promise<{
|
|
73
|
+
primaryKey: KeyRecord;
|
|
74
|
+
secondaryKey: KeyRecord;
|
|
75
|
+
}>;
|
|
76
|
+
/**
|
|
77
|
+
* Sign with one or more suites for an agent.
|
|
78
|
+
*/
|
|
79
|
+
signWithSuites(agentId: string, message: Uint8Array, suites?: string[]): Promise<MultiSignatureResult>;
|
|
80
|
+
/**
|
|
81
|
+
* Verify multiple signatures for an agent.
|
|
82
|
+
*/
|
|
83
|
+
verifyWithSuites(agentId: string, message: Uint8Array, signatures: SuiteSignature[]): Promise<MultiVerificationResult>;
|
|
84
|
+
/**
|
|
85
|
+
* Generate a new BIP39 mnemonic phrase.
|
|
86
|
+
*
|
|
87
|
+
* @param strength 128 (12 words) or 256 (24 words)
|
|
88
|
+
* @returns Mnemonic phrase
|
|
89
|
+
*/
|
|
90
|
+
generateMnemonic(strength?: 128 | 256): string;
|
|
91
|
+
/**
|
|
92
|
+
* Create a key from a BIP39 mnemonic using HD derivation.
|
|
93
|
+
*
|
|
94
|
+
* Only works with suites that support BIP32 derivation (e.g., bsv-ecdsa-secp256k1).
|
|
95
|
+
*
|
|
96
|
+
* @param agentId Agent identifier
|
|
97
|
+
* @param profile Crypto profile (must use derivation-capable suite)
|
|
98
|
+
* @param mnemonic BIP39 mnemonic phrase
|
|
99
|
+
* @param path BIP32 derivation path (default: "m/44'/0'/0'/0/0")
|
|
100
|
+
* @param passphrase Optional BIP39 passphrase
|
|
101
|
+
* @param options Additional key creation options
|
|
102
|
+
* @returns KeyRecord with derived key
|
|
103
|
+
*/
|
|
104
|
+
createKeyFromMnemonic(agentId: string, profile: CryptoProfile, mnemonic: string, path?: string, passphrase?: string, options?: CreateKeyOptions): Promise<KeyRecord>;
|
|
105
|
+
/**
|
|
106
|
+
* Get available capabilities for a specific suite.
|
|
107
|
+
*
|
|
108
|
+
* @param suiteId Suite identifier
|
|
109
|
+
* @returns Array of capability names
|
|
110
|
+
*/
|
|
111
|
+
getCapabilities(suiteId: string): string[];
|
|
112
|
+
/**
|
|
113
|
+
* Get all suite IDs that support a specific capability.
|
|
114
|
+
*
|
|
115
|
+
* @param capability Capability name
|
|
116
|
+
* @returns Array of suite IDs
|
|
117
|
+
*/
|
|
118
|
+
getSuitesWithCapability(capability: 'derivation' | 'encryption' | 'threshold'): string[];
|
|
119
|
+
/**
|
|
120
|
+
* Create a Bitcoin wallet key from mnemonic (convenience method).
|
|
121
|
+
*
|
|
122
|
+
* Uses standard BIP44 Bitcoin path: m/44'/0'/account'/change/addressIndex
|
|
123
|
+
*
|
|
124
|
+
* @param agentId Agent identifier
|
|
125
|
+
* @param mnemonic BIP39 mnemonic phrase
|
|
126
|
+
* @param accountIndex Account index (default: 0)
|
|
127
|
+
* @param addressIndex Address index (default: 0)
|
|
128
|
+
* @param isChange Use change address path (default: false)
|
|
129
|
+
* @param options Additional key creation options
|
|
130
|
+
* @returns KeyRecord with Bitcoin-compatible key
|
|
131
|
+
*/
|
|
132
|
+
createBitcoinWalletKey(agentId: string, mnemonic: string, accountIndex?: number, addressIndex?: number, isChange?: boolean, options?: CreateKeyOptions): Promise<KeyRecord>;
|
|
60
133
|
/**
|
|
61
134
|
* Helper: Get hash algorithm for a suite.
|
|
62
135
|
*/
|
|
@@ -65,5 +138,25 @@ export declare class DefaultKeySDK implements KeySDK {
|
|
|
65
138
|
* Helper: Get next counter for an agent.
|
|
66
139
|
*/
|
|
67
140
|
private getNextCounter;
|
|
141
|
+
/**
|
|
142
|
+
* Helper: sort keys deterministically by createdAt then keyId.
|
|
143
|
+
*/
|
|
144
|
+
private sortKeysByCreatedAt;
|
|
145
|
+
private getSuitePriority;
|
|
68
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Create a KeySDK instance with default configuration
|
|
149
|
+
*
|
|
150
|
+
* Uses in-memory storage and registers both ECDSA and ML-DSA suites.
|
|
151
|
+
* For custom storage or different suites, instantiate DefaultKeySDK directly.
|
|
152
|
+
*
|
|
153
|
+
* @example
|
|
154
|
+
* ```typescript
|
|
155
|
+
* import { createKeySDK } from '@smartledger/keys';
|
|
156
|
+
*
|
|
157
|
+
* const sdk = createKeySDK();
|
|
158
|
+
* const key = await sdk.createKey('my-agent', { primarySignatureSuite: 'ml-dsa-87' });
|
|
159
|
+
* ```
|
|
160
|
+
*/
|
|
161
|
+
export declare function createKeySDK(config?: Partial<KeySDKConfig>): KeySDK;
|
|
69
162
|
//# sourceMappingURL=sdk.d.ts.map
|
package/dist/cjs/sdk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/sdk.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,WAAW,EACX,sBAAsB,EAEtB,aAAa,
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../src/sdk.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/sdk.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.DefaultKeySDK = void 0;
|
|
10
|
+
exports.createKeySDK = createKeySDK;
|
|
10
11
|
const crypto_1 = require("@smartledger/crypto");
|
|
11
12
|
/**
|
|
12
13
|
* Default KeySDK implementation.
|
|
@@ -16,6 +17,8 @@ const crypto_1 = require("@smartledger/crypto");
|
|
|
16
17
|
class DefaultKeySDK {
|
|
17
18
|
constructor(config) {
|
|
18
19
|
this.keyCounter = new Map(); // agentId -> counter
|
|
20
|
+
this.counterInitialized = new Set();
|
|
21
|
+
this.counterInitPromises = new Map();
|
|
19
22
|
this.keyRegistry = config.keyRegistry;
|
|
20
23
|
this.suiteRegistry = config.suiteRegistry;
|
|
21
24
|
}
|
|
@@ -23,11 +26,29 @@ class DefaultKeySDK {
|
|
|
23
26
|
* Create a new key for an agent.
|
|
24
27
|
*/
|
|
25
28
|
async createKey(agentId, profile, options = {}) {
|
|
26
|
-
//
|
|
29
|
+
// Get suite
|
|
27
30
|
const suite = this.suiteRegistry.getSuite(profile.primarySignatureSuite);
|
|
28
|
-
|
|
31
|
+
// Generate keypair (with optional derivation)
|
|
32
|
+
let keypair;
|
|
33
|
+
if (options.derivationContext) {
|
|
34
|
+
// Check if suite supports derivation
|
|
35
|
+
if (!suite.capabilities?.derivation) {
|
|
36
|
+
const available = this.getSuitesWithCapability('derivation');
|
|
37
|
+
throw new Error(`Suite '${suite.suiteId}' does not support key derivation.\n` +
|
|
38
|
+
(available.length > 0
|
|
39
|
+
? `Suites with derivation capability: ${available.join(', ')}\n` +
|
|
40
|
+
`Consider using one of these suites or remove the derivationContext option.`
|
|
41
|
+
: `No suites currently support derivation. Remove the derivationContext option.`));
|
|
42
|
+
}
|
|
43
|
+
// Use derivation capability
|
|
44
|
+
keypair = await suite.capabilities.derivation.deriveKeypair(options.derivationContext);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
// Standard random key generation
|
|
48
|
+
keypair = await suite.generateKeypair();
|
|
49
|
+
}
|
|
29
50
|
// Generate unique keyId
|
|
30
|
-
const counter = this.getNextCounter(agentId);
|
|
51
|
+
const counter = await this.getNextCounter(agentId);
|
|
31
52
|
const suiteName = profile.primarySignatureSuite.split('-')[0]; // 'ml-dsa' or 'bsv'
|
|
32
53
|
const keyId = `${agentId}:pk-${suiteName}-${counter}`;
|
|
33
54
|
// Register key
|
|
@@ -123,7 +144,8 @@ class DefaultKeySDK {
|
|
|
123
144
|
return null;
|
|
124
145
|
}
|
|
125
146
|
// Group by suite
|
|
126
|
-
const
|
|
147
|
+
const sorted = this.sortKeysByCreatedAt(keys);
|
|
148
|
+
const suites = new Set(sorted.map(k => k.meta.suiteId));
|
|
127
149
|
const suiteArray = Array.from(suites);
|
|
128
150
|
// Assume first is primary, second is secondary
|
|
129
151
|
return {
|
|
@@ -142,7 +164,7 @@ class DefaultKeySDK {
|
|
|
142
164
|
const suite = this.suiteRegistry.getSuite(keyRecord.meta.suiteId);
|
|
143
165
|
const newKeypair = await suite.generateKeypair();
|
|
144
166
|
// Generate new keyId (increment counter)
|
|
145
|
-
const counter = this.getNextCounter(agentId);
|
|
167
|
+
const counter = await this.getNextCounter(agentId);
|
|
146
168
|
const suiteName = keyRecord.meta.suiteId.split('-')[0];
|
|
147
169
|
const newKeyId = `${agentId}:pk-${suiteName}-${counter}`;
|
|
148
170
|
// Rotate
|
|
@@ -167,6 +189,160 @@ class DefaultKeySDK {
|
|
|
167
189
|
// Create new key
|
|
168
190
|
return await this.createKey(agentId, profile, options);
|
|
169
191
|
}
|
|
192
|
+
/**
|
|
193
|
+
* Create both primary and secondary keys for an agent.
|
|
194
|
+
*/
|
|
195
|
+
async createDualSignatureKeys(agentId, profile, options = {}) {
|
|
196
|
+
if (!profile.secondarySignatureSuite) {
|
|
197
|
+
throw new Error('secondarySignatureSuite is required to create dual signature keys');
|
|
198
|
+
}
|
|
199
|
+
const primaryKey = await this.createKey(agentId, {
|
|
200
|
+
primarySignatureSuite: profile.primarySignatureSuite,
|
|
201
|
+
}, options);
|
|
202
|
+
const secondaryKey = await this.createKey(agentId, {
|
|
203
|
+
primarySignatureSuite: profile.secondarySignatureSuite,
|
|
204
|
+
}, options);
|
|
205
|
+
return { primaryKey, secondaryKey };
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Idempotent creation of both primary and secondary keys.
|
|
209
|
+
*/
|
|
210
|
+
async getOrCreateDualSignatureKeys(agentId, profile, options = {}) {
|
|
211
|
+
if (!profile.secondarySignatureSuite) {
|
|
212
|
+
throw new Error('secondarySignatureSuite is required to create dual signature keys');
|
|
213
|
+
}
|
|
214
|
+
const primaryKey = await this.getOrCreateKey(agentId, {
|
|
215
|
+
primarySignatureSuite: profile.primarySignatureSuite,
|
|
216
|
+
}, options);
|
|
217
|
+
const secondaryKey = await this.getOrCreateKey(agentId, {
|
|
218
|
+
primarySignatureSuite: profile.secondarySignatureSuite,
|
|
219
|
+
}, options);
|
|
220
|
+
return { primaryKey, secondaryKey };
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Sign with one or more suites for an agent.
|
|
224
|
+
*/
|
|
225
|
+
async signWithSuites(agentId, message, suites) {
|
|
226
|
+
const activeKeys = this.sortKeysByCreatedAt(await this.listKeysForAgent(agentId, true));
|
|
227
|
+
if (activeKeys.length === 0) {
|
|
228
|
+
throw new Error(`No active keys found for agent: ${agentId}`);
|
|
229
|
+
}
|
|
230
|
+
const suitesToUse = suites?.length ? suites : Array.from(new Set(activeKeys.map(k => k.meta.suiteId)));
|
|
231
|
+
const signatures = [];
|
|
232
|
+
for (const suiteId of suitesToUse) {
|
|
233
|
+
const key = activeKeys.find(k => k.meta.suiteId === suiteId);
|
|
234
|
+
if (!key) {
|
|
235
|
+
throw new Error(`No active key for suite '${suiteId}' and agent '${agentId}'`);
|
|
236
|
+
}
|
|
237
|
+
const signature = await this.signWithKey(key.meta.keyId, message);
|
|
238
|
+
signatures.push({ suiteId, keyId: key.meta.keyId, signature });
|
|
239
|
+
}
|
|
240
|
+
return { signatures };
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Verify multiple signatures for an agent.
|
|
244
|
+
*/
|
|
245
|
+
async verifyWithSuites(agentId, message, signatures) {
|
|
246
|
+
const results = [];
|
|
247
|
+
for (const entry of signatures) {
|
|
248
|
+
try {
|
|
249
|
+
const valid = await this.verifySignature(entry.keyId, message, entry.signature);
|
|
250
|
+
results.push({ suiteId: entry.suiteId, keyId: entry.keyId, valid });
|
|
251
|
+
}
|
|
252
|
+
catch (error) {
|
|
253
|
+
results.push({
|
|
254
|
+
suiteId: entry.suiteId,
|
|
255
|
+
keyId: entry.keyId,
|
|
256
|
+
valid: false,
|
|
257
|
+
error: error.message,
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
return {
|
|
262
|
+
results,
|
|
263
|
+
allValid: results.every(r => r.valid),
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Generate a new BIP39 mnemonic phrase.
|
|
268
|
+
*
|
|
269
|
+
* @param strength 128 (12 words) or 256 (24 words)
|
|
270
|
+
* @returns Mnemonic phrase
|
|
271
|
+
*/
|
|
272
|
+
generateMnemonic(strength = 256) {
|
|
273
|
+
const bip32 = new crypto_1.BIP32Derivation();
|
|
274
|
+
return bip32.generateMnemonic(strength);
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Create a key from a BIP39 mnemonic using HD derivation.
|
|
278
|
+
*
|
|
279
|
+
* Only works with suites that support BIP32 derivation (e.g., bsv-ecdsa-secp256k1).
|
|
280
|
+
*
|
|
281
|
+
* @param agentId Agent identifier
|
|
282
|
+
* @param profile Crypto profile (must use derivation-capable suite)
|
|
283
|
+
* @param mnemonic BIP39 mnemonic phrase
|
|
284
|
+
* @param path BIP32 derivation path (default: "m/44'/0'/0'/0/0")
|
|
285
|
+
* @param passphrase Optional BIP39 passphrase
|
|
286
|
+
* @param options Additional key creation options
|
|
287
|
+
* @returns KeyRecord with derived key
|
|
288
|
+
*/
|
|
289
|
+
async createKeyFromMnemonic(agentId, profile, mnemonic, path = crypto_1.BIP32Derivation.bitcoinPath(0, 0, 0), passphrase, options = {}) {
|
|
290
|
+
const bip32 = new crypto_1.BIP32Derivation();
|
|
291
|
+
const seed = bip32.mnemonicToSeed(mnemonic, passphrase);
|
|
292
|
+
return await this.createKey(agentId, profile, {
|
|
293
|
+
...options,
|
|
294
|
+
derivationContext: {
|
|
295
|
+
seed,
|
|
296
|
+
path,
|
|
297
|
+
},
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Get available capabilities for a specific suite.
|
|
302
|
+
*
|
|
303
|
+
* @param suiteId Suite identifier
|
|
304
|
+
* @returns Array of capability names
|
|
305
|
+
*/
|
|
306
|
+
getCapabilities(suiteId) {
|
|
307
|
+
const suite = this.suiteRegistry.getSuite(suiteId);
|
|
308
|
+
const caps = [];
|
|
309
|
+
if (suite.capabilities?.derivation)
|
|
310
|
+
caps.push('derivation');
|
|
311
|
+
if (suite.capabilities?.encryption)
|
|
312
|
+
caps.push('encryption');
|
|
313
|
+
if (suite.capabilities?.threshold)
|
|
314
|
+
caps.push('threshold');
|
|
315
|
+
return caps;
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Get all suite IDs that support a specific capability.
|
|
319
|
+
*
|
|
320
|
+
* @param capability Capability name
|
|
321
|
+
* @returns Array of suite IDs
|
|
322
|
+
*/
|
|
323
|
+
getSuitesWithCapability(capability) {
|
|
324
|
+
const allSuites = this.suiteRegistry.getAllSuites();
|
|
325
|
+
return allSuites
|
|
326
|
+
.filter(suite => !!suite.capabilities?.[capability])
|
|
327
|
+
.map(suite => suite.suiteId);
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Create a Bitcoin wallet key from mnemonic (convenience method).
|
|
331
|
+
*
|
|
332
|
+
* Uses standard BIP44 Bitcoin path: m/44'/0'/account'/change/addressIndex
|
|
333
|
+
*
|
|
334
|
+
* @param agentId Agent identifier
|
|
335
|
+
* @param mnemonic BIP39 mnemonic phrase
|
|
336
|
+
* @param accountIndex Account index (default: 0)
|
|
337
|
+
* @param addressIndex Address index (default: 0)
|
|
338
|
+
* @param isChange Use change address path (default: false)
|
|
339
|
+
* @param options Additional key creation options
|
|
340
|
+
* @returns KeyRecord with Bitcoin-compatible key
|
|
341
|
+
*/
|
|
342
|
+
async createBitcoinWalletKey(agentId, mnemonic, accountIndex = 0, addressIndex = 0, isChange = false, options = {}) {
|
|
343
|
+
const path = crypto_1.BIP32Derivation.bitcoinPath(accountIndex, isChange ? 1 : 0, addressIndex);
|
|
344
|
+
return this.createKeyFromMnemonic(agentId, { primarySignatureSuite: 'bsv-ecdsa-secp256k1' }, mnemonic, path, undefined, options);
|
|
345
|
+
}
|
|
170
346
|
/**
|
|
171
347
|
* Helper: Get hash algorithm for a suite.
|
|
172
348
|
*/
|
|
@@ -179,12 +355,85 @@ class DefaultKeySDK {
|
|
|
179
355
|
/**
|
|
180
356
|
* Helper: Get next counter for an agent.
|
|
181
357
|
*/
|
|
182
|
-
getNextCounter(agentId) {
|
|
358
|
+
async getNextCounter(agentId) {
|
|
359
|
+
if (!this.counterInitialized.has(agentId)) {
|
|
360
|
+
if (!this.counterInitPromises.has(agentId)) {
|
|
361
|
+
const initPromise = (async () => {
|
|
362
|
+
const existing = await this.keyRegistry.listKeys();
|
|
363
|
+
const max = existing.reduce((acc, meta) => {
|
|
364
|
+
if (!meta.keyId.startsWith(`${agentId}:pk-`))
|
|
365
|
+
return acc;
|
|
366
|
+
const match = meta.keyId.match(/:pk-[^-]+-(\d+)$/);
|
|
367
|
+
if (!match)
|
|
368
|
+
return acc;
|
|
369
|
+
const num = parseInt(match[1], 10);
|
|
370
|
+
return Number.isFinite(num) ? Math.max(acc, num) : acc;
|
|
371
|
+
}, 0);
|
|
372
|
+
this.keyCounter.set(agentId, max);
|
|
373
|
+
this.counterInitialized.add(agentId);
|
|
374
|
+
this.counterInitPromises.delete(agentId);
|
|
375
|
+
})();
|
|
376
|
+
this.counterInitPromises.set(agentId, initPromise);
|
|
377
|
+
}
|
|
378
|
+
const pendingInit = this.counterInitPromises.get(agentId);
|
|
379
|
+
if (pendingInit) {
|
|
380
|
+
await pendingInit;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
183
383
|
const current = this.keyCounter.get(agentId) || 0;
|
|
184
384
|
const next = current + 1;
|
|
185
385
|
this.keyCounter.set(agentId, next);
|
|
186
386
|
return next;
|
|
187
387
|
}
|
|
388
|
+
/**
|
|
389
|
+
* Helper: sort keys deterministically by createdAt then keyId.
|
|
390
|
+
*/
|
|
391
|
+
sortKeysByCreatedAt(keys) {
|
|
392
|
+
return [...keys].sort((a, b) => {
|
|
393
|
+
const aTime = new Date(a.meta.createdAt).getTime();
|
|
394
|
+
const bTime = new Date(b.meta.createdAt).getTime();
|
|
395
|
+
if (aTime !== bTime)
|
|
396
|
+
return aTime - bTime;
|
|
397
|
+
const priorityDiff = this.getSuitePriority(a.meta.suiteId) - this.getSuitePriority(b.meta.suiteId);
|
|
398
|
+
if (priorityDiff !== 0)
|
|
399
|
+
return priorityDiff;
|
|
400
|
+
return a.meta.keyId.localeCompare(b.meta.keyId);
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
getSuitePriority(suiteId) {
|
|
404
|
+
if (suiteId.startsWith('ml-dsa'))
|
|
405
|
+
return 0;
|
|
406
|
+
if (suiteId.includes('ecdsa'))
|
|
407
|
+
return 1;
|
|
408
|
+
return 2;
|
|
409
|
+
}
|
|
188
410
|
}
|
|
189
411
|
exports.DefaultKeySDK = DefaultKeySDK;
|
|
412
|
+
/**
|
|
413
|
+
* Create a KeySDK instance with default configuration
|
|
414
|
+
*
|
|
415
|
+
* Uses in-memory storage and registers both ECDSA and ML-DSA suites.
|
|
416
|
+
* For custom storage or different suites, instantiate DefaultKeySDK directly.
|
|
417
|
+
*
|
|
418
|
+
* @example
|
|
419
|
+
* ```typescript
|
|
420
|
+
* import { createKeySDK } from '@smartledger/keys';
|
|
421
|
+
*
|
|
422
|
+
* const sdk = createKeySDK();
|
|
423
|
+
* const key = await sdk.createKey('my-agent', { primarySignatureSuite: 'ml-dsa-87' });
|
|
424
|
+
* ```
|
|
425
|
+
*/
|
|
426
|
+
function createKeySDK(config) {
|
|
427
|
+
const keyRegistry = config?.keyRegistry || new crypto_1.KeyRegistry(new crypto_1.InMemoryKeyStorage());
|
|
428
|
+
const suiteRegistry = config?.suiteRegistry || new crypto_1.SignatureSuiteRegistry();
|
|
429
|
+
// Register default suites if not provided
|
|
430
|
+
if (!config?.suiteRegistry) {
|
|
431
|
+
suiteRegistry.register(new crypto_1.BsvEcdsaSuite());
|
|
432
|
+
suiteRegistry.register(new crypto_1.MlDsa87Suite());
|
|
433
|
+
}
|
|
434
|
+
return new DefaultKeySDK({
|
|
435
|
+
keyRegistry,
|
|
436
|
+
suiteRegistry,
|
|
437
|
+
});
|
|
438
|
+
}
|
|
190
439
|
//# sourceMappingURL=sdk.js.map
|
package/dist/cjs/sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/sdk.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../src/sdk.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Single source of truth for cryptographic key operations.
|
|
5
5
|
* Provides a clean API that hides complexity and ensures consistency.
|
|
6
6
|
*/
|
|
7
|
-
import { KeyMeta, CryptoProfile } from '@smartledger/crypto';
|
|
7
|
+
import { KeyMeta, CryptoProfile, DerivationContext } from '@smartledger/crypto';
|
|
8
8
|
/**
|
|
9
9
|
* Public key record (safe to expose, no private key).
|
|
10
10
|
*/
|
|
@@ -22,6 +22,32 @@ export interface CreateKeyOptions {
|
|
|
22
22
|
usage?: Array<'signing' | 'encryption' | 'both'>;
|
|
23
23
|
/** Crypto profile version (default: '1.0.0') */
|
|
24
24
|
cryptoProfileVersion?: string;
|
|
25
|
+
/** Optional derivation context for deterministic key generation */
|
|
26
|
+
derivationContext?: DerivationContext;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Signature generated by a specific suite/key combination.
|
|
30
|
+
*/
|
|
31
|
+
export interface SuiteSignature {
|
|
32
|
+
suiteId: string;
|
|
33
|
+
keyId: string;
|
|
34
|
+
signature: Uint8Array;
|
|
35
|
+
}
|
|
36
|
+
/** Result of signing with one or more suites. */
|
|
37
|
+
export interface MultiSignatureResult {
|
|
38
|
+
signatures: SuiteSignature[];
|
|
39
|
+
}
|
|
40
|
+
/** Per-suite verification outcome. */
|
|
41
|
+
export interface SuiteVerificationResult {
|
|
42
|
+
suiteId: string;
|
|
43
|
+
keyId: string;
|
|
44
|
+
valid: boolean;
|
|
45
|
+
error?: string;
|
|
46
|
+
}
|
|
47
|
+
/** Aggregate verification outcome across suites. */
|
|
48
|
+
export interface MultiVerificationResult {
|
|
49
|
+
results: SuiteVerificationResult[];
|
|
50
|
+
allValid: boolean;
|
|
25
51
|
}
|
|
26
52
|
/**
|
|
27
53
|
* Key SDK - Single interface for all key operations.
|
|
@@ -105,6 +131,62 @@ export interface KeySDK {
|
|
|
105
131
|
* @returns KeyRecord (new or existing)
|
|
106
132
|
*/
|
|
107
133
|
getOrCreateKey(agentId: string, profile: CryptoProfile, options?: CreateKeyOptions): Promise<KeyRecord>;
|
|
134
|
+
/**
|
|
135
|
+
* Create both primary and secondary keys in a single call.
|
|
136
|
+
* Requires profile.secondarySignatureSuite to be set.
|
|
137
|
+
*/
|
|
138
|
+
createDualSignatureKeys(agentId: string, profile: CryptoProfile, options?: CreateKeyOptions): Promise<{
|
|
139
|
+
primaryKey: KeyRecord;
|
|
140
|
+
secondaryKey: KeyRecord;
|
|
141
|
+
}>;
|
|
142
|
+
/**
|
|
143
|
+
* Idempotent dual-key creation; returns existing active keys when present.
|
|
144
|
+
*/
|
|
145
|
+
getOrCreateDualSignatureKeys(agentId: string, profile: CryptoProfile, options?: CreateKeyOptions): Promise<{
|
|
146
|
+
primaryKey: KeyRecord;
|
|
147
|
+
secondaryKey: KeyRecord;
|
|
148
|
+
}>;
|
|
149
|
+
/**
|
|
150
|
+
* Sign with one or more suites. If suites not provided, uses active profile.
|
|
151
|
+
*/
|
|
152
|
+
signWithSuites(agentId: string, message: Uint8Array, suites?: string[]): Promise<MultiSignatureResult>;
|
|
153
|
+
/**
|
|
154
|
+
* Verify multiple signatures for an agent.
|
|
155
|
+
*/
|
|
156
|
+
verifyWithSuites(agentId: string, message: Uint8Array, signatures: SuiteSignature[]): Promise<MultiVerificationResult>;
|
|
157
|
+
/**
|
|
158
|
+
* Generate a new BIP39 mnemonic phrase.
|
|
159
|
+
*
|
|
160
|
+
* @param strength 128 (12 words) or 256 (24 words)
|
|
161
|
+
* @returns Mnemonic phrase
|
|
162
|
+
*/
|
|
163
|
+
generateMnemonic(strength?: 128 | 256): string;
|
|
164
|
+
/**
|
|
165
|
+
* Create a key from a BIP39 mnemonic using HD derivation.
|
|
166
|
+
*
|
|
167
|
+
* @param agentId Agent identifier
|
|
168
|
+
* @param profile Crypto profile (must use derivation-capable suite)
|
|
169
|
+
* @param mnemonic BIP39 mnemonic phrase
|
|
170
|
+
* @param path BIP32 derivation path
|
|
171
|
+
* @param passphrase Optional BIP39 passphrase
|
|
172
|
+
* @param options Additional key creation options
|
|
173
|
+
* @returns KeyRecord with derived key
|
|
174
|
+
*/
|
|
175
|
+
createKeyFromMnemonic(agentId: string, profile: CryptoProfile, mnemonic: string, path?: string, passphrase?: string, options?: CreateKeyOptions): Promise<KeyRecord>;
|
|
176
|
+
/**
|
|
177
|
+
* Get available capabilities for a specific suite.
|
|
178
|
+
*
|
|
179
|
+
* @param suiteId Suite identifier
|
|
180
|
+
* @returns Array of capability names
|
|
181
|
+
*/
|
|
182
|
+
getCapabilities(suiteId: string): string[];
|
|
183
|
+
/**
|
|
184
|
+
* Find suites that support a specific capability.
|
|
185
|
+
*
|
|
186
|
+
* @param capability Capability name
|
|
187
|
+
* @returns Array of suite IDs
|
|
188
|
+
*/
|
|
189
|
+
getSuitesWithCapability(capability: 'derivation' | 'encryption' | 'threshold'): string[];
|
|
108
190
|
}
|
|
109
191
|
/**
|
|
110
192
|
* Agent metadata with crypto configuration.
|
package/dist/cjs/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AAGzB,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AAGzB,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/esm/index.js
CHANGED
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AAIzB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/esm/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"type":
|
|
1
|
+
{"type":"module"}
|