@bitspark/archon-cli 0.11.0 → 0.13.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.
@@ -1,12 +1,15 @@
1
1
  // The archon key store's file format — docs/keystore.md, ADR 0007 §A.
2
2
  //
3
- // A fixed 134-byte layout, identical across cli/{rs,go,ts} and pinned by
4
- // vectors/keystore.json:
3
+ // Identical across cli/{rs,go,ts} and pinned by vectors/keystore.json. Version 2 (§8), the only
4
+ // one written:
5
5
  //
6
- // "arck" ‖ version ‖ u32be(m KiB) ‖ u32be(t) ‖ u8(p) ‖ salt[16] ‖ pubkey[32] header, 62
6
+ // "arck" ‖ 0x02 ‖ u32be(m KiB) ‖ u32be(t) ‖ u8(p) ‖ salt[16] ‖ pubkey[32]
7
+ // ‖ u8(mode) ‖ u8(n) ‖ n × (u8(len) ‖ context) header, H
7
8
  // nonce[24]
8
9
  // XChaCha20Poly1305(seed[32], aad = header) 48 with tag
9
10
  //
11
+ // Version 1 (§2) is the same without the policy, a fixed 134 bytes; it is still read.
12
+ //
10
13
  // This module is the format and nothing else: no paths, no prompts, no policy. Custody is
11
14
  // the command's (ADR 0007 §A) and nothing in core/ or sdk/ learns a password — but that
12
15
  // cuts both ways, so the format does not learn a directory either.
@@ -17,17 +20,31 @@
17
20
  import { argon2id } from "@noble/hashes/argon2.js";
18
21
  import { xchacha20poly1305 } from "@noble/ciphers/chacha.js";
19
22
  import { getPublicKey } from "@bitspark/archon";
23
+ import { displayUnsafe } from "@bitspark/archon-sdk";
20
24
  // Follows the envelope's "arcn" ‖ version (sdk/{go,rs,ts}). It is what stops a 134-byte
21
25
  // non-key file being LISTED as a key: `key list` reads the header without a password, so
22
26
  // it is the one place a wrong file would be believed.
23
27
  export const MAGIC = new Uint8Array([0x61, 0x72, 0x63, 0x6b]); // "arck"
24
- export const VERSION = 0x01;
28
+ // The fixed 134-byte file of docs/keystore.md §2. It is still PARSED, so that `key list`,
29
+ // `key rm` and `key policy` can name and convert it, and nothing signs with it.
30
+ export const VERSION_1 = 0x01;
31
+ // Adds the context policy of §8; the only version written.
32
+ export const VERSION_2 = 0x02;
25
33
  export const SALT_SIZE = 16;
26
34
  export const NONCE_SIZE = 24;
27
35
  export const SEED_SIZE = 32;
28
36
  export const PUBLIC_KEY_SIZE = 32;
29
- export const HEADER_SIZE = 4 + 1 + 4 + 4 + 1 + SALT_SIZE + PUBLIC_KEY_SIZE; // 62
30
- export const FILE_SIZE = HEADER_SIZE + NONCE_SIZE + SEED_SIZE + 16; // 134
37
+ // The fields every version shares, up to and including the public key.
38
+ const COMMON_SIZE = 4 + 1 + 4 + 4 + 1 + SALT_SIZE + PUBLIC_KEY_SIZE; // 62
39
+ const SEAL_SIZE = SEED_SIZE + 16;
40
+ export const V1_FILE_SIZE = COMMON_SIZE + NONCE_SIZE + SEAL_SIZE; // 134
41
+ // Version 2's policy: a mode, a count, then length-prefixed contexts (§8.1).
42
+ export const POLICY_UNRESTRICTED = 0x00;
43
+ export const POLICY_ALLOWLIST = 0x01;
44
+ export const MAX_CONTEXTS = 16;
45
+ export const MAX_CONTEXT_SIZE = 255;
46
+ export const MIN_V2_FILE_SIZE = COMMON_SIZE + 2 + NONCE_SIZE + SEAL_SIZE; // 136
47
+ export const MAX_V2_FILE_SIZE = COMMON_SIZE + 2 + MAX_CONTEXTS * (1 + MAX_CONTEXT_SIZE) + NONCE_SIZE + SEAL_SIZE; // 4232
31
48
  // The shipping default, measured rather than assumed (docs/keystore.md §3): p=4 buys
32
49
  // nothing in any lane we ship and costs two of three external oracles.
