@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.
- package/dist/src/cmd/key.js +3 -0
- package/dist/src/cmd/key.js.map +1 -1
- package/dist/src/cmd/key_store.d.ts +49 -10
- package/dist/src/cmd/key_store.js +222 -26
- package/dist/src/cmd/key_store.js.map +1 -1
- package/dist/src/cmd/keygen.js +13 -5
- package/dist/src/cmd/keygen.js.map +1 -1
- package/dist/src/cmd/login.js +32 -13
- package/dist/src/cmd/login.js.map +1 -1
- package/dist/src/cmd/sign.js +20 -4
- package/dist/src/cmd/sign.js.map +1 -1
- package/dist/src/io.d.ts +8 -3
- package/dist/src/io.js +23 -5
- package/dist/src/io.js.map +1 -1
- package/dist/src/keystore.d.ts +55 -11
- package/dist/src/keystore.js +255 -34
- package/dist/src/keystore.js.map +1 -1
- package/package.json +3 -3
package/dist/src/keystore.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
// The archon key store's file format — docs/keystore.md, ADR 0007 §A.
|
|
2
2
|
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
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" ‖
|
|
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
|
-
|
|
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
|
-
|
|
30
|
-
|
|
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
|
-
|
|
81
|
-
|
|
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] =
|
|
215
|
+
out[4] = VERSION_2;
|
|
84
216
|
const dv = new DataView(out.buffer, out.byteOffset, out.byteLength);
|
|
85
|
-
dv.setUint32(5,
|
|
86
|
-
dv.setUint32(9,
|
|
87
|
-
out[13] =
|
|
88
|
-
out.set(
|
|
89
|
-
out.set(
|
|
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
|
|
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
|
|
98
|
-
throw
|
|
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
|
|
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
|
-
|
|
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,
|
|
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
|
|
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
|
-
|
|
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(
|
|
349
|
+
const out = new Uint8Array(header.length + NONCE_SIZE + SEAL_SIZE);
|
|
144
350
|
out.set(header, 0);
|
|
145
|
-
out.set(nonce,
|
|
146
|
-
out.set(ciphertext,
|
|
351
|
+
out.set(nonce, header.length);
|
|
352
|
+
out.set(ciphertext, header.length + NONCE_SIZE);
|
|
147
353
|
return out;
|
|
148
354
|
}
|
|
149
355
|
/**
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
-
|
|
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(
|
|
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,
|
|
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
|
package/dist/src/keystore.js.map
CHANGED
|
@@ -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.
|
|
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.
|
|
27
|
-
"@bitspark/archon-sdk": "^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
|
},
|