@bitspark/archon-cli 0.13.0 → 0.15.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/enroll.d.ts +34 -0
- package/dist/src/cmd/enroll.js +245 -0
- package/dist/src/cmd/enroll.js.map +1 -0
- package/dist/src/cmd/key_store.d.ts +2 -0
- package/dist/src/cmd/key_store.js +2 -2
- package/dist/src/cmd/key_store.js.map +1 -1
- package/dist/src/cmd/login.d.ts +52 -11
- package/dist/src/cmd/login.js +165 -32
- package/dist/src/cmd/login.js.map +1 -1
- package/dist/src/main.js +3 -2
- package/dist/src/main.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type EnrollChallenge, type EnrollIntent } from "@bitspark/archon-sdk";
|
|
2
|
+
import * as keystore from "../keystore.js";
|
|
3
|
+
export declare const USAGE: string;
|
|
4
|
+
/** Where the command meets the world, so a test can stand in for the terminal and the clock. */
|
|
5
|
+
export interface EnrollIo {
|
|
6
|
+
/** The controlling terminal: where the statement is shown and the question asked. */
|
|
7
|
+
openTerminal(): {
|
|
8
|
+
readLine(): string;
|
|
9
|
+
write(text: string): void;
|
|
10
|
+
close(): void;
|
|
11
|
+
};
|
|
12
|
+
/** Whether stdin is a terminal: then the token is asked for, and its line limit can cut it. */
|
|
13
|
+
stdinIsTerminal(): boolean;
|
|
14
|
+
/** One line of stdin, at most MAX_INPUT bytes. */
|
|
15
|
+
readStdinLine(): Promise<string>;
|
|
16
|
+
stdout(text: string): void;
|
|
17
|
+
/** Unix seconds. */
|
|
18
|
+
now(): number;
|
|
19
|
+
}
|
|
20
|
+
export declare function run(args: string[], io?: EnrollIo): Promise<void>;
|
|
21
|
+
/** Steps 4 to 6 of docs/enroll.md §4: the token's audience is the selected one, its key is the
|
|
22
|
+
* entry's, and its deadline is still ahead. The token's audience is display-safe already (the
|
|
23
|
+
* codec refuses otherwise), and is JSON-quoted to show where it ends. */
|
|
24
|
+
export declare function checkChallenge(ch: EnrollChallenge, audience: string, key: Uint8Array, now: number): void;
|
|
25
|
+
/** The statement of docs/enroll.md §4, byte-identical in every lane
|
|
26
|
+
* (cli/testdata/enroll-statement.json). */
|
|
27
|
+
export declare function renderStatement(audience: string, intent: EnrollIntent, key: Uint8Array, deadline: number, keySource: string): string;
|
|
28
|
+
/** The question, naming the account the person is agreeing to, in plain quotes. */
|
|
29
|
+
export declare function prompt(intent: EnrollIntent): string;
|
|
30
|
+
/** Why the entry may not enroll, and how to change that. `key policy` replaces a list rather
|
|
31
|
+
* than adding to it, so the command printed names every context the entry keeps, then
|
|
32
|
+
* archon-enroll/1; it is printed only when every context needs no quoting in any shell, and
|
|
33
|
+
* otherwise the contexts are listed JSON-quoted. */
|
|
34
|
+
export declare function policyRefusal(name: string, policy: keystore.Policy | null): string;
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
// `archon enroll` (docs/enroll.md §4, ADR 0013): make the enrollment proof for a key in the
|
|
2
|
+
// store, but only after showing the person which account the key joins, decoded from the very
|
|
3
|
+
// intent bytes whose digest the proof binds. The challenge arrives as a token the person carries
|
|
4
|
+
// from the signed-in page; the proof leaves as a token they carry back. The command contacts no
|
|
5
|
+
// server, so its success means a proof was produced, never that the key is enrolled.
|
|
6
|
+
import { closeSync, openSync, readSync } from "node:fs";
|
|
7
|
+
import { encodeKey, getPublicKey } from "@bitspark/archon";
|
|
8
|
+
import { decodeEnrollChallenge, ENROLL_DOMAIN, ENROLL_MAX_TOKEN_SIZE, encodeEnrollProof, enrollChallengeRequest, proveEnroll, verifyEnroll, } from "@bitspark/archon-sdk";
|
|
9
|
+
import { jsonString, wantsHelp } from "../io.js";
|
|
10
|
+
import * as keystore from "../keystore.js";
|
|
11
|
+
import { openControllingTerminal, openEntered, readDefaultKeyName, readPasswordEntry, readTerminalLine, takePasswordFd, usableKey, } from "./key_store.js";
|
|
12
|
+
import { formatRfc3339Utc, selectedAudience } from "./login.js";
|
|
13
|
+
export const USAGE = "usage: archon enroll [--challenge-file <file>] [--audience <base>] [--key <name>] [--password-fd <n>]\n" +
|
|
14
|
+
" makes the enrollment proof for a key in the store, after showing which account it joins\n" +
|
|
15
|
+
" (docs/enroll.md). The challenge token is read from --challenge-file, or one line of stdin;\n" +
|
|
16
|
+
" the audience is --audience or ARCHON_AUDIENCE; the key is --key or the default key. The\n" +
|
|
17
|
+
" question is asked on the terminal, always, and the proof token is printed on stdout.";
|
|
18
|
+
/** Asks for the token when stdin is a terminal. */
|
|
19
|
+
const PASTE_PROMPT = "paste the challenge token, then press Enter: ";
|
|
20
|
+
/** The one purpose version 1 renders (docs/enroll.md §2). */
|
|
21
|
+
const PURPOSE = "add-key";
|
|
22
|
+
/** What is read before decoding: a token and its surrounding whitespace. */
|
|
23
|
+
const MAX_INPUT = 1 << 20;
|
|
24
|
+
const NO_TERMINAL = "enroll: there is no terminal to ask on; archon enroll asks every time, and a password from " +
|
|
25
|
+
"ARCHON_KEY_PASSWORD or --password-fd does not answer it";
|
|
26
|
+
const realIo = {
|
|
27
|
+
openTerminal() {
|
|
28
|
+
const terminal = openControllingTerminal();
|
|
29
|
+
return {
|
|
30
|
+
readLine: () => readTerminalLine(terminal),
|
|
31
|
+
write: (text) => terminal.io.write(text),
|
|
32
|
+
close: () => terminal.close(),
|
|
33
|
+
};
|
|
34
|
+
},
|
|
35
|
+
stdinIsTerminal: () => process.stdin.isTTY === true,
|
|
36
|
+
async readStdinLine() {
|
|
37
|
+
// Bounded like the Go and Rust lanes, and the stream is stopped once the line is in: when
|
|
38
|
+
// stdin is the terminal, a reader left running would take the person's "y" from the
|
|
39
|
+
// controlling terminal's reader, which shares the device.
|
|
40
|
+
const chunks = [];
|
|
41
|
+
let size = 0;
|
|
42
|
+
for await (const chunk of process.stdin) {
|
|
43
|
+
const b = chunk;
|
|
44
|
+
const nl = b.indexOf(0x0a);
|
|
45
|
+
chunks.push(nl >= 0 ? b.subarray(0, nl) : b);
|
|
46
|
+
size += nl >= 0 ? nl : b.length;
|
|
47
|
+
if (nl >= 0 || size > MAX_INPUT)
|
|
48
|
+
break; // breaking out destroys the stream
|
|
49
|
+
}
|
|
50
|
+
if (size > MAX_INPUT) {
|
|
51
|
+
throw new Error(`enroll: the line on stdin is over ${MAX_INPUT} bytes; a challenge token is at most ${ENROLL_MAX_TOKEN_SIZE}`);
|
|
52
|
+
}
|
|
53
|
+
return Buffer.concat(chunks).toString("utf8");
|
|
54
|
+
},
|
|
55
|
+
stdout: (text) => process.stdout.write(text),
|
|
56
|
+
now: () => Math.floor(Date.now() / 1000),
|
|
57
|
+
};
|
|
58
|
+
export async function run(args, io = realIo) {
|
|
59
|
+
if (wantsHelp(args)) {
|
|
60
|
+
io.stdout(`${USAGE}\n`);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const { rest, fd } = takePasswordFd(args);
|
|
64
|
+
let challengeFile;
|
|
65
|
+
let audienceFlag;
|
|
66
|
+
let keyName;
|
|
67
|
+
for (let i = 0; i < rest.length; i += 2) {
|
|
68
|
+
const flag = rest[i];
|
|
69
|
+
const value = rest[i + 1];
|
|
70
|
+
if (value === undefined || value === "")
|
|
71
|
+
throw new Error(`flag ${JSON.stringify(flag)} needs a value\n${USAGE}`);
|
|
72
|
+
if (flag === "--challenge-file")
|
|
73
|
+
challengeFile = value;
|
|
74
|
+
else if (flag === "--audience")
|
|
75
|
+
audienceFlag = value;
|
|
76
|
+
else if (flag === "--key")
|
|
77
|
+
keyName = value;
|
|
78
|
+
else
|
|
79
|
+
throw new Error(`unknown flag ${JSON.stringify(flag)}\n${USAGE}`);
|
|
80
|
+
}
|
|
81
|
+
if (challengeFile === undefined && fd === 0) {
|
|
82
|
+
throw new Error("enroll: --password-fd 0 and a challenge token on stdin would read the same stream; pass the token with --challenge-file");
|
|
83
|
+
}
|
|
84
|
+
// 1. The entry: one read, whose header the seal authenticates at unlock (ADR 0012 §4).
|
|
85
|
+
const name = keyName ?? readDefaultKeyName();
|
|
86
|
+
if (name === undefined || name === "") {
|
|
87
|
+
throw new Error("enroll: no default key is set; pass --key <name>, or choose one with: archon key default <name>");
|
|
88
|
+
}
|
|
89
|
+
const { file, header } = usableKey(name);
|
|
90
|
+
if (header.policy === null || !keystore.permits(header.policy, ENROLL_DOMAIN)) {
|
|
91
|
+
throw new Error(policyRefusal(name, header.policy));
|
|
92
|
+
}
|
|
93
|
+
// 2. The audience the person selected, and a terminal to ask on.
|
|
94
|
+
const audience = selectedAudience("enroll", "the audience is your configuration, never a token's word (docs/enroll.md §4)", audienceFlag);
|
|
95
|
+
let terminal;
|
|
96
|
+
try {
|
|
97
|
+
terminal = io.openTerminal();
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
throw new Error(NO_TERMINAL);
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
// 3. The token, read and decoded once. From here on only these values are used.
|
|
104
|
+
const fromTerminal = challengeFile === undefined && io.stdinIsTerminal();
|
|
105
|
+
if (fromTerminal)
|
|
106
|
+
terminal.write(PASTE_PROMPT);
|
|
107
|
+
const text = challengeFile !== undefined ? readChallengeFile(challengeFile) : await io.readStdinLine();
|
|
108
|
+
let ch;
|
|
109
|
+
try {
|
|
110
|
+
ch = decodeEnrollChallenge(text);
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
114
|
+
throw new Error(fromTerminal ? `${message} (a terminal cuts a long pasted line; save the token to a file and pass --challenge-file)` : message);
|
|
115
|
+
}
|
|
116
|
+
// 4.–7. Everything decidable before the person is asked.
|
|
117
|
+
checkChallenge(ch, audience, header.publicKey, io.now());
|
|
118
|
+
const { request, intent } = enrollChallengeRequest(ch);
|
|
119
|
+
if (intent.purpose !== PURPOSE) {
|
|
120
|
+
throw new Error(`enroll: the intent's purpose is ${jsonString(intent.purpose)}; this archon renders only "${PURPOSE}", so it signs nothing else`);
|
|
121
|
+
}
|
|
122
|
+
// 8. Show, and ask on the terminal.
|
|
123
|
+
terminal.write(renderStatement(audience, intent, header.publicKey, ch.deadline, `the store key ${name}`) + prompt(intent));
|
|
124
|
+
const answer = terminal.readLine().trim().toLowerCase();
|
|
125
|
+
if (answer !== "y" && answer !== "yes") {
|
|
126
|
+
// Non-zero, so a script never mistakes a refusal for a proof: stdout stays empty.
|
|
127
|
+
terminal.write("refused. nothing was signed.\n");
|
|
128
|
+
throw new Error("enroll: refused. nothing was signed.");
|
|
129
|
+
}
|
|
130
|
+
// 9. Only now is the key unlocked: the same snapshot, its header now authenticated.
|
|
131
|
+
const seed = openEntered(name, file, readPasswordEntry(fd, false));
|
|
132
|
+
try {
|
|
133
|
+
if (!keystore.permits(header.policy, ENROLL_DOMAIN))
|
|
134
|
+
throw new Error(policyRefusal(name, header.policy));
|
|
135
|
+
const opened = getPublicKey(seed);
|
|
136
|
+
if (!equal(opened, header.publicKey) || !equal(header.publicKey, ch.newKey)) {
|
|
137
|
+
throw new Error(`enroll: key ${name} did not open to the key that was shown; nothing was signed`);
|
|
138
|
+
}
|
|
139
|
+
// 10. The proof, over what was shown, checked before it is printed.
|
|
140
|
+
const proof = proveEnroll(seed, audience, request);
|
|
141
|
+
if (!verifyEnroll(audience, request, proof))
|
|
142
|
+
throw new Error("enroll: the proof did not verify; nothing was printed");
|
|
143
|
+
const token = encodeEnrollProof({ transaction: request.transaction, newKey: request.newKey, proof });
|
|
144
|
+
// 11. The proof token on stdout, alone; the person is told what it is not.
|
|
145
|
+
io.stdout(`${token}\n`);
|
|
146
|
+
terminal.write("proof produced. paste it into the service's page: the key is enrolled only when the page completes.\n");
|
|
147
|
+
}
|
|
148
|
+
finally {
|
|
149
|
+
seed.fill(0);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
finally {
|
|
153
|
+
terminal.close();
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/** Steps 4 to 6 of docs/enroll.md §4: the token's audience is the selected one, its key is the
|
|
157
|
+
* entry's, and its deadline is still ahead. The token's audience is display-safe already (the
|
|
158
|
+
* codec refuses otherwise), and is JSON-quoted to show where it ends. */
|
|
159
|
+
export function checkChallenge(ch, audience, key, now) {
|
|
160
|
+
if (ch.audience !== audience) {
|
|
161
|
+
throw new Error(`enroll: the token is for ${jsonString(ch.audience)}, not the audience you selected, ${jsonString(audience)}; nothing was shown or signed`);
|
|
162
|
+
}
|
|
163
|
+
if (!equal(ch.newKey, key)) {
|
|
164
|
+
throw new Error(`enroll: the token enrolls ${encodeKey(ch.newKey)}, not this key, ${encodeKey(key)}; nothing was shown or signed`);
|
|
165
|
+
}
|
|
166
|
+
if (now >= ch.deadline) {
|
|
167
|
+
throw new Error(`enroll: the request's deadline, about ${formatRfc3339Utc(ch.deadline)}, has passed; begin again on the service's page`);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/** The statement of docs/enroll.md §4, byte-identical in every lane
|
|
171
|
+
* (cli/testdata/enroll-statement.json). */
|
|
172
|
+
export function renderStatement(audience, intent, key, deadline, keySource) {
|
|
173
|
+
let out = `${audience} asks you to add a key to an account:\n`;
|
|
174
|
+
out += ` account: ${intent.accountName}\n`;
|
|
175
|
+
out += ` account id: ${intent.accountId}\n`;
|
|
176
|
+
out += ` key: ${encodeKey(key)}\n`;
|
|
177
|
+
if (intent.restrictions.length === 0) {
|
|
178
|
+
out += " restrictions: none\n";
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
out += " restrictions:\n";
|
|
182
|
+
for (const r of intent.restrictions)
|
|
183
|
+
out += ` ${r}\n`;
|
|
184
|
+
}
|
|
185
|
+
out += "the service may give this key the account's authority.\n";
|
|
186
|
+
out += `the request's deadline is about ${formatRfc3339Utc(deadline)}, the service's word; it is not the key's expiry.\n`;
|
|
187
|
+
out += `signing with ${keySource}\n`;
|
|
188
|
+
return out;
|
|
189
|
+
}
|
|
190
|
+
/** The question, naming the account the person is agreeing to, in plain quotes. */
|
|
191
|
+
export function prompt(intent) {
|
|
192
|
+
return `add this key to the account "${intent.accountName}"? [y/N] `;
|
|
193
|
+
}
|
|
194
|
+
/** A context every shell receives as itself, unquoted: sh, cmd.exe and PowerShell alike. A
|
|
195
|
+
* leading `@` or `-` is left out, since PowerShell and flag parsers read those as something
|
|
196
|
+
* else (docs/enroll.md §4 step 1). */
|
|
197
|
+
const BARE_CONTEXT = /^[A-Za-z0-9][A-Za-z0-9._/:+=-]*$/;
|
|
198
|
+
/** Why the entry may not enroll, and how to change that. `key policy` replaces a list rather
|
|
199
|
+
* than adding to it, so the command printed names every context the entry keeps, then
|
|
200
|
+
* archon-enroll/1; it is printed only when every context needs no quoting in any shell, and
|
|
201
|
+
* otherwise the contexts are listed JSON-quoted. */
|
|
202
|
+
export function policyRefusal(name, policy) {
|
|
203
|
+
// A version-2 entry always has one; said the same way in every lane regardless.
|
|
204
|
+
if (policy === null)
|
|
205
|
+
return `enroll: key ${name} may not sign in ${ENROLL_DOMAIN}: it has no policy`;
|
|
206
|
+
const head = `enroll: key ${name} may not sign in ${ENROLL_DOMAIN}: its policy is ${keystore.describePolicy(policy)}`;
|
|
207
|
+
if (policy.contexts.length >= keystore.MAX_CONTEXTS) {
|
|
208
|
+
return `${head}.\n it already lists ${keystore.MAX_CONTEXTS} contexts, the most a policy holds: drop one with archon key policy, or keep a separate key for enrollment`;
|
|
209
|
+
}
|
|
210
|
+
if (!policy.contexts.every((c) => BARE_CONTEXT.test(c))) {
|
|
211
|
+
return `${head}.\n key policy replaces the list: run archon key policy ${name} with --allow for each of ${policy.contexts.map(jsonString).join(", ")}, and for ${ENROLL_DOMAIN}`;
|
|
212
|
+
}
|
|
213
|
+
const command = [`archon key policy ${name}`, ...policy.contexts.map((c) => `--allow ${c}`), `--allow ${ENROLL_DOMAIN}`].join(" ");
|
|
214
|
+
return `${head}.\n to let it enroll, keeping what it has (key policy replaces the list):\n ${command}`;
|
|
215
|
+
}
|
|
216
|
+
function readChallengeFile(path) {
|
|
217
|
+
let fd;
|
|
218
|
+
try {
|
|
219
|
+
fd = openSync(path, "r");
|
|
220
|
+
}
|
|
221
|
+
catch (err) {
|
|
222
|
+
throw new Error(`enroll: could not read ${JSON.stringify(path)}: ${err instanceof Error ? err.message : String(err)}`);
|
|
223
|
+
}
|
|
224
|
+
try {
|
|
225
|
+
const buf = Buffer.alloc(MAX_INPUT + 1);
|
|
226
|
+
let n = 0;
|
|
227
|
+
for (;;) {
|
|
228
|
+
const got = readSync(fd, buf, n, buf.length - n, null);
|
|
229
|
+
if (got === 0)
|
|
230
|
+
break;
|
|
231
|
+
n += got;
|
|
232
|
+
if (n > MAX_INPUT) {
|
|
233
|
+
throw new Error(`enroll: ${JSON.stringify(path)} is over ${MAX_INPUT} bytes; a challenge token is at most ${ENROLL_MAX_TOKEN_SIZE}`);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return buf.subarray(0, n).toString("utf8");
|
|
237
|
+
}
|
|
238
|
+
finally {
|
|
239
|
+
closeSync(fd);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
function equal(a, b) {
|
|
243
|
+
return a.length === b.length && a.every((x, i) => x === b[i]);
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=enroll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enroll.js","sourceRoot":"","sources":["../../../src/cmd/enroll.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,8 @@ export declare function openControllingTerminal(): ControllingTerminal;
|
|
|
48
48
|
* prompt turned each byte into its own character, so a non-ASCII password derived a key no
|
|
49
49
|
* other lane derives; `openEntered` still opens keys sealed that way, and re-seals them. */
|
|
50
50
|
export declare function promptHidden(label: string, io: HiddenPromptIo): string;
|
|
51
|
+
/** One visible line from the controlling terminal, in cooked mode: `key policy`'s and `enroll`'s y/N. */
|
|
52
|
+
export declare function readTerminalLine(terminal: ControllingTerminal): string;
|
|
51
53
|
/** What the prompt before 0.11.0 made of the same keystrokes: each UTF-8 byte of `password`
|
|
52
54
|
* as a character of its own. undefined for an ASCII password, where both readings agree. */
|
|
53
55
|
export declare function legacyPromptDecoding(password: string): string | undefined;
|
|
@@ -211,8 +211,8 @@ export function promptHidden(label, io) {
|
|
|
211
211
|
throw new Error("the password is not valid UTF-8; set the terminal's encoding to UTF-8");
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
|
-
/** One visible line from the controlling terminal, in cooked mode: `key policy`'s y/N. */
|
|
215
|
-
function readTerminalLine(terminal) {
|
|
214
|
+
/** One visible line from the controlling terminal, in cooked mode: `key policy`'s and `enroll`'s y/N. */
|
|
215
|
+
export function readTerminalLine(terminal) {
|
|
216
216
|
const bytes = [];
|
|
217
217
|
for (;;) {
|
|
218
218
|
const c = terminal.io.readByte();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key_store.js","sourceRoot":"","sources":["../../../src/cmd/key_store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"key_store.js","sourceRoot":"","sources":["../../../src/cmd/key_store.ts"],"names":[],"mappings":"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"}
|
package/dist/src/cmd/login.d.ts
CHANGED
|
@@ -6,6 +6,9 @@ export interface LoginIo {
|
|
|
6
6
|
sleep: (seconds: number) => Promise<void>;
|
|
7
7
|
/** Seconds since the Unix epoch. */
|
|
8
8
|
now: () => number;
|
|
9
|
+
/** Where the page-started form reads the answer to its question; process.stdin when absent.
|
|
10
|
+
* A function, so the real stream is only touched when the question is actually asked. */
|
|
11
|
+
stdin?: () => NodeJS.ReadableStream;
|
|
9
12
|
}
|
|
10
13
|
/** What the service answers on GET <audience>/login/<id>.
|
|
11
14
|
*
|
|
@@ -62,8 +65,11 @@ export declare function run(args: string[], write?: (text: string) => void, io?:
|
|
|
62
65
|
* statement built from junk. Every refusal names the field. */
|
|
63
66
|
export declare function validateLoginRequest(r: LoginRequest, wantId: string): void;
|
|
64
67
|
/** EXACTLY what the person is asked to approve, and the text all three lanes must print
|
|
65
|
-
* byte-identically. nowSeconds is a parameter so the wall-clock end is testable.
|
|
66
|
-
|
|
68
|
+
* byte-identically. nowSeconds is a parameter so the wall-clock end is testable. `fingerprint`
|
|
69
|
+
* is the formatted transaction fingerprint (transactionFingerprint) of this audience and
|
|
70
|
+
* request: computed by the caller, which must refuse the request when it cannot be, rather
|
|
71
|
+
* than here, so rendering stays total. */
|
|
72
|
+
export declare function renderStatement(audience: string, r: LoginRequest, nowSeconds: number, keySource: string, fingerprint: string): string;
|
|
67
73
|
/** The offers form's counterpart (docs/login.md §4.1 rule 4): the same fields as the
|
|
68
74
|
* statement, printed AFTER answering rather than before signing, because in that form nobody
|
|
69
75
|
* confirmed — the person typed the scope and the audience is the CLI's own. It names K as the
|
|
@@ -88,9 +94,12 @@ export declare function describeKeySource(src: LoginSource): string;
|
|
|
88
94
|
export declare function formatDuration(seconds: number): string;
|
|
89
95
|
/** Format a Unix timestamp as YYYY-MM-DDTHH:MM:SSZ, matching the other two lanes. */
|
|
90
96
|
export declare function formatRfc3339Utc(unixSeconds: number): string;
|
|
91
|
-
/**
|
|
92
|
-
* including EOF, so a login cannot be completed by a closed stdin.
|
|
93
|
-
|
|
97
|
+
/** States the consequence, then reads a y/N answer. Default is NO: anything that is not an
|
|
98
|
+
* explicit yes refuses, including EOF, so a login cannot be completed by a closed stdin. With
|
|
99
|
+
* --yes it is never called, so nothing of it is printed. It writes where the statement was
|
|
100
|
+
* written — `run`'s writer, stdout unless a test injected one — so the two cannot be reordered
|
|
101
|
+
* or split across streams. */
|
|
102
|
+
export declare function confirm(write?: (text: string) => void, input?: NodeJS.ReadableStream): Promise<boolean>;
|
|
94
103
|
/** Accept the two hex seed-file shapes in use: 64 hex characters (a raw 32-byte seed) and
|
|
95
104
|
* 128 (seed followed by public key), the shape the first consumer's `key` files carry (answer 4). */
|
|
96
105
|
export declare function seedFromHexFile(text: string): Uint8Array;
|
|
@@ -122,12 +131,36 @@ export declare function runOffer(args: string[], write: (text: string) => void,
|
|
|
122
131
|
* audience parseable as one; feeding the audience through the scheme's derivation asks the
|
|
123
132
|
* one question that matters: is this the string the service binds? */
|
|
124
133
|
export declare function configuredAudience(flag: string | undefined): string;
|
|
125
|
-
/** The one
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
134
|
+
/** The one check of an audience the person selected rather than one a service supplied:
|
|
135
|
+
* --audience, or ARCHON_AUDIENCE, and canonical. `login`'s offers form and `enroll` share it;
|
|
136
|
+
* `command` and `why` name the caller in its refusals. */
|
|
137
|
+
export declare function selectedAudience(command: string, why: string, flag: string | undefined): string;
|
|
138
|
+
/** The lines describePage prints when it withholds the page address. Each says why, and none
|
|
139
|
+
* carries the address: it holds the code, and the code is already on the line above it. */
|
|
140
|
+
export declare const PAGE_NOT_HTTPS = "the service's page is not an https address, so its address (which carries the code) is not printed";
|
|
141
|
+
export declare const PAGE_PLAIN_HTTP: string;
|
|
142
|
+
export declare const PAGE_OFF_ORIGIN: string;
|
|
143
|
+
export declare const PAGE_OFF_TRUSTED: string;
|
|
144
|
+
/** The one stderr line about the page address (§4.1 rule 1; ADR 0007 §C.7 (6); ADR 0015). The
|
|
145
|
+
* address carries the code in its fragment, and a person shown an address can open it whatever
|
|
146
|
+
* label sits beside it (archon#123) — so it is PRINTED only when it is both (a) on a trusted
|
|
147
|
+
* transport, https or plain http on this machine (localhost, 127.0.0.1, [::1]), and (b) on a
|
|
148
|
+
* trusted origin: the audience's own, or the one the person named with --page-origin.
|
|
149
|
+
* Otherwise one line says why it was withheld and the flow goes on: the code line above it lets
|
|
150
|
+
* the person finish on the service's own page.
|
|
151
|
+
*
|
|
152
|
+
* Both comparisons are byte-exact, of the page's scheme and authority as it spells them with
|
|
153
|
+
* the audience's (canonical by construction) and with --page-origin (canonical, pageOriginFlag
|
|
154
|
+
* made sure) — a differently spelled origin fails closed, the right direction for an address
|
|
155
|
+
* carrying a secret. It is never opened: launching a browser is the person's action, never this
|
|
156
|
+
* command's — spawning a platform opener by name is the PATH surface §C.5 refuses. */
|
|
157
|
+
export declare function describePage(audience: string, page: string, trusted?: string): string;
|
|
158
|
+
/** Checks --page-origin (ADR 0015) before anything is sent: an ORIGIN — scheme://host[:port],
|
|
159
|
+
* with no path, query or fragment — spelled canonically, as an audience must be: a fixed point
|
|
160
|
+
* of §2.1's grammar, fed through the scheme's derivation exactly as selectedAudience feeds the
|
|
161
|
+
* audience. describePage compares it byte for byte, so a spelling the comparison could never
|
|
162
|
+
* match is refused here, naming the one it could. */
|
|
163
|
+
export declare function pageOriginFlag(value: string | undefined): string | undefined;
|
|
131
164
|
/** §4.1 rule 2, done by the prover for itself: the request's scope must be what was offered,
|
|
132
165
|
* entry for entry, in order, and its validity equal. The service refuses a mismatched begin
|
|
133
166
|
* before storing anything — but a prover that relied on that would be trusting the service
|
|
@@ -146,3 +179,11 @@ export declare function proveLogin(seed: Uint8Array, audience: string, request:
|
|
|
146
179
|
proof: Uint8Array;
|
|
147
180
|
principal: string;
|
|
148
181
|
};
|
|
182
|
+
/** The login's transaction fingerprint (docs/login.md §5.3; ADR 0015 §4) as the person reads it,
|
|
183
|
+
* over the derived audience and the SAME scheme request the proof is made from — schemeRequest,
|
|
184
|
+
* once — so the fingerprint the person compares with the page they started covers exactly the
|
|
185
|
+
* request that will be signed. The digest and its spelling are the sdk's; this lane only
|
|
186
|
+
* converts the wire values, as for the proof. Throws when the sdk refuses what the binding
|
|
187
|
+
* refuses, or a nonce under the scheme's floor: the caller refuses the request before anything
|
|
188
|
+
* is shown. */
|
|
189
|
+
export declare function transactionFingerprint(audience: string, request: LoginRequest): string;
|
package/dist/src/cmd/login.js
CHANGED
|
@@ -28,20 +28,21 @@ import { encodeKey, decodeKey, getPublicKey } from "@bitspark/archon";
|
|
|
28
28
|
// own `proveLogin`. Those are the SCHEME's types; the ones in this file are the WIRE's
|
|
29
29
|
// (strings, snake_case, straight off the JSON). Keeping both names visible and distinct is
|
|
30
30
|
// the point — converting between them is this seam's entire job.
|
|
31
|
-
import { LOGIN_DOMAIN, MIN_NONCE_SIZE as SCHEME_MIN_NONCE_SIZE, deriveAudience, displayUnsafe, proveLogin as schemeProveLogin, } from "@bitspark/archon-sdk";
|
|
31
|
+
import { LOGIN_DOMAIN, MIN_NONCE_SIZE as SCHEME_MIN_NONCE_SIZE, deriveAudience, displayUnsafe, fingerprint as schemeFingerprint, formatFingerprint, proveLogin as schemeProveLogin, } from "@bitspark/archon-sdk";
|
|
32
32
|
import { jsonString, resolveSeed, shown, wantsHelp } from "../io.js";
|
|
33
33
|
import * as keystore from "../keystore.js";
|
|
34
34
|
import * as store from "./key_store.js";
|
|
35
35
|
const USAGE = "usage: archon login <url> [--key <name> | --seed <hex> | --key-file <pkcs8.pem> | --seed-file <file>] " +
|
|
36
36
|
"[--authority-file <file>] [--yes]\n" +
|
|
37
37
|
" archon login --audience <base> [--scope <entry>]... --valid-for <seconds> " +
|
|
38
|
-
"[--key <name> | --seed <hex> | --key-file <pkcs8.pem> | --seed-file <file>] [--authority-file <file>]\n " +
|
|
38
|
+
"[--key <name> | --seed <hex> | --key-file <pkcs8.pem> | --seed-file <file>] [--authority-file <file>] [--page-origin <origin>]\n " +
|
|
39
39
|
"proves possession of your key to the service at <url> so the browser key it names may act for you. " +
|
|
40
40
|
"<url> is the invocation URL <audience>/login/<id>; the audience is derived from it, never taken from the server. " +
|
|
41
41
|
"--key names a key in the store and is the default (archon key default); --key-file is a PKCS#8 file. " +
|
|
42
42
|
"Store password: interactive prompt, or ARCHON_KEY_PASSWORD / --password-fd <n>, never argv.\n " +
|
|
43
43
|
"with no URL, the CLI OFFERS what you typed and the page finishes: the audience is --audience or ARCHON_AUDIENCE, " +
|
|
44
|
-
"never a page's word; the code
|
|
44
|
+
"never a page's word; the code goes to stderr, the page address with it only when it is https (or http on this machine) " +
|
|
45
|
+
"on the audience's origin or the one --page-origin names, the ledger to stdout after the service answers; " +
|
|
45
46
|
"no confirmation is asked — what you typed is what you sign.";
|
|
46
47
|
const realIo = {
|
|
47
48
|
writeErr: (text) => {
|
|
@@ -49,6 +50,7 @@ const realIo = {
|
|
|
49
50
|
},
|
|
50
51
|
sleep: (seconds) => new Promise((resolve) => setTimeout(resolve, seconds * 1000)),
|
|
51
52
|
now: () => Math.floor(Date.now() / 1000),
|
|
53
|
+
stdin: () => process.stdin,
|
|
52
54
|
};
|
|
53
55
|
// The signing domain (archon-login/1) is deliberately NOT declared here. It is the
|
|
54
56
|
// scheme's, applied inside sdk/ts/login, and a copy in the CLI would be a second place it
|
|
@@ -127,6 +129,13 @@ export async function run(args, write = (text) => {
|
|
|
127
129
|
assumeYes = true;
|
|
128
130
|
continue;
|
|
129
131
|
}
|
|
132
|
+
if (flag === "--page-origin") {
|
|
133
|
+
// The offers form's flag (ADR 0015). Here it would do nothing — the page started this
|
|
134
|
+
// login, and no page address is printed — and a flag that does nothing is a flag someone
|
|
135
|
+
// will come to rely on.
|
|
136
|
+
throw new Error("--page-origin applies only to the offers form (no URL): with a URL the page started the login, " +
|
|
137
|
+
`and no page address is printed\n${USAGE}`);
|
|
138
|
+
}
|
|
130
139
|
const value = rest[i + 1];
|
|
131
140
|
if (value === undefined || value === "")
|
|
132
141
|
throw new Error(`flag ${JSON.stringify(flag)} needs a value\n${USAGE}`);
|
|
@@ -177,10 +186,15 @@ export async function run(args, write = (text) => {
|
|
|
177
186
|
const id = toHex(idBytes);
|
|
178
187
|
const request = await fetchLoginRequest(audience, id);
|
|
179
188
|
validateLoginRequest(request, id);
|
|
189
|
+
// THE TRANSACTION FINGERPRINT (docs/login.md §5.3; ADR 0015 §4): over the derived audience and
|
|
190
|
+
// the exact request that will be signed, for the person to compare with the page they started.
|
|
191
|
+
// Computed before anything is shown, so a request it cannot cover is refused like any other
|
|
192
|
+
// malformed one, and the person never reads a statement without it.
|
|
193
|
+
const fingerprint = transactionFingerprint(audience, request);
|
|
180
194
|
// SHOW BEFORE SIGN. The person confirms the statement, not the URL.
|
|
181
195
|
const keySource = describeKeySource(src);
|
|
182
|
-
write(renderStatement(audience, request, io.now(), keySource));
|
|
183
|
-
if (!assumeYes && !(await confirm())) {
|
|
196
|
+
write(renderStatement(audience, request, io.now(), keySource, fingerprint));
|
|
197
|
+
if (!assumeYes && !(await confirm(write, (io.stdin ?? (() => process.stdin))()))) {
|
|
184
198
|
write("refused. nothing was signed.\n");
|
|
185
199
|
return;
|
|
186
200
|
}
|
|
@@ -243,9 +257,13 @@ function refuseUndisplayable(field, s) {
|
|
|
243
257
|
}
|
|
244
258
|
}
|
|
245
259
|
/** EXACTLY what the person is asked to approve, and the text all three lanes must print
|
|
246
|
-
* byte-identically. nowSeconds is a parameter so the wall-clock end is testable.
|
|
247
|
-
|
|
260
|
+
* byte-identically. nowSeconds is a parameter so the wall-clock end is testable. `fingerprint`
|
|
261
|
+
* is the formatted transaction fingerprint (transactionFingerprint) of this audience and
|
|
262
|
+
* request: computed by the caller, which must refuse the request when it cannot be, rather
|
|
263
|
+
* than here, so rendering stays total. */
|
|
264
|
+
export function renderStatement(audience, r, nowSeconds, keySource, fingerprint) {
|
|
248
265
|
const lines = [`${audience} asks you to let browser key ${r.browser} act as you:`, ...scopeAndValidityLines(r, nowSeconds)];
|
|
266
|
+
lines.push(`transaction fingerprint: ${fingerprint} (compare it with the page you started)`);
|
|
249
267
|
lines.push(`signing with ${keySource}`);
|
|
250
268
|
return `${lines.join("\n")}\n`;
|
|
251
269
|
}
|
|
@@ -294,10 +312,12 @@ function scopeAndValidityLines(r, nowSeconds) {
|
|
|
294
312
|
export function describeKeySource(src) {
|
|
295
313
|
if (src.storeKey !== undefined)
|
|
296
314
|
return `the store key ${src.storeKey}`;
|
|
315
|
+
// A path is the person's own argument, but it is shown inside the statement they approve,
|
|
316
|
+
// so a display-unsafe code point in it is escaped like any other shown text.
|
|
297
317
|
if (src.seedFile !== undefined)
|
|
298
|
-
return `the seed file ${src.seedFile}`;
|
|
318
|
+
return `the seed file ${shown(src.seedFile)}`;
|
|
299
319
|
if (src.keyFile !== undefined)
|
|
300
|
-
return `the key file ${src.keyFile}`;
|
|
320
|
+
return `the key file ${shown(src.keyFile)}`;
|
|
301
321
|
if (src.seedHex !== undefined)
|
|
302
322
|
return "the seed given on the command line";
|
|
303
323
|
return "an unspecified key";
|
|
@@ -318,11 +338,24 @@ export function formatDuration(seconds) {
|
|
|
318
338
|
export function formatRfc3339Utc(unixSeconds) {
|
|
319
339
|
return new Date(unixSeconds * 1000).toISOString().replace(/\.\d{3}Z$/, "Z");
|
|
320
340
|
}
|
|
321
|
-
/**
|
|
322
|
-
*
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
341
|
+
/** Printed between the statement and the question (ADR 0015, archon#123). The statement says
|
|
342
|
+
* WHAT is asked; these say what a yes DOES, and who should be giving it: a login request
|
|
343
|
+
* reaching a person who did not start the client behind it is the phishing shape, and the one
|
|
344
|
+
* defence the CLI has at this moment is the person declining it. Pinned across the three lanes
|
|
345
|
+
* by cli/testdata/login-statement.json's `prompt`. */
|
|
346
|
+
const CONSEQUENCE_LINES = "This gives the browser key above authority to act as you.\n" +
|
|
347
|
+
"Approve only a client you started yourself.\n";
|
|
348
|
+
/** States the consequence, then reads a y/N answer. Default is NO: anything that is not an
|
|
349
|
+
* explicit yes refuses, including EOF, so a login cannot be completed by a closed stdin. With
|
|
350
|
+
* --yes it is never called, so nothing of it is printed. It writes where the statement was
|
|
351
|
+
* written — `run`'s writer, stdout unless a test injected one — so the two cannot be reordered
|
|
352
|
+
* or split across streams. */
|
|
353
|
+
export async function confirm(write = (text) => {
|
|
354
|
+
process.stdout.write(text);
|
|
355
|
+
}, input = process.stdin) {
|
|
356
|
+
write(CONSEQUENCE_LINES);
|
|
357
|
+
write("sign? [y/N] ");
|
|
358
|
+
const rl = createInterface({ input });
|
|
326
359
|
const line = await new Promise((resolve) => {
|
|
327
360
|
rl.once("line", (value) => resolve(value));
|
|
328
361
|
rl.once("close", () => resolve(""));
|
|
@@ -454,6 +487,7 @@ export async function runOffer(args, write, io) {
|
|
|
454
487
|
let authorityFile;
|
|
455
488
|
let audienceFlag;
|
|
456
489
|
let validForText;
|
|
490
|
+
let pageOriginText;
|
|
457
491
|
const scope = [];
|
|
458
492
|
for (let i = 0; i < rest.length; i++) {
|
|
459
493
|
const flag = rest[i];
|
|
@@ -491,6 +525,9 @@ export async function runOffer(args, write, io) {
|
|
|
491
525
|
case "--authority-file":
|
|
492
526
|
authorityFile = value;
|
|
493
527
|
break;
|
|
528
|
+
case "--page-origin":
|
|
529
|
+
pageOriginText = value;
|
|
530
|
+
break;
|
|
494
531
|
default: throw new Error(`unknown flag ${JSON.stringify(flag)}\n${USAGE}`);
|
|
495
532
|
}
|
|
496
533
|
}
|
|
@@ -510,6 +547,9 @@ export async function runOffer(args, write, io) {
|
|
|
510
547
|
// RULE 1: the audience is the CLI's own configuration, a fixed point of §2.1's grammar,
|
|
511
548
|
// refused before anything is fetched.
|
|
512
549
|
const audience = configuredAudience(audienceFlag);
|
|
550
|
+
// The one other origin whose page may be printed is the person's own word, checked here,
|
|
551
|
+
// before anything is sent, the way the audience is (ADR 0015).
|
|
552
|
+
const pageOrigin = pageOriginFlag(pageOriginText);
|
|
513
553
|
// The code is the CLI's own entropy, registered under it. The service echoes the offer back;
|
|
514
554
|
// an echo that differs is a service that altered what was offered, and nothing of it is
|
|
515
555
|
// trusted from here on.
|
|
@@ -521,10 +561,11 @@ export async function runOffer(args, write, io) {
|
|
|
521
561
|
io.writeErr(`offer registered at ${audience}\n`);
|
|
522
562
|
io.writeErr(`code: ${code}\n`);
|
|
523
563
|
if (offered.page !== undefined) {
|
|
524
|
-
// The address a person would open
|
|
525
|
-
//
|
|
564
|
+
// The address a person would open: one that would not show as itself is refused, not
|
|
565
|
+
// escaped (docs/login.md §5) — first, before it is judged — and one on an origin nobody
|
|
566
|
+
// trusted is withheld rather than printed (describePage).
|
|
526
567
|
refuseUndisplayable("the service's page address", offered.page);
|
|
527
|
-
io.writeErr(`${describePage(audience, offered.page)}\n`);
|
|
568
|
+
io.writeErr(`${describePage(audience, offered.page, pageOrigin)}\n`);
|
|
528
569
|
}
|
|
529
570
|
io.writeErr(`waiting for the page to take the offer, up to ${offered.expires_in}s\n`);
|
|
530
571
|
// The prover paces ITSELF (ADR 0007 §C.7, #39): the route is unpaced because two parties
|
|
@@ -574,20 +615,25 @@ function parseValidFor(text) {
|
|
|
574
615
|
* audience parseable as one; feeding the audience through the scheme's derivation asks the
|
|
575
616
|
* one question that matters: is this the string the service binds? */
|
|
576
617
|
export function configuredAudience(flag) {
|
|
618
|
+
return selectedAudience("login", "in this form the audience is your configuration, never a page's word (docs/login.md §4.1)", flag);
|
|
619
|
+
}
|
|
620
|
+
/** The one check of an audience the person selected rather than one a service supplied:
|
|
621
|
+
* --audience, or ARCHON_AUDIENCE, and canonical. `login`'s offers form and `enroll` share it;
|
|
622
|
+
* `command` and `why` name the caller in its refusals. */
|
|
623
|
+
export function selectedAudience(command, why, flag) {
|
|
577
624
|
const audience = flag !== undefined && flag !== "" ? flag : (process.env["ARCHON_AUDIENCE"] ?? "");
|
|
578
625
|
if (audience === "") {
|
|
579
|
-
throw new Error(
|
|
580
|
-
"in this form the audience is your configuration, never a page's word (docs/login.md §4.1)");
|
|
626
|
+
throw new Error(`${command}: no audience — pass --audience <base> or set ARCHON_AUDIENCE; ${why}`);
|
|
581
627
|
}
|
|
582
628
|
let derived;
|
|
583
629
|
try {
|
|
584
630
|
derived = deriveAudience(`${audience}/login/00`).audience;
|
|
585
631
|
}
|
|
586
632
|
catch (err) {
|
|
587
|
-
throw new Error(
|
|
633
|
+
throw new Error(`${command}: audience ${JSON.stringify(audience)} is not valid: ${err instanceof Error ? err.message : String(err)} (docs/login.md §2.1)`);
|
|
588
634
|
}
|
|
589
635
|
if (derived !== audience) {
|
|
590
|
-
throw new Error(
|
|
636
|
+
throw new Error(`${command}: audience ${JSON.stringify(audience)} is not canonical — the service binds ${JSON.stringify(derived)}; pass that (docs/login.md §2.1)`);
|
|
591
637
|
}
|
|
592
638
|
return audience;
|
|
593
639
|
}
|
|
@@ -642,15 +688,88 @@ function checkOfferEcho(offered, code, scope, validFor) {
|
|
|
642
688
|
if (!Number.isInteger(offered.expires_in) || offered.expires_in <= 0)
|
|
643
689
|
throw new Error("login: the service's offer has no lifetime (expires_in)");
|
|
644
690
|
}
|
|
645
|
-
/** The
|
|
646
|
-
*
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
export
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
691
|
+
/** The lines describePage prints when it withholds the page address. Each says why, and none
|
|
692
|
+
* carries the address: it holds the code, and the code is already on the line above it. */
|
|
693
|
+
export const PAGE_NOT_HTTPS = "the service's page is not an https address, so its address (which carries the code) is not printed";
|
|
694
|
+
export const PAGE_PLAIN_HTTP = "the service's page is plain HTTP off this machine, so its address (which carries the code) is not printed; " +
|
|
695
|
+
"only https, or http on localhost, 127.0.0.1 or [::1], is printed";
|
|
696
|
+
export const PAGE_OFF_ORIGIN = "the service's page is not on the service's own origin, so its address (which carries the code) is not printed; " +
|
|
697
|
+
"pass --page-origin <origin> to trust that origin";
|
|
698
|
+
export const PAGE_OFF_TRUSTED = "the service's page is on neither the service's own origin nor the one --page-origin names, " +
|
|
699
|
+
"so its address (which carries the code) is not printed";
|
|
700
|
+
/** The one stderr line about the page address (§4.1 rule 1; ADR 0007 §C.7 (6); ADR 0015). The
|
|
701
|
+
* address carries the code in its fragment, and a person shown an address can open it whatever
|
|
702
|
+
* label sits beside it (archon#123) — so it is PRINTED only when it is both (a) on a trusted
|
|
703
|
+
* transport, https or plain http on this machine (localhost, 127.0.0.1, [::1]), and (b) on a
|
|
704
|
+
* trusted origin: the audience's own, or the one the person named with --page-origin.
|
|
705
|
+
* Otherwise one line says why it was withheld and the flow goes on: the code line above it lets
|
|
706
|
+
* the person finish on the service's own page.
|
|
707
|
+
*
|
|
708
|
+
* Both comparisons are byte-exact, of the page's scheme and authority as it spells them with
|
|
709
|
+
* the audience's (canonical by construction) and with --page-origin (canonical, pageOriginFlag
|
|
710
|
+
* made sure) — a differently spelled origin fails closed, the right direction for an address
|
|
711
|
+
* carrying a secret. It is never opened: launching a browser is the person's action, never this
|
|
712
|
+
* command's — spawning a platform opener by name is the PATH surface §C.5 refuses. */
|
|
713
|
+
export function describePage(audience, page, trusted) {
|
|
714
|
+
const sep = page.indexOf("://");
|
|
715
|
+
const scheme = sep < 0 ? "" : page.slice(0, sep);
|
|
716
|
+
if (scheme !== "https" && scheme !== "http")
|
|
717
|
+
return PAGE_NOT_HTTPS;
|
|
718
|
+
const rest = page.slice(sep + 3);
|
|
719
|
+
const end = rest.search(/[/?#]/);
|
|
720
|
+
const authority = end < 0 ? rest : rest.slice(0, end);
|
|
721
|
+
if (scheme === "http" && !isLoopback(authority))
|
|
722
|
+
return PAGE_PLAIN_HTTP;
|
|
723
|
+
const origin = `${scheme}://${authority}`;
|
|
724
|
+
if (origin === originOf(audience))
|
|
725
|
+
return `page: ${page} (on the service's own origin)`;
|
|
726
|
+
if (trusted !== undefined && origin === trusted)
|
|
727
|
+
return `page: ${page} (on the origin you trusted with --page-origin)`;
|
|
728
|
+
return trusted !== undefined ? PAGE_OFF_TRUSTED : PAGE_OFF_ORIGIN;
|
|
729
|
+
}
|
|
730
|
+
/** Whether an authority, as a page spells it, names this machine: exactly localhost, 127.0.0.1
|
|
731
|
+
* or [::1], with any port. Userinfo is never this machine — it is how
|
|
732
|
+
* `http://localhost@elsewhere` reads as one host and goes to another. */
|
|
733
|
+
function isLoopback(authority) {
|
|
734
|
+
if (authority.includes("@"))
|
|
735
|
+
return false;
|
|
736
|
+
let host = authority;
|
|
737
|
+
if (host.startsWith("[")) {
|
|
738
|
+
const close = host.indexOf("]");
|
|
739
|
+
if (close >= 0)
|
|
740
|
+
host = host.slice(0, close + 1);
|
|
741
|
+
}
|
|
742
|
+
else {
|
|
743
|
+
const colon = host.indexOf(":");
|
|
744
|
+
if (colon >= 0)
|
|
745
|
+
host = host.slice(0, colon);
|
|
746
|
+
}
|
|
747
|
+
return host === "localhost" || host === "127.0.0.1" || host === "[::1]";
|
|
748
|
+
}
|
|
749
|
+
/** Checks --page-origin (ADR 0015) before anything is sent: an ORIGIN — scheme://host[:port],
|
|
750
|
+
* with no path, query or fragment — spelled canonically, as an audience must be: a fixed point
|
|
751
|
+
* of §2.1's grammar, fed through the scheme's derivation exactly as selectedAudience feeds the
|
|
752
|
+
* audience. describePage compares it byte for byte, so a spelling the comparison could never
|
|
753
|
+
* match is refused here, naming the one it could. */
|
|
754
|
+
export function pageOriginFlag(value) {
|
|
755
|
+
if (value === undefined)
|
|
756
|
+
return undefined;
|
|
757
|
+
const sep = value.indexOf("://");
|
|
758
|
+
const rest = sep < 0 ? "" : value.slice(sep + 3);
|
|
759
|
+
if (rest === "" || /[/?#]/.test(rest)) {
|
|
760
|
+
throw new Error(`login: --page-origin ${jsonString(value)} is not an origin — give scheme://host[:port], with no path, query or fragment`);
|
|
761
|
+
}
|
|
762
|
+
let derived;
|
|
763
|
+
try {
|
|
764
|
+
derived = deriveAudience(`${value}/login/00`).audience;
|
|
765
|
+
}
|
|
766
|
+
catch (err) {
|
|
767
|
+
throw new Error(`login: --page-origin ${jsonString(value)} is not valid: ${err instanceof Error ? err.message : String(err)} (docs/login.md §2.1)`);
|
|
768
|
+
}
|
|
769
|
+
if (derived !== value) {
|
|
770
|
+
throw new Error(`login: --page-origin ${jsonString(value)} is not canonical — pass ${jsonString(derived)} (docs/login.md §2.1)`);
|
|
771
|
+
}
|
|
772
|
+
return value;
|
|
654
773
|
}
|
|
655
774
|
/** The audience up to its path: scheme, host and port, as the audience spells them (canonical
|
|
656
775
|
* by construction — configuredAudience made sure). */
|
|
@@ -772,6 +891,21 @@ export function loginHttpError(status, body) {
|
|
|
772
891
|
* produce proofs that verify nowhere and take a day to explain. */
|
|
773
892
|
export function proveLogin(seed, audience, request) {
|
|
774
893
|
const principal = encodeKey(getPublicKey(seed));
|
|
894
|
+
return { proof: schemeProveLogin(seed, audience, schemeRequest(request)), principal };
|
|
895
|
+
}
|
|
896
|
+
/** The login's transaction fingerprint (docs/login.md §5.3; ADR 0015 §4) as the person reads it,
|
|
897
|
+
* over the derived audience and the SAME scheme request the proof is made from — schemeRequest,
|
|
898
|
+
* once — so the fingerprint the person compares with the page they started covers exactly the
|
|
899
|
+
* request that will be signed. The digest and its spelling are the sdk's; this lane only
|
|
900
|
+
* converts the wire values, as for the proof. Throws when the sdk refuses what the binding
|
|
901
|
+
* refuses, or a nonce under the scheme's floor: the caller refuses the request before anything
|
|
902
|
+
* is shown. */
|
|
903
|
+
export function transactionFingerprint(audience, request) {
|
|
904
|
+
return formatFingerprint(schemeFingerprint(audience, schemeRequest(request)));
|
|
905
|
+
}
|
|
906
|
+
/** The wire request as the scheme's: hex and key text in, bytes out. The one conversion both
|
|
907
|
+
* the proof and the transaction fingerprint are made from. */
|
|
908
|
+
function schemeRequest(request) {
|
|
775
909
|
// Re-decoded rather than assumed: validateLoginRequest has already checked these, but it
|
|
776
910
|
// runs on the flow's path and this function is reachable from any future caller. A silent
|
|
777
911
|
// mis-decode would produce a proof bound to bytes nobody displayed.
|
|
@@ -784,13 +918,12 @@ export function proveLogin(seed, audience, request) {
|
|
|
784
918
|
// as UTF-8 would bind the ASCII of the hex — 0x38 0x66 0x33 0x63 for "8f3c" instead of
|
|
785
919
|
// 0x8f 0x3c — and the resulting proof verifies NOWHERE. A stub test that builds its
|
|
786
920
|
// expected request the same wrong way still passes, which is how it survived.
|
|
787
|
-
|
|
921
|
+
return {
|
|
788
922
|
id: fromHex(request.id),
|
|
789
923
|
nonce,
|
|
790
924
|
browser,
|
|
791
925
|
scope: request.scope,
|
|
792
926
|
validFor: request.valid_for,
|
|
793
927
|
};
|
|
794
|
-
return { proof: schemeProveLogin(seed, audience, scheme), principal };
|
|
795
928
|
}
|
|
796
929
|
//# sourceMappingURL=login.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/cmd/login.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/cmd/login.ts"],"names":[],"mappings":"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"}
|
package/dist/src/main.js
CHANGED
|
@@ -10,16 +10,17 @@
|
|
|
10
10
|
// §8.2). `sign` and `verify` are new: raw bytes, domain-aware.
|
|
11
11
|
import { run as key } from "./cmd/key.js";
|
|
12
12
|
import { run as login } from "./cmd/login.js";
|
|
13
|
+
import { run as enroll } from "./cmd/enroll.js";
|
|
13
14
|
import { run as keygen } from "./cmd/keygen.js";
|
|
14
15
|
import { run as sign } from "./cmd/sign.js";
|
|
15
16
|
import { run as verify } from "./cmd/verify.js";
|
|
16
17
|
import { run as version, versionLine } from "./cmd/version.js";
|
|
17
18
|
import { Verdict } from "./io.js";
|
|
18
|
-
const USAGE = "usage: archon <keygen|key|login|sign|verify|version> [args]";
|
|
19
|
+
const USAGE = "usage: archon <keygen|key|login|enroll|sign|verify|version> [args]";
|
|
19
20
|
// login is async (it makes HTTP requests), so a handler may return a promise and this
|
|
20
21
|
// dispatch awaits it. Without the await, a rejected promise would escape the try/catch
|
|
21
22
|
// below and Node would report an unhandled rejection instead of `archon login: <reason>`.
|
|
22
|
-
const dispatch = { keygen, key, login, sign, verify, version };
|
|
23
|
+
const dispatch = { keygen, key, login, enroll, sign, verify, version };
|
|
23
24
|
const [command, ...rest] = process.argv.slice(2);
|
|
24
25
|
if (command === undefined) {
|
|
25
26
|
process.stderr.write(`${USAGE}\n`);
|
package/dist/src/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";AACA,0FAA0F;AAC1F,sFAAsF;AACtF,qFAAqF;AACrF,mFAAmF;AACnF,yFAAyF;AACzF,sFAAsF;AACtF,EAAE;AACF,yFAAyF;AACzF,+DAA+D;AAC/D,OAAO,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,GAAG,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,GAAG,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,GAAG,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,GAAG,IAAI,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";AACA,0FAA0F;AAC1F,sFAAsF;AACtF,qFAAqF;AACrF,mFAAmF;AACnF,yFAAyF;AACzF,sFAAsF;AACtF,EAAE;AACF,yFAAyF;AACzF,+DAA+D;AAC/D,OAAO,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,GAAG,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,GAAG,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,GAAG,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,GAAG,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,GAAG,IAAI,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,KAAK,GAAG,oEAAoE,CAAC;AAEnF,sFAAsF;AACtF,uFAAuF;AACvF,0FAA0F;AAC1F,MAAM,QAAQ,GAA6D,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAEjI,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;IAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;IAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;IAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,WAAW,EAAE,IAAI,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;AAClC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;IAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AACD,IAAI,CAAC;IACH,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAAC,OAAO,GAAG,EAAE,CAAC;IACb,6EAA6E;IAC7E,IAAI,CAAC,CAAC,GAAG,YAAY,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,OAAO,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnG,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitspark/archon-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.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.15.0",
|
|
27
|
+
"@bitspark/archon-sdk": "^0.15.0",
|
|
28
28
|
"@noble/ciphers": "^2.4.0",
|
|
29
29
|
"@noble/hashes": "^2.4.0"
|
|
30
30
|
},
|