33
50
  export const DEFAULT_MEMORY_KIB = 65536;
@@ -65,6 +82,119 @@ function checkParams(p) {
65
82
  throw new Error(`argon2id parameters are not usable: t=${p.time} is above ${MAX_TIME}`);
66
83
  }
67
84
  }
85
+ /**
86
+ * A refusal of the file itself, before any derivation. `kind` is the machine-mode category the
87
+ * command reports (docs/keystore.md §8.2): "unsupported" for a version byte this binary does
88
+ * not know, "malformed" for everything else.
89
+ */
90
+ export class FormatError extends Error {
91
+ kind;
92
+ constructor(kind, message) {
93
+ super(message);
94
+ this.kind = kind;
95
+ }
96
+ }
97
+ const malformed = (message) => new FormatError("malformed", message);
98
+ const utf8 = new TextEncoder();
99
+ /** Byte order, the order the format and the other lanes use: never UTF-16 code-unit order. */
100
+ function compareBytes(a, b) {
101
+ for (let i = 0; i < Math.min(a.length, b.length); i++) {
102
+ if (a[i] !== b[i])
103
+ return a[i] - b[i];
104
+ }
105
+ return a.length - b.length;
106
+ }
107
+ function checkContext(c) {
108
+ if (c.length < 1 || c.length > MAX_CONTEXT_SIZE) {
109
+ throw new Error(`a context is 1 to ${MAX_CONTEXT_SIZE} bytes (got ${c.length})`);
110
+ }
111
+ let text;
112
+ try {
113
+ text = new TextDecoder("utf-8", { fatal: true }).decode(c);
114
+ }
115
+ catch {
116
+ throw new Error("a context is well-formed UTF-8");
117
+ }
118
+ // A policy is shown to the person (`key policy`, `key list`, the refusals), so a context holds
119
+ // nothing a terminal would not show as itself (docs/login.md §5's set), by code point. Refused
120
+ // on write and on read, so nothing is written that cannot be read, and nothing read that
121
+ // cannot be shown.
122
+ for (const ch of text) {
123
+ const cp = ch.codePointAt(0);
124
+ if (displayUnsafe(cp)) {
125
+ throw new Error(`a context may not contain U+${cp.toString(16).toUpperCase().padStart(4, "0")}: it would not be shown as itself`);
126
+ }
127
+ }
128
+ }
129
+ /**
130
+ * Builds an allowlist from the contexts a person named: each a domain by ADR 0008 §2 (1..255
131
+ * bytes of well-formed UTF-8), no duplicates, at most MAX_CONTEXTS. It sorts them by bytes, so
132
+ * one policy has one encoding.
133
+ */
134
+ export function allowlist(contexts) {
135
+ if (contexts.length > MAX_CONTEXTS) {
136
+ throw new Error(`at most ${MAX_CONTEXTS} contexts (got ${contexts.length})`);
137
+ }
138
+ const encoded = contexts.map((c) => ({ c, b: utf8.encode(c) }));
139
+ for (const { c, b } of encoded) {
140
+ // A lone surrogate does not survive the encoder: compare the round trip, not the length.
141
+ if (new TextDecoder().decode(b) !== c)
142
+ throw new Error("a context is well-formed UTF-8");
143
+ checkContext(b);
144
+ }
145
+ encoded.sort((x, y) => compareBytes(x.b, y.b));
146
+ for (let i = 1; i < encoded.length; i++) {
147
+ if (compareBytes(encoded[i - 1].b, encoded[i].b) === 0) {
148
+ throw new Error(`context ${JSON.stringify(encoded[i].c)} is named twice`);
149
+ }
150
+ }
151
+ return { unrestricted: false, contexts: encoded.map((e) => e.c) };
152
+ }
153
+ export const unrestricted = () => ({ unrestricted: true, contexts: [] });
154
+ /** Byte-exact membership: no prefix, no wildcard, no normalisation. */
155
+ export function permits(p, domain) {
156
+ return p.unrestricted || p.contexts.includes(domain);
157
+ }
158
+ /** The policy as the command prints it. */
159
+ export function describePolicy(p) {
160
+ if (p === null)
161
+ return "no policy";
162
+ if (p.unrestricted)
163
+ return "unrestricted";
164
+ if (p.contexts.length === 0)
165
+ return "allow nothing";
166
+ return `allow ${p.contexts.map(quote).join(", ")}`;
167
+ }
168
+ /** Spells a context by the JSON string rule, so a context holding ", " cannot read as two. The
169
+ * same rule in the three lanes: `"` and `\` escaped, C0 controls as \u00xx. */
170
+ function quote(s) {
171
+ let out = '"';
172
+ for (const ch of s) {
173
+ const cp = ch.codePointAt(0);
174
+ if (ch === '"' || ch === "\\")
175
+ out += `\\${ch}`;
176
+ else if (cp < 0x20)
177
+ out += `\\u${cp.toString(16).padStart(4, "0")}`;
178
+ else
179
+ out += ch;
180
+ }
181
+ return `${out}"`;
182
+ }
183
+ function encodePolicy(p) {
184
+ if (p.unrestricted)
185
+ return new Uint8Array([POLICY_UNRESTRICTED, 0]);
186
+ const parts = p.contexts.map((c) => utf8.encode(c));
187
+ const out = new Uint8Array(2 + parts.reduce((n, b) => n + 1 + b.length, 0));
188
+ out[0] = POLICY_ALLOWLIST;
189
+ out[1] = parts.length;
190
+ let off = 2;
191
+ for (const b of parts) {
192
+ out[off] = b.length;
193
+ out.set(b, off + 1);
194
+ off += 1 + b.length;
195
+ }
196
+ return out;
197
+ }
68
198
  // Both ends refuse an empty password: a store sealed under one is a plaintext store that
