@tyvm/knowhow 0.0.150 → 0.0.153

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tyvm/knowhow",
3
- "version": "0.0.150",
3
+ "version": "0.0.153",
4
4
  "description": "ai cli with plugins and agents",
5
5
  "main": "ts_build/src/index.js",
6
6
  "bin": {
@@ -6,6 +6,13 @@ import path from "path";
6
6
  const ED25519_KEY_TYPE = "ssh-ed25519";
7
7
  const ED25519_RAW_KEY_LENGTH = 32;
8
8
  const ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
9
+ const ED25519_PKCS8_PREFIX = Buffer.from("302e020100300506032b657004220420", "hex");
10
+
11
+ interface OpenSshMetadata {
12
+ encrypted: boolean;
13
+ algorithm?: string;
14
+ seed?: Buffer;
15
+ }
9
16
 
10
17
  export interface KeyPair {
11
18
  privateKeyPath: string;
@@ -90,6 +97,14 @@ export function getOrCreatePublicKey(privateKeyPath?: string): KeyPair {
90
97
  : generateKeyPair(privateKeyPath);
91
98
  }
92
99
 
100
+ export function ensureIdentityKeyPair(privateKeyPath?: string): {
101
+ keyPair: KeyPair;
102
+ created: boolean;
103
+ } {
104
+ if (keyPairExists(privateKeyPath)) return { keyPair: loadKeyPair(privateKeyPath), created: false };
105
+ return { keyPair: generateKeyPair(privateKeyPath), created: true };
106
+ }
107
+
93
108
  export function signMessage(message: string, privateKeyPath?: string): string {
94
109
  const privatePath = privateKeyPath ?? getDefaultPrivateKeyPath();
95
110
  if (!fs.existsSync(privatePath)) throw new Error(`Private key not found at: ${privatePath}`);
@@ -98,14 +113,50 @@ export function signMessage(message: string, privateKeyPath?: string): string {
98
113
 
99
114
  function readEd25519PrivateKey(privatePath: string): crypto.KeyObject {
100
115
  let key: crypto.KeyObject;
116
+ const privateKeyContents = fs.readFileSync(privatePath, "utf8");
117
+ const openSshMetadata = parseOpenSshMetadata(privateKeyContents);
118
+
119
+ if (openSshMetadata?.encrypted) {
120
+ throw new Error(
121
+ `Identity at ${privatePath} is an encrypted OpenSSH key. Use an unencrypted Ed25519 key for CLI auth (example: ssh-keygen -t ed25519 -N '' -f ${privatePath})`
122
+ );
123
+ }
124
+
101
125
  try {
102
- key = crypto.createPrivateKey(fs.readFileSync(privatePath));
126
+ key = crypto.createPrivateKey({ key: privateKeyContents, format: "pem" });
103
127
  } catch {
104
- throw new Error(`Identity at ${privatePath} is not a supported PEM Ed25519 private key`);
128
+ if (openSshMetadata) {
129
+ if (openSshMetadata.algorithm && openSshMetadata.algorithm !== ED25519_KEY_TYPE) {
130
+ throw new Error(
131
+ `Identity at ${privatePath} must be an OpenSSH Ed25519 key (found ${openSshMetadata.algorithm})`
132
+ );
133
+ }
134
+
135
+ if (openSshMetadata.seed) {
136
+ key = createEd25519PrivateKeyFromSeed(openSshMetadata.seed, privatePath);
137
+ } else {
138
+ throw new Error(
139
+ `Identity at ${privatePath} must be a PKCS#8 Ed25519 private key or an unencrypted OpenSSH Ed25519 private key`
140
+ );
141
+ }
142
+ return key;
143
+ }
144
+
145
+ throw new Error(`Identity at ${privatePath} must be a PKCS#8 Ed25519 private key or an unencrypted OpenSSH Ed25519 private key`);
105
146
  }
147
+
148
+ const detectedAlgorithm = key.asymmetricKeyType === "ed25519" ? openSshMetadata?.algorithm ?? "ed25519" : key.asymmetricKeyType;
149
+
106
150
  if (key.asymmetricKeyType !== "ed25519") {
107
- throw new Error(`Identity at ${privatePath} must be an Ed25519 private key`);
151
+ throw new Error(
152
+ `Identity at ${privatePath} must be an Ed25519 private key (found ${detectedAlgorithm ?? "unknown"})`
153
+ );
154
+ }
155
+
156
+ if (openSshMetadata?.algorithm && openSshMetadata.algorithm !== ED25519_KEY_TYPE) {
157
+ throw new Error(`Identity at ${privatePath} must be an OpenSSH Ed25519 key (found ${openSshMetadata.algorithm})`);
108
158
  }
159
+
109
160
  return key;
110
161
  }
111
162
 
@@ -164,3 +215,117 @@ function keyPairMetadata(privatePath: string, rawPublicKey: Buffer): KeyPair {
164
215
  fingerprint: `SHA256:${hash}`,
165
216
  };
166
217
  }
218
+
219
+ function createEd25519PrivateKeyFromSeed(seed: Buffer, privatePath: string): crypto.KeyObject {
220
+ if (seed.length !== ED25519_RAW_KEY_LENGTH) {
221
+ throw new Error(`Identity at ${privatePath} has an invalid OpenSSH Ed25519 private key payload`);
222
+ }
223
+
224
+ try {
225
+ const der = Buffer.concat([ED25519_PKCS8_PREFIX, seed]);
226
+ return crypto.createPrivateKey({ key: der, format: "der", type: "pkcs8" });
227
+ } catch {
228
+ throw new Error(
229
+ `Identity at ${privatePath} must be a PKCS#8 Ed25519 private key or an unencrypted OpenSSH Ed25519 private key`
230
+ );
231
+ }
232
+ }
233
+
234
+ function parseOpenSshMetadata(privateKeyContents: string): OpenSshMetadata | undefined {
235
+ const trimmed = privateKeyContents.trim();
236
+ if (!trimmed.startsWith("-----BEGIN OPENSSH PRIVATE KEY-----")) {
237
+ return undefined;
238
+ }
239
+
240
+ const body = trimmed
241
+ .replace("-----BEGIN OPENSSH PRIVATE KEY-----", "")
242
+ .replace("-----END OPENSSH PRIVATE KEY-----", "")
243
+ .replace(/\s+/g, "");
244
+
245
+ let buffer: Buffer;
246
+ try {
247
+ buffer = Buffer.from(body, "base64");
248
+ } catch {
249
+ return undefined;
250
+ }
251
+
252
+ let offset = 0;
253
+
254
+ const magic = Buffer.from("openssh-key-v1\0", "utf8");
255
+ if (buffer.length < magic.length || !buffer.subarray(0, magic.length).equals(magic)) {
256
+ return undefined;
257
+ }
258
+ offset += magic.length;
259
+
260
+ const readString = (): string | undefined => {
261
+ if (offset + 4 > buffer.length) return undefined;
262
+ const length = buffer.readUInt32BE(offset);
263
+ offset += 4;
264
+ if (offset + length > buffer.length) return undefined;
265
+ const value = buffer.subarray(offset, offset + length).toString("utf8");
266
+ offset += length;
267
+ return value;
268
+ };
269
+
270
+ const readBuffer = (): Buffer | undefined => {
271
+ if (offset + 4 > buffer.length) return undefined;
272
+ const length = buffer.readUInt32BE(offset);
273
+ offset += 4;
274
+ if (offset + length > buffer.length) return undefined;
275
+ const value = buffer.subarray(offset, offset + length);
276
+ offset += length;
277
+ return value;
278
+ };
279
+
280
+ const ciphername = readString();
281
+ const kdfname = readString();
282
+ const kdfoptions = readBuffer();
283
+ if (!ciphername || !kdfname || !kdfoptions) {
284
+ return undefined;
285
+ }
286
+
287
+ if (offset + 4 > buffer.length) return { encrypted: ciphername !== "none" || kdfname !== "none" };
288
+ const keyCount = buffer.readUInt32BE(offset);
289
+ offset += 4;
290
+
291
+ for (let i = 0; i < keyCount; i++) {
292
+ const skippedPublic = readBuffer();
293
+ if (!skippedPublic) return { encrypted: ciphername !== "none" || kdfname !== "none" };
294
+ }
295
+
296
+ const privateBlock = readBuffer();
297
+ if (!privateBlock) return { encrypted: ciphername !== "none" || kdfname !== "none" };
298
+
299
+ let privateOffset = 0;
300
+ const readPrivateString = (): string | undefined => {
301
+ if (privateOffset + 4 > privateBlock.length) return undefined;
302
+ const length = privateBlock.readUInt32BE(privateOffset);
303
+ privateOffset += 4;
304
+ if (privateOffset + length > privateBlock.length) return undefined;
305
+ const value = privateBlock.subarray(privateOffset, privateOffset + length).toString("utf8");
306
+ privateOffset += length;
307
+ return value;
308
+ };
309
+
310
+ const readPrivateBuffer = (): Buffer | undefined => {
311
+ if (privateOffset + 4 > privateBlock.length) return undefined;
312
+ const length = privateBlock.readUInt32BE(privateOffset);
313
+ privateOffset += 4;
314
+ if (privateOffset + length > privateBlock.length) return undefined;
315
+ const value = privateBlock.subarray(privateOffset, privateOffset + length);
316
+ privateOffset += length;
317
+ return value;
318
+ };
319
+
320
+ privateOffset += 8; // checkints
321
+
322
+ const algorithm = readPrivateString();
323
+ let seed: Buffer | undefined;
324
+ if (algorithm === ED25519_KEY_TYPE) {
325
+ readPrivateBuffer(); // public key (32 bytes)
326
+ const privateConcat = readPrivateBuffer(); // private seed (32) + public key (32)
327
+ seed = privateConcat?.subarray(0, ED25519_RAW_KEY_LENGTH);
328
+ }
329
+
330
+ return { encrypted: ciphername !== "none" || kdfname !== "none", algorithm, seed };
331
+ }
@@ -28,7 +28,7 @@ export function decodeJwtPayload(jwt: string): Record<string, unknown> {
28
28
 
29
29
  export function extractOrgIdFromJwt(jwt: string): string {
30
30
  const payload = decodeJwtPayload(jwt);
31
- const orgId = payload["org"] ?? payload["orgId"] ?? payload["org_id"] ?? payload["organizationId"];
31
+ const orgId = payload.org ?? payload.orgId ?? payload.org_id ?? payload.organizationId;
32
32
  if (typeof orgId !== "string" || !orgId) {
33
33
  throw new Error("JWT does not contain an organization claim (expected org, orgId, org_id, or organizationId)");
34
34
  }
@@ -7,6 +7,7 @@ import { generate, buildWaves, normalizeInputPattern, GenerateOptions } from "..
7
7
  import { init } from "../config";
8
8
  import { login } from "../login";
9
9
  import { registerIdentity } from "../auth/registerIdentity";
10
+ import { ensureIdentityKeyPair } from "../auth/keyManager";
10
11
  import { KnowhowSimpleClient } from "../services/KnowhowClient";
11
12
  import { startChat } from "../chat";
12
13
 
@@ -26,21 +27,43 @@ export function addLoginCommand(program: Command): void {
26
27
  .option("--jwt", "Use manual JWT input instead of browser login")
27
28
  .option("-i, --identity <path>", "Ed25519 private key to use for public-key login")
28
29
  .option("--register-identity", "Register an Ed25519 identity using the JWT in .knowhow/.jwt")
30
+ .option("--key-gen", "Generate or validate the CLI Ed25519 identity keypair and exit")
29
31
  .option("--api-url <url>", "API base URL override (falls back to KNOWHOW_API_URL env)")
30
32
  .action(async (options: {
31
33
  jwt?: boolean;
32
34
  identity?: string;
33
35
  registerIdentity?: boolean;
36
+ keyGen?: boolean;
34
37
  apiUrl?: string;
35
38
  }) => {
39
+ if (options.keyGen) {
40
+ if (options.jwt || options.registerIdentity) {
41
+ throw new Error("--key-gen cannot be used with --jwt or --register-identity");
42
+ }
43
+
44
+ const { keyPair, created } = ensureIdentityKeyPair(options.identity);
45
+ if (created) {
46
+ console.log(`✅ Generated CLI identity keypair: ${keyPair.fingerprint}`);
47
+ console.log(`Private key: ${keyPair.privateKeyPath}`);
48
+ console.log(`Public key: ${keyPair.publicKeyPath}`);
49
+ } else {
50
+ console.log(`✅ CLI identity keypair already exists: ${keyPair.fingerprint}`);
51
+ console.log(`Private key: ${keyPair.privateKeyPath}`);
52
+ console.log(`Public key: ${keyPair.publicKeyPath}`);
53
+ }
54
+
55
+ return;
56
+ }
57
+
36
58
  if (options.registerIdentity) {
37
59
  await registerIdentity({
38
60
  identityPath: options.identity,
39
61
  apiUrl: options.apiUrl,
40
62
  });
41
- } else {
42
- await login(options.jwt, options.identity);
63
+ return;
43
64
  }
65
+
66
+ await login(options.jwt, options.identity);
44
67
  });
45
68
  }
46
69
 
@@ -87,8 +87,8 @@ export async function spawnManaged(command: string, args: string[] = [], options
87
87
  fs.mkdirSync(directory);
88
88
  const configPath = path.join(directory, "launch.json");
89
89
  fs.writeFileSync(configPath, JSON.stringify({ id, command, args, cwd, env: options.env || {}, background: options.background === true, parentProcessId: options.parentProcessId || null, parentPid: options.parentPid ?? process.pid, shell: options.shell === true, processesDir }, null, 2));
90
- const cliPath = path.resolve(__dirname, "..", "cli.js");
91
- const shim = spawn(process.execPath, [cliPath, "processes", "run", "--config", configPath], { cwd, detached: true, stdio: "ignore", env: process.env });
90
+ const shimPath = path.resolve(__dirname, "managedProcessShim.js");
91
+ const shim = spawn(process.execPath, [shimPath, configPath], { cwd, detached: true, stdio: "ignore", env: process.env });
92
92
  shim.unref();
93
93
  try { await waitForFile(path.join(directory, "status.json"), 5000); }
94
94
  catch (error) { try { fs.rmSync(directory, { recursive: true, force: true }); } catch {} throw error; }
@@ -1,7 +1,7 @@
1
1
  import { spawn, spawnSync, ChildProcess } from "child_process";
2
2
  import * as fs from "fs";
3
3
  import * as path from "path";
4
- import { ManagedProcessStatus } from "./ProcessManager";
4
+ import type { ManagedProcessStatus } from "./ProcessManager";
5
5
 
6
6
  interface LaunchConfig {
7
7
  id: string; command: string; args: string[]; cwd: string; env: NodeJS.ProcessEnv;
@@ -125,3 +125,14 @@ export async function runManagedProcessShim(configPath: string): Promise<void> {
125
125
  });
126
126
  }
127
127
  }
128
+
129
+ // Managed processes invoke this module directly. Keeping this entry point here
130
+ // avoids booting the full CLI (config, chat services, command modules, and
131
+ // plugins) before every command can write its initial status.
132
+ if (require.main === module) {
133
+ runManagedProcessShim(path.resolve(process.argv[2]))
134
+ .catch((error) => {
135
+ console.error(error);
136
+ process.exitCode = 1;
137
+ });
138
+ }
@@ -3,11 +3,34 @@ import fs from "fs";
3
3
  import os from "os";
4
4
  import path from "path";
5
5
  import {
6
+ ensureIdentityKeyPair,
6
7
  generateKeyPair,
7
8
  loadKeyPair,
8
9
  signMessage,
9
10
  } from "../../../src/auth/keyManager";
10
11
 
12
+ const OPENSSH_ED25519_PRIVATE_KEY = `-----BEGIN OPENSSH PRIVATE KEY-----
13
+ b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
14
+ QyNTUxOQAAACD/E7YSDZcV7usL3Ej3SSvGNVuNMu1hYFOpHjQaCodvIgAAAIgKqccyCqnH
15
+ MgAAAAtzc2gtZWQyNTUxOQAAACD/E7YSDZcV7usL3Ej3SSvGNVuNMu1hYFOpHjQaCodvIg
16
+ AAAECC40JKj3sb9Q3KsA9wAKeLbUwazUi7cuBiDfuJHDybtf8TthINlxXu6wvcSPdJK8Y1
17
+ W40y7WFgU6keNBoKh28iAAAABHRlc3QB
18
+ -----END OPENSSH PRIVATE KEY-----
19
+ `;
20
+
21
+ const OPENSSH_ED25519_PUBLIC_KEY =
22
+ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP8TthINlxXu6wvcSPdJK8Y1W40y7WFgU6keNBoKh28i test\n";
23
+
24
+ const OPENSSH_ENCRYPTED_ED25519_PRIVATE_KEY = `-----BEGIN OPENSSH PRIVATE KEY-----
25
+ b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABAiFkZE2t
26
+ 9UBWLQLB8sAuG7AAAAGAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAID2OnkCi/hq0EH9E
27
+ yBf1n4FXRDw16RYyDAL0pbbRWh1JAAAAkHNPoqbcZcef7FZY+dFTRTODyAMPL4gyzOxGLE
28
+ JffXux9KUTPBrCy+xfScoAHq9JFKrspli5h5Z6PyJ7Dp2NNJPOzEaF92fv6989AETm3X3X
29
+ 2pOUvtPMJz29C1MO7hXHlReIWqF6nkaDGGcNEZMZ3xHI4ypB/lfceH6A1IjxZEa2BXJfJe
30
+ y6h8co4T89tJdubQ==
31
+ -----END OPENSSH PRIVATE KEY-----
32
+ `;
33
+
11
34
  describe("keyManager", () => {
12
35
  let directory: string;
13
36
  let identity: string;
@@ -42,6 +65,27 @@ describe("keyManager", () => {
42
65
  ).toBe(true);
43
66
  });
44
67
 
68
+ it("accepts default unencrypted OpenSSH Ed25519 private keys", () => {
69
+ fs.writeFileSync(identity, OPENSSH_ED25519_PRIVATE_KEY);
70
+ fs.writeFileSync(`${identity}.pub`, OPENSSH_ED25519_PUBLIC_KEY);
71
+
72
+ const loaded = loadKeyPair(identity);
73
+ expect(loaded.publicKeyBase64).toBe("/xO2Eg2XFe7rC9xI90krxjVbjTLtYWB TqR40GgqHbyI=".replace(/\s+/g, ""));
74
+
75
+ const signature = signMessage("challenge", identity);
76
+ const spkiPrefix = Buffer.from("302a300506032b6570032100", "hex");
77
+ const publicKeyDer = Buffer.concat([spkiPrefix, Buffer.from(loaded.publicKeyBase64, "base64")]);
78
+ const publicKey = crypto.createPublicKey({ key: publicKeyDer, format: "der", type: "spki" });
79
+ expect(
80
+ crypto.verify(
81
+ null,
82
+ Buffer.from("challenge"),
83
+ publicKey,
84
+ Buffer.from(signature, "base64")
85
+ )
86
+ ).toBe(true);
87
+ });
88
+
45
89
  it("loads legacy raw-base64 public keys but rejects non-Ed25519 identities", () => {
46
90
  const generated = generateKeyPair(identity);
47
91
  fs.writeFileSync(`${identity}.pub`, generated.publicKeyBase64);
@@ -59,9 +103,28 @@ describe("keyManager", () => {
59
103
  expect(() => loadKeyPair(rsaIdentity)).toThrow("must be an Ed25519 private key");
60
104
  });
61
105
 
106
+ it("rejects encrypted OpenSSH keys with a clear error", () => {
107
+ fs.writeFileSync(identity, OPENSSH_ENCRYPTED_ED25519_PRIVATE_KEY);
108
+ fs.writeFileSync(`${identity}.pub`, OPENSSH_ED25519_PUBLIC_KEY);
109
+
110
+ expect(() => loadKeyPair(identity)).toThrow("encrypted OpenSSH key");
111
+ });
112
+
62
113
  it("does not overwrite a partial identity", () => {
63
114
  fs.writeFileSync(identity, "existing key");
64
115
  expect(() => generateKeyPair(identity)).toThrow("a key file already exists");
65
116
  expect(fs.readFileSync(identity, "utf8")).toBe("existing key");
66
117
  });
118
+
119
+ it("ensureIdentityKeyPair is safe for existing keys (no overwrite)", () => {
120
+ const generated = generateKeyPair(identity);
121
+ const beforePrivate = fs.readFileSync(identity, "utf8");
122
+ const beforePublic = fs.readFileSync(`${identity}.pub`, "utf8");
123
+
124
+ const result = ensureIdentityKeyPair(identity);
125
+ expect(result.created).toBe(false);
126
+ expect(result.keyPair).toEqual(generated);
127
+ expect(fs.readFileSync(identity, "utf8")).toBe(beforePrivate);
128
+ expect(fs.readFileSync(`${identity}.pub`, "utf8")).toBe(beforePublic);
129
+ });
67
130
  });
@@ -0,0 +1,85 @@
1
+ import { Command } from "commander";
2
+
3
+ const login = jest.fn().mockResolvedValue(undefined);
4
+ const registerIdentity = jest.fn().mockResolvedValue(undefined);
5
+ const ensureIdentityKeyPair = jest.fn();
6
+
7
+ jest.mock("../../../src/login", () => ({ login }));
8
+ jest.mock("../../../src/index", () => ({
9
+ embed: jest.fn(),
10
+ upload: jest.fn(),
11
+ download: jest.fn(),
12
+ purge: jest.fn(),
13
+ }));
14
+ jest.mock("../../../src/auth/registerIdentity", () => ({ registerIdentity }));
15
+ jest.mock("../../../src/auth/keyManager", () => ({ ensureIdentityKeyPair }));
16
+
17
+ import { addLoginCommand } from "../../../src/commands/misc";
18
+
19
+ describe("login command", () => {
20
+ let program: Command;
21
+ let logSpy: jest.SpyInstance;
22
+
23
+ beforeEach(() => {
24
+ jest.clearAllMocks();
25
+ program = new Command();
26
+ program.exitOverride();
27
+ addLoginCommand(program);
28
+ logSpy = jest.spyOn(console, "log").mockImplementation(() => undefined);
29
+ });
30
+
31
+ afterEach(() => {
32
+ logSpy.mockRestore();
33
+ });
34
+
35
+ it("supports --key-gen non-interactively and exits without login", async () => {
36
+ ensureIdentityKeyPair.mockReturnValue({
37
+ created: true,
38
+ keyPair: {
39
+ fingerprint: "SHA256:test",
40
+ privateKeyPath: "/keys/id_ed25519",
41
+ publicKeyPath: "/keys/id_ed25519.pub",
42
+ },
43
+ });
44
+
45
+ await program.parseAsync(["node", "knowhow", "login", "--key-gen"]);
46
+
47
+ expect(ensureIdentityKeyPair).toHaveBeenCalledWith(undefined);
48
+ expect(login).not.toHaveBeenCalled();
49
+ expect(registerIdentity).not.toHaveBeenCalled();
50
+
51
+ const output = logSpy.mock.calls.map((call) => call.join(" ")).join("\n");
52
+ expect(output).toContain("Generated CLI identity keypair");
53
+ expect(output).toContain("/keys/id_ed25519");
54
+ expect(output).toContain("/keys/id_ed25519.pub");
55
+ });
56
+
57
+ it("does not overwrite existing key when using --key-gen", async () => {
58
+ ensureIdentityKeyPair.mockReturnValue({
59
+ created: false,
60
+ keyPair: {
61
+ fingerprint: "SHA256:existing",
62
+ privateKeyPath: "/keys/id_ed25519",
63
+ publicKeyPath: "/keys/id_ed25519.pub",
64
+ },
65
+ });
66
+
67
+ await program.parseAsync(["node", "knowhow", "login", "--key-gen", "--identity", "/keys/id_ed25519"]);
68
+
69
+ expect(ensureIdentityKeyPair).toHaveBeenCalledWith("/keys/id_ed25519");
70
+ expect(login).not.toHaveBeenCalled();
71
+ expect(registerIdentity).not.toHaveBeenCalled();
72
+
73
+ const output = logSpy.mock.calls.map((call) => call.join(" ")).join("\n");
74
+ expect(output).toContain("CLI identity keypair already exists");
75
+ });
76
+
77
+ it("rejects incompatible flag combinations with --key-gen", async () => {
78
+ await expect(
79
+ program.parseAsync(["node", "knowhow", "login", "--key-gen", "--jwt"])
80
+ ).rejects.toThrow("--key-gen cannot be used with --jwt or --register-identity");
81
+
82
+ expect(login).not.toHaveBeenCalled();
83
+ expect(registerIdentity).not.toHaveBeenCalled();
84
+ });
85
+ });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tyvm/knowhow",
3
- "version": "0.0.150",
3
+ "version": "0.0.153",
4
4
  "description": "ai cli with plugins and agents",
5
5
  "main": "ts_build/src/index.js",
6
6
  "bin": {
@@ -11,4 +11,8 @@ export declare function keyPairExists(privateKeyPath?: string): boolean;
11
11
  export declare function generateKeyPair(privateKeyPath?: string): KeyPair;
12
12
  export declare function loadKeyPair(privateKeyPath?: string): KeyPair;
13
13
  export declare function getOrCreatePublicKey(privateKeyPath?: string): KeyPair;
14
+ export declare function ensureIdentityKeyPair(privateKeyPath?: string): {
15
+ keyPair: KeyPair;
16
+ created: boolean;
17
+ };
14
18
  export declare function signMessage(message: string, privateKeyPath?: string): string;
@@ -10,6 +10,7 @@ exports.keyPairExists = keyPairExists;
10
10
  exports.generateKeyPair = generateKeyPair;
11
11
  exports.loadKeyPair = loadKeyPair;
12
12
  exports.getOrCreatePublicKey = getOrCreatePublicKey;
13
+ exports.ensureIdentityKeyPair = ensureIdentityKeyPair;
13
14
  exports.signMessage = signMessage;
14
15
  const crypto_1 = __importDefault(require("crypto"));
15
16
  const fs_1 = __importDefault(require("fs"));
@@ -18,6 +19,7 @@ const path_1 = __importDefault(require("path"));
18
19
  const ED25519_KEY_TYPE = "ssh-ed25519";
19
20
  const ED25519_RAW_KEY_LENGTH = 32;
20
21
  const ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
22
+ const ED25519_PKCS8_PREFIX = Buffer.from("302e020100300506032b657004220420", "hex");
21
23
  function getKeyDir() {
22
24
  return path_1.default.join(os_1.default.homedir(), ".knowhow", "keys");
23
25
  }
@@ -76,6 +78,11 @@ function getOrCreatePublicKey(privateKeyPath) {
76
78
  ? loadKeyPair(privateKeyPath)
77
79
  : generateKeyPair(privateKeyPath);
78
80
  }
81
+ function ensureIdentityKeyPair(privateKeyPath) {
82
+ if (keyPairExists(privateKeyPath))
83
+ return { keyPair: loadKeyPair(privateKeyPath), created: false };
84
+ return { keyPair: generateKeyPair(privateKeyPath), created: true };
85
+ }
79
86
  function signMessage(message, privateKeyPath) {
80
87
  const privatePath = privateKeyPath ?? getDefaultPrivateKeyPath();
81
88
  if (!fs_1.default.existsSync(privatePath))
@@ -84,14 +91,35 @@ function signMessage(message, privateKeyPath) {
84
91
  }
85
92
  function readEd25519PrivateKey(privatePath) {
86
93
  let key;
94
+ const privateKeyContents = fs_1.default.readFileSync(privatePath, "utf8");
95
+ const openSshMetadata = parseOpenSshMetadata(privateKeyContents);
96
+ if (openSshMetadata?.encrypted) {
97
+ throw new Error(`Identity at ${privatePath} is an encrypted OpenSSH key. Use an unencrypted Ed25519 key for CLI auth (example: ssh-keygen -t ed25519 -N '' -f ${privatePath})`);
98
+ }
87
99
  try {
88
- key = crypto_1.default.createPrivateKey(fs_1.default.readFileSync(privatePath));
100
+ key = crypto_1.default.createPrivateKey({ key: privateKeyContents, format: "pem" });
89
101
  }
90
102
  catch {
91
- throw new Error(`Identity at ${privatePath} is not a supported PEM Ed25519 private key`);
103
+ if (openSshMetadata) {
104
+ if (openSshMetadata.algorithm && openSshMetadata.algorithm !== ED25519_KEY_TYPE) {
105
+ throw new Error(`Identity at ${privatePath} must be an OpenSSH Ed25519 key (found ${openSshMetadata.algorithm})`);
106
+ }
107
+ if (openSshMetadata.seed) {
108
+ key = createEd25519PrivateKeyFromSeed(openSshMetadata.seed, privatePath);
109
+ }
110
+ else {
111
+ throw new Error(`Identity at ${privatePath} must be a PKCS#8 Ed25519 private key or an unencrypted OpenSSH Ed25519 private key`);
112
+ }
113
+ return key;
114
+ }
115
+ throw new Error(`Identity at ${privatePath} must be a PKCS#8 Ed25519 private key or an unencrypted OpenSSH Ed25519 private key`);
92
116
  }
117
+ const detectedAlgorithm = key.asymmetricKeyType === "ed25519" ? openSshMetadata?.algorithm ?? "ed25519" : key.asymmetricKeyType;
93
118
  if (key.asymmetricKeyType !== "ed25519") {
94
- throw new Error(`Identity at ${privatePath} must be an Ed25519 private key`);
119
+ throw new Error(`Identity at ${privatePath} must be an Ed25519 private key (found ${detectedAlgorithm ?? "unknown"})`);
120
+ }
121
+ if (openSshMetadata?.algorithm && openSshMetadata.algorithm !== ED25519_KEY_TYPE) {
122
+ throw new Error(`Identity at ${privatePath} must be an OpenSSH Ed25519 key (found ${openSshMetadata.algorithm})`);
95
123
  }
96
124
  return key;
97
125
  }
@@ -142,4 +170,111 @@ function keyPairMetadata(privatePath, rawPublicKey) {
142
170
  fingerprint: `SHA256:${hash}`,
143
171
  };
144
172
  }
173
+ function createEd25519PrivateKeyFromSeed(seed, privatePath) {
174
+ if (seed.length !== ED25519_RAW_KEY_LENGTH) {
175
+ throw new Error(`Identity at ${privatePath} has an invalid OpenSSH Ed25519 private key payload`);
176
+ }
177
+ try {
178
+ const der = Buffer.concat([ED25519_PKCS8_PREFIX, seed]);
179
+ return crypto_1.default.createPrivateKey({ key: der, format: "der", type: "pkcs8" });
180
+ }
181
+ catch {
182
+ throw new Error(`Identity at ${privatePath} must be a PKCS#8 Ed25519 private key or an unencrypted OpenSSH Ed25519 private key`);
183
+ }
184
+ }
185
+ function parseOpenSshMetadata(privateKeyContents) {
186
+ const trimmed = privateKeyContents.trim();
187
+ if (!trimmed.startsWith("-----BEGIN OPENSSH PRIVATE KEY-----")) {
188
+ return undefined;
189
+ }
190
+ const body = trimmed
191
+ .replace("-----BEGIN OPENSSH PRIVATE KEY-----", "")
192
+ .replace("-----END OPENSSH PRIVATE KEY-----", "")
193
+ .replace(/\s+/g, "");
194
+ let buffer;
195
+ try {
196
+ buffer = Buffer.from(body, "base64");
197
+ }
198
+ catch {
199
+ return undefined;
200
+ }
201
+ let offset = 0;
202
+ const magic = Buffer.from("openssh-key-v1\0", "utf8");
203
+ if (buffer.length < magic.length || !buffer.subarray(0, magic.length).equals(magic)) {
204
+ return undefined;
205
+ }
206
+ offset += magic.length;
207
+ const readString = () => {
208
+ if (offset + 4 > buffer.length)
209
+ return undefined;
210
+ const length = buffer.readUInt32BE(offset);
211
+ offset += 4;
212
+ if (offset + length > buffer.length)
213
+ return undefined;
214
+ const value = buffer.subarray(offset, offset + length).toString("utf8");
215
+ offset += length;
216
+ return value;
217
+ };
218
+ const readBuffer = () => {
219
+ if (offset + 4 > buffer.length)
220
+ return undefined;
221
+ const length = buffer.readUInt32BE(offset);
222
+ offset += 4;
223
+ if (offset + length > buffer.length)
224
+ return undefined;
225
+ const value = buffer.subarray(offset, offset + length);
226
+ offset += length;
227
+ return value;
228
+ };
229
+ const ciphername = readString();
230
+ const kdfname = readString();
231
+ const kdfoptions = readBuffer();
232
+ if (!ciphername || !kdfname || !kdfoptions) {
233
+ return undefined;
234
+ }
235
+ if (offset + 4 > buffer.length)
236
+ return { encrypted: ciphername !== "none" || kdfname !== "none" };
237
+ const keyCount = buffer.readUInt32BE(offset);
238
+ offset += 4;
239
+ for (let i = 0; i < keyCount; i++) {
240
+ const skippedPublic = readBuffer();
241
+ if (!skippedPublic)
242
+ return { encrypted: ciphername !== "none" || kdfname !== "none" };
243
+ }
244
+ const privateBlock = readBuffer();
245
+ if (!privateBlock)
246
+ return { encrypted: ciphername !== "none" || kdfname !== "none" };
247
+ let privateOffset = 0;
248
+ const readPrivateString = () => {
249
+ if (privateOffset + 4 > privateBlock.length)
250
+ return undefined;
251
+ const length = privateBlock.readUInt32BE(privateOffset);
252
+ privateOffset += 4;
253
+ if (privateOffset + length > privateBlock.length)
254
+ return undefined;
255
+ const value = privateBlock.subarray(privateOffset, privateOffset + length).toString("utf8");
256
+ privateOffset += length;
257
+ return value;
258
+ };
259
+ const readPrivateBuffer = () => {
260
+ if (privateOffset + 4 > privateBlock.length)
261
+ return undefined;
262
+ const length = privateBlock.readUInt32BE(privateOffset);
263
+ privateOffset += 4;
264
+ if (privateOffset + length > privateBlock.length)
265
+ return undefined;
266
+ const value = privateBlock.subarray(privateOffset, privateOffset + length);
267
+ privateOffset += length;
268
+ return value;
269
+ };
270
+ privateOffset += 8;
271
+ const algorithm = readPrivateString();
272
+ let seed;
273
+ if (algorithm === ED25519_KEY_TYPE) {
274
+ readPrivateBuffer();
275
+ const privateConcat = readPrivateBuffer();
276
+ seed = privateConcat?.subarray(0, ED25519_RAW_KEY_LENGTH);
277
+ }
278
+ return { encrypted: ciphername !== "none" || kdfname !== "none", algorithm, seed };
279
+ }
145
280
  //# sourceMappingURL=keyManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keyManager.js","sourceRoot":"","sources":["../../../src/auth/keyManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keyManager.js","sourceRoot":"","sources":["../../../src/auth/keyManager.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ function decodeJwtPayload(jwt) {
29
29
  }
30
30
  function extractOrgIdFromJwt(jwt) {
31
31
  const payload = decodeJwtPayload(jwt);
32
- const orgId = payload["org"] ?? payload["orgId"] ?? payload["org_id"] ?? payload["organizationId"];
32
+ const orgId = payload.org ?? payload.orgId ?? payload.org_id ?? payload.organizationId;
33
33
  if (typeof orgId !== "string" || !orgId) {
34
34
  throw new Error("JWT does not contain an organization claim (expected org, orgId, org_id, or organizationId)");
35
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registerIdentity.js","sourceRoot":"","sources":["../../../src/auth/registerIdentity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registerIdentity.js","sourceRoot":"","sources":["../../../src/auth/registerIdentity.ts"],"names":[],"mappings":";;;;;AAcA,4CAYC;AAED,kDAOC;AAQD,4CAuBC;AAlED,4CAAoB;AACpB,gDAAwB;AACxB,6CAAoD;AACpD,uCAA8E;AAC9E,sCAAoD;AAUpD,SAAgB,gBAAgB,CAAC,GAAW;IAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAChF,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACpE,IAAI,CAAC;QACH,MAAM,OAAO,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,MAAM,IAAI,KAAK,EAAE,CAAC;QACzF,OAAO,OAAkC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,SAAgB,mBAAmB,CAAC,GAAW;IAC7C,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IACvF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,6FAA6F,CAAC,CAAC;IACjH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAQM,KAAK,UAAU,gBAAgB,CAAC,UAAmC,EAAE;IAC1E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,6BAA6B,CAAC;IAC9F,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAC7D,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,YAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1D,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;IAEjE,MAAM,KAAK,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAA,iCAAoB,EAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3D,MAAM,IAAA,2BAAiB,EAAC,SAAS,EAAE,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,MAAM,IAAA,8BAAoB,EAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACpF,IAAA,kBAAQ,EAAC,WAAW,CAAC,CAAC;IAEtB,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAS,GAAE,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,cAAc;QAAE,MAAM,CAAC,cAAc,GAAG,EAAE,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,QAA8B,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE,CAAC;QACrG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,MAAM,CAAC,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IACtF,MAAM,IAAA,qBAAY,EAAC,MAAM,CAAC,CAAC;IAE3B,OAAO,CAAC,GAAG,CAAC,oCAAoC,OAAO,CAAC,WAAW,UAAU,KAAK,EAAE,CAAC,CAAC;AACxF,CAAC"}
@@ -50,6 +50,7 @@ const generate_1 = require("../generate");
50
50
  const config_1 = require("../config");
51
51
  const login_1 = require("../login");
52
52
  const registerIdentity_1 = require("../auth/registerIdentity");
53
+ const keyManager_1 = require("../auth/keyManager");
53
54
  const KnowhowClient_1 = require("../services/KnowhowClient");
54
55
  const chat_1 = require("../chat");
55
56
  function addInitCommand(program) {
@@ -67,17 +68,34 @@ function addLoginCommand(program) {
67
68
  .option("--jwt", "Use manual JWT input instead of browser login")
68
69
  .option("-i, --identity <path>", "Ed25519 private key to use for public-key login")
69
70
  .option("--register-identity", "Register an Ed25519 identity using the JWT in .knowhow/.jwt")
71
+ .option("--key-gen", "Generate or validate the CLI Ed25519 identity keypair and exit")
70
72
  .option("--api-url <url>", "API base URL override (falls back to KNOWHOW_API_URL env)")
71
73
  .action(async (options) => {
74
+ if (options.keyGen) {
75
+ if (options.jwt || options.registerIdentity) {
76
+ throw new Error("--key-gen cannot be used with --jwt or --register-identity");
77
+ }
78
+ const { keyPair, created } = (0, keyManager_1.ensureIdentityKeyPair)(options.identity);
79
+ if (created) {
80
+ console.log(`✅ Generated CLI identity keypair: ${keyPair.fingerprint}`);
81
+ console.log(`Private key: ${keyPair.privateKeyPath}`);
82
+ console.log(`Public key: ${keyPair.publicKeyPath}`);
83
+ }
84
+ else {
85
+ console.log(`✅ CLI identity keypair already exists: ${keyPair.fingerprint}`);
86
+ console.log(`Private key: ${keyPair.privateKeyPath}`);
87
+ console.log(`Public key: ${keyPair.publicKeyPath}`);
88
+ }
89
+ return;
90
+ }
72
91
  if (options.registerIdentity) {
73
92
  await (0, registerIdentity_1.registerIdentity)({
74
93
  identityPath: options.identity,
75
94
  apiUrl: options.apiUrl,
76
95
  });
96
+ return;
77
97
  }
78
- else {
79
- await (0, login_1.login)(options.jwt, options.identity);
80
- }
98
+ await (0, login_1.login)(options.jwt, options.identity);
81
99
  });
82
100
  }
83
101
  function addUpdateCommand(program) {
@@ -1 +1 @@
1
- {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/commands/misc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/commands/misc.ts"],"names":[],"mappings":"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"}
@@ -143,8 +143,8 @@ async function spawnManaged(command, args = [], options = {}) {
143
143
  fs.mkdirSync(directory);
144
144
  const configPath = path.join(directory, "launch.json");
145
145
  fs.writeFileSync(configPath, JSON.stringify({ id, command, args, cwd, env: options.env || {}, background: options.background === true, parentProcessId: options.parentProcessId || null, parentPid: options.parentPid ?? process.pid, shell: options.shell === true, processesDir }, null, 2));
146
- const cliPath = path.resolve(__dirname, "..", "cli.js");
147
- const shim = (0, child_process_1.spawn)(process.execPath, [cliPath, "processes", "run", "--config", configPath], { cwd, detached: true, stdio: "ignore", env: process.env });
146
+ const shimPath = path.resolve(__dirname, "managedProcessShim.js");
147
+ const shim = (0, child_process_1.spawn)(process.execPath, [shimPath, configPath], { cwd, detached: true, stdio: "ignore", env: process.env });
148
148
  shim.unref();
149
149
  try {
150
150
  await waitForFile(path.join(directory, "status.json"), 5000);
@@ -1 +1 @@
1
- {"version":3,"file":"ProcessManager.js","sourceRoot":"","sources":["../../../src/processes/ProcessManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProcessManager.js","sourceRoot":"","sources":["../../../src/processes/ProcessManager.ts"],"names":[],"mappings":"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"}
@@ -164,4 +164,11 @@ async function runManagedProcessShim(configPath) {
164
164
  });
165
165
  }
166
166
  }
167
+ if (require.main === module) {
168
+ runManagedProcessShim(path.resolve(process.argv[2]))
169
+ .catch((error) => {
170
+ console.error(error);
171
+ process.exitCode = 1;
172
+ });
173
+ }
167
174
  //# sourceMappingURL=managedProcessShim.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"managedProcessShim.js","sourceRoot":"","sources":["../../../src/processes/managedProcessShim.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"managedProcessShim.js","sourceRoot":"","sources":["../../../src/processes/managedProcessShim.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,24 @@ const fs_1 = __importDefault(require("fs"));
8
8
  const os_1 = __importDefault(require("os"));
9
9
  const path_1 = __importDefault(require("path"));
10
10
  const keyManager_1 = require("../../../src/auth/keyManager");
11
+ const OPENSSH_ED25519_PRIVATE_KEY = `-----BEGIN OPENSSH PRIVATE KEY-----
12
+ b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
13
+ QyNTUxOQAAACD/E7YSDZcV7usL3Ej3SSvGNVuNMu1hYFOpHjQaCodvIgAAAIgKqccyCqnH
14
+ MgAAAAtzc2gtZWQyNTUxOQAAACD/E7YSDZcV7usL3Ej3SSvGNVuNMu1hYFOpHjQaCodvIg
15
+ AAAECC40JKj3sb9Q3KsA9wAKeLbUwazUi7cuBiDfuJHDybtf8TthINlxXu6wvcSPdJK8Y1
16
+ W40y7WFgU6keNBoKh28iAAAABHRlc3QB
17
+ -----END OPENSSH PRIVATE KEY-----
18
+ `;
19
+ const OPENSSH_ED25519_PUBLIC_KEY = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP8TthINlxXu6wvcSPdJK8Y1W40y7WFgU6keNBoKh28i test\n";
20
+ const OPENSSH_ENCRYPTED_ED25519_PRIVATE_KEY = `-----BEGIN OPENSSH PRIVATE KEY-----
21
+ b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABAiFkZE2t
22
+ 9UBWLQLB8sAuG7AAAAGAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAID2OnkCi/hq0EH9E
23
+ yBf1n4FXRDw16RYyDAL0pbbRWh1JAAAAkHNPoqbcZcef7FZY+dFTRTODyAMPL4gyzOxGLE
24
+ JffXux9KUTPBrCy+xfScoAHq9JFKrspli5h5Z6PyJ7Dp2NNJPOzEaF92fv6989AETm3X3X
25
+ 2pOUvtPMJz29C1MO7hXHlReIWqF6nkaDGGcNEZMZ3xHI4ypB/lfceH6A1IjxZEa2BXJfJe
26
+ y6h8co4T89tJdubQ==
27
+ -----END OPENSSH PRIVATE KEY-----
28
+ `;
11
29
  describe("keyManager", () => {
12
30
  let directory;
13
31
  let identity;
@@ -29,6 +47,17 @@ describe("keyManager", () => {
29
47
  const publicKey = crypto_1.default.createPublicKey(fs_1.default.readFileSync(identity));
30
48
  expect(crypto_1.default.verify(null, Buffer.from(challengeMessage), publicKey, Buffer.from(signature, "base64"))).toBe(true);
31
49
  });
50
+ it("accepts default unencrypted OpenSSH Ed25519 private keys", () => {
51
+ fs_1.default.writeFileSync(identity, OPENSSH_ED25519_PRIVATE_KEY);
52
+ fs_1.default.writeFileSync(`${identity}.pub`, OPENSSH_ED25519_PUBLIC_KEY);
53
+ const loaded = (0, keyManager_1.loadKeyPair)(identity);
54
+ expect(loaded.publicKeyBase64).toBe("/xO2Eg2XFe7rC9xI90krxjVbjTLtYWB TqR40GgqHbyI=".replace(/\s+/g, ""));
55
+ const signature = (0, keyManager_1.signMessage)("challenge", identity);
56
+ const spkiPrefix = Buffer.from("302a300506032b6570032100", "hex");
57
+ const publicKeyDer = Buffer.concat([spkiPrefix, Buffer.from(loaded.publicKeyBase64, "base64")]);
58
+ const publicKey = crypto_1.default.createPublicKey({ key: publicKeyDer, format: "der", type: "spki" });
59
+ expect(crypto_1.default.verify(null, Buffer.from("challenge"), publicKey, Buffer.from(signature, "base64"))).toBe(true);
60
+ });
32
61
  it("loads legacy raw-base64 public keys but rejects non-Ed25519 identities", () => {
33
62
  const generated = (0, keyManager_1.generateKeyPair)(identity);
34
63
  fs_1.default.writeFileSync(`${identity}.pub`, generated.publicKeyBase64);
@@ -43,10 +72,25 @@ describe("keyManager", () => {
43
72
  fs_1.default.writeFileSync(`${rsaIdentity}.pub`, generated.publicKeyBase64);
44
73
  expect(() => (0, keyManager_1.loadKeyPair)(rsaIdentity)).toThrow("must be an Ed25519 private key");
45
74
  });
75
+ it("rejects encrypted OpenSSH keys with a clear error", () => {
76
+ fs_1.default.writeFileSync(identity, OPENSSH_ENCRYPTED_ED25519_PRIVATE_KEY);
77
+ fs_1.default.writeFileSync(`${identity}.pub`, OPENSSH_ED25519_PUBLIC_KEY);
78
+ expect(() => (0, keyManager_1.loadKeyPair)(identity)).toThrow("encrypted OpenSSH key");
79
+ });
46
80
  it("does not overwrite a partial identity", () => {
47
81
  fs_1.default.writeFileSync(identity, "existing key");
48
82
  expect(() => (0, keyManager_1.generateKeyPair)(identity)).toThrow("a key file already exists");
49
83
  expect(fs_1.default.readFileSync(identity, "utf8")).toBe("existing key");
50
84
  });
85
+ it("ensureIdentityKeyPair is safe for existing keys (no overwrite)", () => {
86
+ const generated = (0, keyManager_1.generateKeyPair)(identity);
87
+ const beforePrivate = fs_1.default.readFileSync(identity, "utf8");
88
+ const beforePublic = fs_1.default.readFileSync(`${identity}.pub`, "utf8");
89
+ const result = (0, keyManager_1.ensureIdentityKeyPair)(identity);
90
+ expect(result.created).toBe(false);
91
+ expect(result.keyPair).toEqual(generated);
92
+ expect(fs_1.default.readFileSync(identity, "utf8")).toBe(beforePrivate);
93
+ expect(fs_1.default.readFileSync(`${identity}.pub`, "utf8")).toBe(beforePublic);
94
+ });
51
95
  });
52
96
  //# sourceMappingURL=keyManager.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keyManager.test.js","sourceRoot":"","sources":["../../../../tests/unit/auth/keyManager.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keyManager.test.js","sourceRoot":"","sources":["../../../../tests/unit/auth/keyManager.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const commander_1 = require("commander");
4
+ const login = jest.fn().mockResolvedValue(undefined);
5
+ const registerIdentity = jest.fn().mockResolvedValue(undefined);
6
+ const ensureIdentityKeyPair = jest.fn();
7
+ jest.mock("../../../src/login", () => ({ login }));
8
+ jest.mock("../../../src/index", () => ({
9
+ embed: jest.fn(),
10
+ upload: jest.fn(),
11
+ download: jest.fn(),
12
+ purge: jest.fn(),
13
+ }));
14
+ jest.mock("../../../src/auth/registerIdentity", () => ({ registerIdentity }));
15
+ jest.mock("../../../src/auth/keyManager", () => ({ ensureIdentityKeyPair }));
16
+ const misc_1 = require("../../../src/commands/misc");
17
+ describe("login command", () => {
18
+ let program;
19
+ let logSpy;
20
+ beforeEach(() => {
21
+ jest.clearAllMocks();
22
+ program = new commander_1.Command();
23
+ program.exitOverride();
24
+ (0, misc_1.addLoginCommand)(program);
25
+ logSpy = jest.spyOn(console, "log").mockImplementation(() => undefined);
26
+ });
27
+ afterEach(() => {
28
+ logSpy.mockRestore();
29
+ });
30
+ it("supports --key-gen non-interactively and exits without login", async () => {
31
+ ensureIdentityKeyPair.mockReturnValue({
32
+ created: true,
33
+ keyPair: {
34
+ fingerprint: "SHA256:test",
35
+ privateKeyPath: "/keys/id_ed25519",
36
+ publicKeyPath: "/keys/id_ed25519.pub",
37
+ },
38
+ });
39
+ await program.parseAsync(["node", "knowhow", "login", "--key-gen"]);
40
+ expect(ensureIdentityKeyPair).toHaveBeenCalledWith(undefined);
41
+ expect(login).not.toHaveBeenCalled();
42
+ expect(registerIdentity).not.toHaveBeenCalled();
43
+ const output = logSpy.mock.calls.map((call) => call.join(" ")).join("\n");
44
+ expect(output).toContain("Generated CLI identity keypair");
45
+ expect(output).toContain("/keys/id_ed25519");
46
+ expect(output).toContain("/keys/id_ed25519.pub");
47
+ });
48
+ it("does not overwrite existing key when using --key-gen", async () => {
49
+ ensureIdentityKeyPair.mockReturnValue({
50
+ created: false,
51
+ keyPair: {
52
+ fingerprint: "SHA256:existing",
53
+ privateKeyPath: "/keys/id_ed25519",
54
+ publicKeyPath: "/keys/id_ed25519.pub",
55
+ },
56
+ });
57
+ await program.parseAsync(["node", "knowhow", "login", "--key-gen", "--identity", "/keys/id_ed25519"]);
58
+ expect(ensureIdentityKeyPair).toHaveBeenCalledWith("/keys/id_ed25519");
59
+ expect(login).not.toHaveBeenCalled();
60
+ expect(registerIdentity).not.toHaveBeenCalled();
61
+ const output = logSpy.mock.calls.map((call) => call.join(" ")).join("\n");
62
+ expect(output).toContain("CLI identity keypair already exists");
63
+ });
64
+ it("rejects incompatible flag combinations with --key-gen", async () => {
65
+ await expect(program.parseAsync(["node", "knowhow", "login", "--key-gen", "--jwt"])).rejects.toThrow("--key-gen cannot be used with --jwt or --register-identity");
66
+ expect(login).not.toHaveBeenCalled();
67
+ expect(registerIdentity).not.toHaveBeenCalled();
68
+ });
69
+ });
70
+ //# sourceMappingURL=misc.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.test.js","sourceRoot":"","sources":["../../../../tests/unit/commands/misc.test.ts"],"names":[],"mappings":"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"}