beam-protocol-sdk 0.5.0 → 0.5.2
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/README.md +97 -0
- package/dist/api-key.d.ts +2 -0
- package/dist/api-key.d.ts.map +1 -0
- package/dist/api-key.js +34 -0
- package/dist/api-key.js.map +1 -0
- package/dist/bip39-wordlist.d.ts +2 -0
- package/dist/bip39-wordlist.d.ts.map +1 -0
- package/dist/bip39-wordlist.js +2052 -0
- package/dist/bip39-wordlist.js.map +1 -0
- package/dist/client.d.ts +2 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +68 -15
- package/dist/client.js.map +1 -1
- package/dist/directory.d.ts +1 -1
- package/dist/directory.d.ts.map +1 -1
- package/dist/directory.js +72 -3
- package/dist/directory.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/key-management.d.ts +54 -0
- package/dist/key-management.d.ts.map +1 -0
- package/dist/key-management.js +183 -0
- package/dist/key-management.js.map +1 -0
- package/dist/types.d.ts +3 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Consumer-friendly key management for Beam identities.
|
|
3
|
+
* Supports encrypted export/import, BIP-39 recovery phrases, and QR data.
|
|
4
|
+
*/
|
|
5
|
+
import { createHash, generateKeyPairSync, webcrypto } from 'node:crypto';
|
|
6
|
+
import { BIP39_ENGLISH } from './bip39-wordlist.js';
|
|
7
|
+
// ─── Helpers ───────────────────────────────────────────────
|
|
8
|
+
const cryptoApi = globalThis.crypto ?? webcrypto;
|
|
9
|
+
const subtle = cryptoApi.subtle;
|
|
10
|
+
function getSubtle() {
|
|
11
|
+
if (!subtle) {
|
|
12
|
+
throw new Error('Web Crypto API is not available in this runtime');
|
|
13
|
+
}
|
|
14
|
+
return subtle;
|
|
15
|
+
}
|
|
16
|
+
async function deriveKey(password, salt, iterations = 600_000) {
|
|
17
|
+
const enc = new TextEncoder();
|
|
18
|
+
const cryptoSubtle = getSubtle();
|
|
19
|
+
const keyMaterial = await cryptoSubtle.importKey('raw', enc.encode(password), 'PBKDF2', false, ['deriveKey']);
|
|
20
|
+
return cryptoSubtle.deriveKey({ name: 'PBKDF2', salt: toArrayBuffer(salt), iterations, hash: 'SHA-256' }, keyMaterial, { name: 'AES-GCM', length: 256 }, false, ['encrypt', 'decrypt']);
|
|
21
|
+
}
|
|
22
|
+
function toBase64(buf) {
|
|
23
|
+
return Buffer.from(buf instanceof Uint8Array ? buf : new Uint8Array(buf)).toString('base64');
|
|
24
|
+
}
|
|
25
|
+
function fromBase64(b64) {
|
|
26
|
+
return new Uint8Array(Buffer.from(b64, 'base64'));
|
|
27
|
+
}
|
|
28
|
+
function toArrayBuffer(bytes) {
|
|
29
|
+
return bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength);
|
|
30
|
+
}
|
|
31
|
+
// ─── Export / Import ───────────────────────────────────────
|
|
32
|
+
/**
|
|
33
|
+
* Export a Beam identity as JSON. If password is provided, the private key
|
|
34
|
+
* is encrypted with AES-256-GCM (PBKDF2 key derivation).
|
|
35
|
+
*/
|
|
36
|
+
export async function exportIdentity(identity, password) {
|
|
37
|
+
if (!password) {
|
|
38
|
+
const doc = {
|
|
39
|
+
version: 1,
|
|
40
|
+
beamId: identity.beamId,
|
|
41
|
+
publicKeyBase64: identity.publicKeyBase64,
|
|
42
|
+
privateKeyBase64: identity.privateKeyBase64,
|
|
43
|
+
};
|
|
44
|
+
return JSON.stringify(doc, null, 2);
|
|
45
|
+
}
|
|
46
|
+
const salt = cryptoApi.getRandomValues(new Uint8Array(16));
|
|
47
|
+
const iv = cryptoApi.getRandomValues(new Uint8Array(12));
|
|
48
|
+
const key = await deriveKey(password, salt);
|
|
49
|
+
const plaintext = new TextEncoder().encode(identity.privateKeyBase64);
|
|
50
|
+
const ciphertext = await getSubtle().encrypt({ name: 'AES-GCM', iv: toArrayBuffer(iv) }, key, toArrayBuffer(plaintext));
|
|
51
|
+
const doc = {
|
|
52
|
+
version: 1,
|
|
53
|
+
beamId: identity.beamId,
|
|
54
|
+
publicKeyBase64: identity.publicKeyBase64,
|
|
55
|
+
encrypted: {
|
|
56
|
+
ciphertext: toBase64(ciphertext),
|
|
57
|
+
iv: toBase64(iv),
|
|
58
|
+
salt: toBase64(salt),
|
|
59
|
+
iterations: 600_000,
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
return JSON.stringify(doc, null, 2);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Import a Beam identity from JSON. If the identity was encrypted,
|
|
66
|
+
* provide the same password used during export.
|
|
67
|
+
*/
|
|
68
|
+
export async function importIdentity(json, password) {
|
|
69
|
+
const doc = JSON.parse(json);
|
|
70
|
+
if (doc.privateKeyBase64 && !doc.encrypted) {
|
|
71
|
+
return {
|
|
72
|
+
beamId: doc.beamId,
|
|
73
|
+
publicKeyBase64: doc.publicKeyBase64,
|
|
74
|
+
privateKeyBase64: doc.privateKeyBase64,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
if (!doc.encrypted)
|
|
78
|
+
throw new Error('Identity is encrypted but no encrypted block found');
|
|
79
|
+
if (!password)
|
|
80
|
+
throw new Error('Password required to decrypt identity');
|
|
81
|
+
const { ciphertext, iv, salt, iterations } = doc.encrypted;
|
|
82
|
+
const key = await deriveKey(password, fromBase64(salt), iterations);
|
|
83
|
+
const decrypted = await getSubtle().decrypt({ name: 'AES-GCM', iv: toArrayBuffer(fromBase64(iv)) }, key, toArrayBuffer(fromBase64(ciphertext)));
|
|
84
|
+
return {
|
|
85
|
+
beamId: doc.beamId,
|
|
86
|
+
publicKeyBase64: doc.publicKeyBase64,
|
|
87
|
+
privateKeyBase64: new TextDecoder().decode(decrypted),
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
// ─── Recovery Phrase (BIP-39 style) ────────────────────────
|
|
91
|
+
/**
|
|
92
|
+
* Extract the 32-byte Ed25519 seed from a private key and encode as
|
|
93
|
+
* a 12-word mnemonic. Only the first 128 bits (16 bytes) of the seed
|
|
94
|
+
* are encoded; remaining 16 bytes are derived via SHA-256 during recovery.
|
|
95
|
+
*
|
|
96
|
+
* NOTE: This is a simplified scheme (128-bit entropy → 12 words).
|
|
97
|
+
* The full 32-byte seed is NOT recoverable from just 12 words —
|
|
98
|
+
* we hash the 16-byte entropy to get the full seed deterministically.
|
|
99
|
+
*/
|
|
100
|
+
export function generateRecoveryPhrase(identity) {
|
|
101
|
+
const privKeyDer = Buffer.from(identity.privateKeyBase64, 'base64');
|
|
102
|
+
// Ed25519 PKCS8 DER: last 32 bytes are the seed
|
|
103
|
+
const seed = privKeyDer.subarray(privKeyDer.length - 32);
|
|
104
|
+
// Take first 16 bytes (128 bits) → 12 words (11 bits each, 132 bits, 4 checksum)
|
|
105
|
+
const entropy = seed.subarray(0, 16);
|
|
106
|
+
const hash = createHash('sha256').update(entropy).digest();
|
|
107
|
+
const checksumBits = hash[0] >> 4; // 4 checksum bits for 128-bit entropy
|
|
108
|
+
// Build bit string
|
|
109
|
+
let bits = '';
|
|
110
|
+
for (const byte of entropy)
|
|
111
|
+
bits += byte.toString(2).padStart(8, '0');
|
|
112
|
+
bits += checksumBits.toString(2).padStart(4, '0');
|
|
113
|
+
const words = [];
|
|
114
|
+
for (let i = 0; i < 132; i += 11) {
|
|
115
|
+
const idx = parseInt(bits.slice(i, i + 11), 2);
|
|
116
|
+
words.push(BIP39_ENGLISH[idx]);
|
|
117
|
+
}
|
|
118
|
+
return words.join(' ');
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Recover a Beam identity from a 12-word recovery phrase.
|
|
122
|
+
* The entropy is expanded to a 32-byte seed via SHA-256.
|
|
123
|
+
*/
|
|
124
|
+
export function recoverFromPhrase(phrase, beamId) {
|
|
125
|
+
const words = phrase.trim().toLowerCase().split(/\s+/);
|
|
126
|
+
if (words.length !== 12)
|
|
127
|
+
throw new Error('Recovery phrase must be exactly 12 words');
|
|
128
|
+
// Words → 132 bits
|
|
129
|
+
let bits = '';
|
|
130
|
+
for (const word of words) {
|
|
131
|
+
const idx = BIP39_ENGLISH.indexOf(word);
|
|
132
|
+
if (idx === -1)
|
|
133
|
+
throw new Error(`Unknown word: ${word}`);
|
|
134
|
+
bits += idx.toString(2).padStart(11, '0');
|
|
135
|
+
}
|
|
136
|
+
// Extract 128-bit entropy (first 128 bits)
|
|
137
|
+
const entropyBits = bits.slice(0, 128);
|
|
138
|
+
const entropy = new Uint8Array(16);
|
|
139
|
+
for (let i = 0; i < 16; i++) {
|
|
140
|
+
entropy[i] = parseInt(entropyBits.slice(i * 8, i * 8 + 8), 2);
|
|
141
|
+
}
|
|
142
|
+
// Verify checksum
|
|
143
|
+
const hash = createHash('sha256').update(entropy).digest();
|
|
144
|
+
const expectedChecksum = (hash[0] >> 4).toString(2).padStart(4, '0');
|
|
145
|
+
const actualChecksum = bits.slice(128, 132);
|
|
146
|
+
if (expectedChecksum !== actualChecksum)
|
|
147
|
+
throw new Error('Invalid recovery phrase checksum');
|
|
148
|
+
// Expand entropy to 32-byte seed via SHA-256
|
|
149
|
+
const seed = createHash('sha256').update(entropy).digest();
|
|
150
|
+
// Create Ed25519 keypair from seed
|
|
151
|
+
const { privateKey, publicKey } = generateKeyPairSync('ed25519', { seed });
|
|
152
|
+
const privDer = privateKey.export({ format: 'der', type: 'pkcs8' });
|
|
153
|
+
const pubDer = publicKey.export({ format: 'der', type: 'spki' });
|
|
154
|
+
return {
|
|
155
|
+
beamId: beamId ?? `recovered-${Date.now()}@beam.directory`,
|
|
156
|
+
publicKeyBase64: Buffer.from(pubDer).toString('base64'),
|
|
157
|
+
privateKeyBase64: Buffer.from(privDer).toString('base64'),
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
// ─── QR Code Data ──────────────────────────────────────────
|
|
161
|
+
/**
|
|
162
|
+
* Generate a compact JSON string suitable for QR code encoding.
|
|
163
|
+
* Contains only the essential data to reconstruct the identity.
|
|
164
|
+
*/
|
|
165
|
+
export function toQRData(identity) {
|
|
166
|
+
return JSON.stringify({
|
|
167
|
+
b: identity.beamId,
|
|
168
|
+
p: identity.publicKeyBase64,
|
|
169
|
+
s: identity.privateKeyBase64,
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Parse a QR code data string back into a BeamIdentityData object.
|
|
174
|
+
*/
|
|
175
|
+
export function fromQRData(data) {
|
|
176
|
+
const obj = JSON.parse(data);
|
|
177
|
+
return {
|
|
178
|
+
beamId: obj.b,
|
|
179
|
+
publicKeyBase64: obj.p,
|
|
180
|
+
privateKeyBase64: obj.s,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=key-management.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-management.js","sourceRoot":"","sources":["../src/key-management.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -39,6 +39,7 @@ export interface AgentRegistration {
|
|
|
39
39
|
}
|
|
40
40
|
export interface AgentRecord extends AgentRegistration {
|
|
41
41
|
did?: string;
|
|
42
|
+
apiKey?: string;
|
|
42
43
|
trustScore: number;
|
|
43
44
|
verified: boolean;
|
|
44
45
|
createdAt: string;
|
|
@@ -112,7 +113,8 @@ export interface DirectoryConfig {
|
|
|
112
113
|
apiKey?: string;
|
|
113
114
|
}
|
|
114
115
|
export interface BeamClientConfig {
|
|
115
|
-
identity
|
|
116
|
+
identity?: BeamIdentityData;
|
|
117
|
+
apiKey?: string;
|
|
116
118
|
directoryUrl: string;
|
|
117
119
|
}
|
|
118
120
|
export interface AgentSearchQuery {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "beam-protocol-sdk",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.2",
|
|
4
4
|
"description": "TypeScript SDK for the Beam Protocol — Agent-to-Agent communication",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
|
-
"types": "./
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
|
-
"types": "./
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
11
|
"import": "./dist/index.js"
|
|
12
12
|
}
|
|
13
13
|
},
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"@types/node": "^20.11.0",
|
|
22
22
|
"@types/ws": "^8.5.10",
|
|
23
23
|
"typescript": "^5.3.3",
|
|
24
|
-
"vitest": "^1.2
|
|
24
|
+
"vitest": "^4.1.2"
|
|
25
25
|
},
|
|
26
26
|
"optionalDependencies": {
|
|
27
27
|
"ws": "^8.16.0"
|