69
199
  // looks encrypted, and refusing at OPEN too keeps a file made by a lenient writer from
70
200
  // ever being trusted.
@@ -77,44 +207,108 @@ function deriveKey(password, salt, p) {
77
207
  const bytes = new TextEncoder().encode(password.normalize("NFC"));
78
208
  return argon2id(bytes, salt, { m: p.memoryKiB, t: p.time, p: p.parallelism, dkLen: 32 });
79
209
  }
80
- export function encodeHeader(h) {
81
- const out = new Uint8Array(HEADER_SIZE);
210
+ /** A version-2 header: the only version written (§8). */
211
+ function encodeHeader(p, salt, publicKey, policy) {
212
+ const pol = encodePolicy(policy);
213
+ const out = new Uint8Array(COMMON_SIZE + pol.length);
82
214
  out.set(MAGIC, 0);
83
- out[4] = VERSION;
215
+ out[4] = VERSION_2;
84
216
  const dv = new DataView(out.buffer, out.byteOffset, out.byteLength);
85
- dv.setUint32(5, h.params.memoryKiB, false);
86
- dv.setUint32(9, h.params.time, false);
87
- out[13] = h.params.parallelism;
88
- out.set(h.salt, 14);
89
- out.set(h.publicKey, 30);
217
+ dv.setUint32(5, p.memoryKiB, false);
218
+ dv.setUint32(9, p.time, false);
219
+ out[13] = p.parallelism;
220
+ out.set(salt, 14);
221
+ out.set(publicKey, 30);
222
+ out.set(pol, COMMON_SIZE);
90
223
  return out;
91
224
  }
92
225
  /**
93
- * Reads the header of a key file WITHOUT a password. Every refusal here is cheap and
94
- * happens before any crypto runs.
226
+ * Reads the header of a key file WITHOUT a password, version 1 or 2. Every refusal here is
227
+ * cheap, happens before any crypto runs, and is a FormatError.
95
228
  */
96
229
  export function parseHeader(file) {
97
- if (file.length !== FILE_SIZE)
98
- throw new Error(`not ${FILE_SIZE} bytes (got ${file.length})`);
230
+ if (file.length < 5)
231
+ throw malformed("bad magic: not an archon key file");
99
232
  for (let i = 0; i < MAGIC.length; i++) {
100
233
  if (file[i] !== MAGIC[i])
101
- throw new Error("bad magic: not an archon key file");
234
+ throw malformed("bad magic: not an archon key file");
235
+ }
236
+ let policy = null;
237
+ let size;
238
+ if (file[4] === VERSION_1) {
239
+ if (file.length !== V1_FILE_SIZE)
240
+ throw malformed(`not ${V1_FILE_SIZE} bytes (got ${file.length})`);
241
+ size = COMMON_SIZE;
242
+ }
243
+ else if (file[4] === VERSION_2) {
244
+ if (file.length < MIN_V2_FILE_SIZE || file.length > MAX_V2_FILE_SIZE) {
245
+ throw malformed(`a version-2 key file is ${MIN_V2_FILE_SIZE} to ${MAX_V2_FILE_SIZE} bytes (got ${file.length})`);
246
+ }
247
+ ({ policy, size } = parsePolicy(file));
248
+ }
249
+ else {
250
+ throw new FormatError("unsupported", `unknown key file version ${file[4]}`);
102
251
  }
103
- if (file[4] !== VERSION)
104
- throw new Error(`unknown key file version ${file[4]}`);
105
252
  const dv = new DataView(file.buffer, file.byteOffset, file.byteLength);
106
253
  const params = {
107
254
  memoryKiB: dv.getUint32(5, false),
108
255
  time: dv.getUint32(9, false),
109
256
  parallelism: file[13],
110
257
  };
111
- checkParams(params);
258
+ try {
259
+ checkParams(params);
260
+ }
261
+ catch (e) {
262
+ throw malformed(e instanceof Error ? e.message : String(e));
263
+ }
112
264
  return {
265
+ version: file[4],
113
266
  params,
114
267
  salt: file.slice(14, 30),
115
- publicKey: file.slice(30, HEADER_SIZE),
268
+ publicKey: file.slice(30, COMMON_SIZE),
269
+ policy,
270
+ size,
116
271
  };
117
272
  }
273
+ /**
274
+ * Reads §8.1's policy and returns it with the header's length. The file must be exactly that
275
+ * header, the nonce and the seal: nothing missing, nothing trailing.
276
+ */
277
+ function parsePolicy(file) {
278
+ const mode = file[COMMON_SIZE];
279
+ const n = file[COMMON_SIZE + 1];
280
+ if (mode === POLICY_UNRESTRICTED && n !== 0)
281
+ throw malformed(`an unrestricted policy lists no contexts (got ${n})`);
282
+ if (mode === POLICY_ALLOWLIST && n > MAX_CONTEXTS)
283
+ throw malformed(`at most ${MAX_CONTEXTS} contexts (got ${n})`);
284
+ if (mode !== POLICY_UNRESTRICTED && mode !== POLICY_ALLOWLIST)
285
+ throw malformed(`unknown policy mode ${mode}`);
286
+ const end = file.length - NONCE_SIZE - SEAL_SIZE;
287
+ let off = COMMON_SIZE + 2;
288
+ const contexts = [];
289
+ let previous = null;
290
+ for (let i = 0; i < n; i++) {
291
+ if (off >= end || off + 1 + file[off] > end)
292
+ throw malformed("the policy runs past the header");
293
+ const length = file[off];
294
+ const raw = file.slice(off + 1, off + 1 + length);
295
+ try {
296
+ checkContext(raw);
297
+ }
298
+ catch (e) {
299
+ throw malformed(`policy: ${e instanceof Error ? e.message : String(e)}`);
300
+ }
301
+ if (previous !== null && compareBytes(previous, raw) >= 0) {
302
+ throw malformed("policy contexts are not in strictly ascending order");
303
+ }
304
+ contexts.push(new TextDecoder().decode(raw));
305
+ previous = raw;
306
+ off += 1 + length;
307
+ }
308
+ if (off !== end)
309
+ throw malformed("the file is not exactly the header it declares, a nonce and a seal");
310
+ return { policy: { unrestricted: mode === POLICY_UNRESTRICTED, contexts }, size: off };
311
+ }
118
312
  function sameBytes(a, b) {
119
313
  if (a.length !== b.length)
120
314
  return false;
@@ -124,10 +318,10 @@ function sameBytes(a, b) {
124
318
  return diff === 0;
125
319
  }
126
320
  /**
127
- * Produces the 134 bytes. `salt` and `nonce` are ARGUMENTS: the randomness is the
321
+ * Produces a version-2 file. `salt` and `nonce` are ARGUMENTS: the randomness is the
128
322
  * command's, never this function's, which is what makes the format pinnable.
129
323
  */
130
- export function seal(seed, password, salt, nonce, p) {
324
+ export function seal(seed, password, salt, nonce, p, policy) {
131
325
  if (seed.length !== SEED_SIZE)
132
326
  throw new Error(`seed must be ${SEED_SIZE} bytes`);
133
327
  if (password.length === 0)
@@ -137,29 +331,56 @@ export function seal(seed, password, salt, nonce, p) {
137
331
  if (nonce.length !== NONCE_SIZE)
138
332
  throw new Error(`nonce must be ${NONCE_SIZE} bytes`);
139
333
  checkParams(p);
140
- const header = encodeHeader({ params: p, salt, publicKey: getPublicKey(seed) });
334
+ // The writer's half of §8.1: the same rules the reader enforces, so nothing is written that
335
+ // would not be read back.
336
+ if (policy.unrestricted) {
337
+ if (policy.contexts.length !== 0)
338
+ throw new Error("an unrestricted policy lists no contexts");
339
+ }
340
+ else {
341
+ const canonical = allowlist(policy.contexts).contexts;
342
+ if (canonical.some((c, i) => c !== policy.contexts[i])) {
343
+ throw new Error("policy contexts must be sorted: build them with allowlist()");
344
+ }
345
+ }
346
+ const header = encodeHeader(p, salt, getPublicKey(seed), policy);
141
347
  const key = deriveKey(password, salt, p);
142
348
  const ciphertext = xchacha20poly1305(key, nonce, header).encrypt(seed);
143
- const out = new Uint8Array(FILE_SIZE);
349
+ const out = new Uint8Array(header.length + NONCE_SIZE + SEAL_SIZE);
144
350
  out.set(header, 0);
145
- out.set(nonce, HEADER_SIZE);
146
- out.set(ciphertext, HEADER_SIZE + NONCE_SIZE);
351
+ out.set(nonce, header.length);
352
+ out.set(ciphertext, header.length + NONCE_SIZE);
147
353
  return out;
148
354
  }
149
355
  /**
150
- * Reverses seal() and then checks the decrypted seed against the header's public key. The
151
- * tag proves the bytes are ours; that check proves they are CONSISTENT — a file can verify
152
- * and still be refused.
356
+ * `key policy`'s step 4 (§8.3): opens `file` — version 1 or 2 — and seals the same seed under
357
+ * the same salt and parameters, the new policy and a fresh nonce. Always version 2.
358
+ */
359
+ export function reseal(file, password, nonce, policy) {
360
+ const header = parseHeader(file);
361
+ const seed = open(file, password);
362
+ try {
363
+ return seal(seed, password, header.salt, nonce, header.params, policy);
364
+ }
365
+ finally {
366
+ seed.fill(0);
367
+ }
368
+ }
369
+ /**
370
+ * Reverses seal(), for version 1 or 2, and then checks the decrypted seed against the header's
371
+ * public key. The tag proves the bytes are ours, policy included; that check proves they are
372
+ * CONSISTENT — a file can verify and still be refused. Whether a version-1 seed may be USED is
373
+ * the command's decision (§8.2), not this function's.
153
374
  */
154
375
  export function open(file, password) {
155
376
  const header = parseHeader(file);
156
377
  if (password.length === 0)
157
378
  throw new Error(EMPTY_PASSWORD);
158
379
  const key = deriveKey(password, header.salt, header.params);
159
- const nonce = file.slice(HEADER_SIZE, HEADER_SIZE + NONCE_SIZE);
380
+ const nonce = file.slice(header.size, header.size + NONCE_SIZE);
160
381
  let seed;
161
382
  try {
162
- seed = xchacha20poly1305(key, nonce, file.slice(0, HEADER_SIZE)).decrypt(file.slice(HEADER_SIZE + NONCE_SIZE));
383
+ seed = xchacha20poly1305(key, nonce, file.slice(0, header.size)).decrypt(file.slice(header.size + NONCE_SIZE));
163
384
  }
164
385
  catch {
165
386
  // One message for a wrong password and a tampered file alike: which of the two it was
@@ -1 +1 @@
1
- {"version":3,"file":"keystore.js","sourceRoot":"","sources":["../../src/keystore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keystore.js","sourceRoot":"","sources":["../../src/keystore.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitspark/archon-cli",
3
- "version": "0.11.0",
3
+ "version": "0.13.0",
4
4
  "description": "archon CLI: key / keygen / sign / verify over the identity floor.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -23,8 +23,8 @@
23
23
  "test": "tsc -p tsconfig.json && node --test dist/test/*.test.js"
24
24
  },
25
25
  "dependencies": {
26
- "@bitspark/archon": "^0.11.0",
27
- "@bitspark/archon-sdk": "^0.11.0",
26
+ "@bitspark/archon": "^0.13.0",
27
+ "@bitspark/archon-sdk": "^0.13.0",
28
28
  "@noble/ciphers": "^2.4.0",
29
29
  "@noble/hashes": "^2.4.0"
30
30
  },