@p0security/cli 0.18.13 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../../src/commands/shared/request.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,2CAAwE;AACxE,6CAAkD;AAClD,+CAAwD;AAOxD,2CAAiC;AAGpB,QAAA,2BAA2B,GACtC,sCAAsC,CAAC;AAC5B,QAAA,uBAAuB,GAAG,wBAAwB,CAAC;AACnD,QAAA,2BAA2B,GACtC,wCAAwC,CAAC;AAE3C,MAAM,QAAQ,GAAG,EAAE,OAAO,EAAE,2BAA2B,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACnE,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAC/D,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,mCAAmC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAE1E,MAAM,0BAA0B,GAAG;IACjC,QAAQ;IACR,iBAAiB,EAAE,QAAQ;IAC3B,IAAI,EAAE,QAAQ;IACd,aAAa,EAAE,QAAQ;IACvB,MAAM;IACN,OAAO;CACR,CAAC;AAEF,MAAM,iBAAiB,GAAG,CACxB,MAAW,EACwC,EAAE,CACrD,MAAM,IAAI,0BAA0B,CAAC;AAEhC,MAAM,WAAW,GAAG,CAAI,KAAoB,EAAE,EAAE,CACrD,KAAK;KACF,mBAAmB,CAAC,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC;KACxD,IAAI,CAAC,KAAK,CAAC,CAAC,4HAA4H;KACxI,MAAM,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,sCAAsC;CACjD,CAAC;KACD,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,0BAA0B,EAAE,CAAC;KAC1E,MAAM,CAAC,WAAW,EAAE;IACnB,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,EAAc;CACxB,CAAC,CAAC;AAfM,QAAA,WAAW,eAejB;AAEP,MAAM,WAAW,GAAG,CAClB,UAA4C,EAC5C,UAAmB,EACnB,EAAE;IACF,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IAC9B,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE;QAC7B,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK;YACnC,CAAC,CAAC,GAAG,OAAO,KAAK,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE;YAC3C,CAAC,CAAC,OAAO,CAAC;QACZ,IAAI,IAAI,KAAK,CAAC,IAAI,UAAU;YAAE,IAAA,cAAM,EAAC,YAAY,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;KACb;SAAM;QACL,IAAA,cAAM,EAAC,iDAAiD,CAAC,CAAC;QAC1D,OAAO,CAAC,CAAC;KACV;AACH,CAAC,CAAC;AAEK,MAAM,OAAO,GAClB,CAAC,OAA4B,EAAE,EAAE,CACjC,CACE,IAIE,EACF,KAAa,EACb,OAGC,EACwC,EAAE;IAC3C,MAAM,aAAa,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC,MAAM,IAAA,mBAAY,GAAE,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,CAAC,OAAgB,EAAE,EAAE;QACzC,QAAQ,OAAO,EAAE;YACf,KAAK,mBAAmB;gBACtB,OAAO,2BAA2B,CAAC;YACrC;gBACE,OAAO,mBAAmB,CAAC;SAC9B;IACH,CAAC,CAAC;IACF,MAAM,iBAAiB,GAAG,CACxB,OAAgD,EAChD,EAAE;QACF,OAAO,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KAAI,OAAO;YAChC,CAAC,CAAC,MAAM,IAAA,iBAAS,EAAC,aAAa,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,EAAE,OAAO,CAAC;YAC3D,CAAC,CAAC,MAAM,OAAO,CAAC;IACpB,CAAC,CAAA,CAAC;IACF,MAAM,eAAe,GAAG,CACtB,IAAoC,EACqB,EAAE;QAC3D,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE;YACxD,MAAM,gBAAgB,GACpB,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAA;gBACjB,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,MAAK,KAAK;gBAC1B,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,MAAK,mBAAmB;oBACvC,CAAC,IAAI,CAAC,aAAa;oBACnB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACxB,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;SACnC;aAAM;YACL,MAAM,IAAI,CAAC;SACZ;IACH,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,GAAS,EAAE;QAC/B,MAAM,mBAAmB,GAAG,IAAA,kBAAY,EACtC,aAAa,EACb,IAAI,EACJ,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAC7B,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;QAC9D,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,gBAAgB;YAAE,IAAA,cAAM,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC,CAAA,CAAC;IACF,MAAM,uBAAuB,GAAG,GAAS,EAAE;;QACzC,MAAM,8BAA8B,GAAG,IAAA,2BAAqB,EAE1D,aAAa,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,6BAA6B,GAAG,GAAS,EAAE;YAC/C,MAAM,cAAc,GAAG,MAAM,8BAA8B,CAAC,IAAI,EAAE,CAAC;YACnE,IAAI,cAAc,CAAC,IAAI,EAAE;gBACvB,OAAO,SAAS,CAAC;aAClB;YACD,OAAO,cAAc,CAAC,KAAK,CAAC;QAC9B,CAAC,CAAA,CAAC;QACF,MAAM,UAAU,GAAG,MAAM,iBAAiB,CACxC,6BAA6B,EAAE,CAChC,CAAC;QACF,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QAC/D,IAAI,gBAAgB,EAAE;YACpB,IAAA,cAAM,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrB,IAAA,cAAM,EAAC,2DAA2D,CAAC,CAAC;SACrE;;YACD,KAA8B,eAAA,mCAAA,cAAA,8BAA8B,CAAA,oCAAA;gBAA9B,8CAA8B;gBAA9B,WAA8B;;oBAAjD,MAAM,SAAS,KAAA,CAAA;oBACxB,IAAI,CAAC,SAAS,EAAE;wBACd,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;qBAC5D;oBACD,MAAM,IAAI,GAAG,WAAW,CACtB,SAAS,CAAC,OAA2C,EACrD,gBAAgB,CACjB,CAAC;oBACF,IAAI,IAAI,EAAE;wBACR,gBAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACf,OAAO,SAAS,CAAC;qBAClB;oBACD,OAAO,SAAS,CAAC;;;;;aAClB;;;;;;;;;QACD,MAAM,IAAI,CAAC;IACb,CAAC,CAAA,CAAC;IACF,IAAI;QACF,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC,CAAC;KACzE;IAAC,OAAO,KAAU,EAAE;QACnB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE;YAC3D,IAAA,cAAM,EAAC,iDAAiD,CAAC,CAAC;SAC3D;QACD,IACE,KAAK,YAAY,KAAK;YACtB,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,EAC5D;YACA,IAAA,cAAM,EAAC,kDAAkD,CAAC,CAAC;SAC5D;QACD,MAAM,KAAK,CAAC;KACb;AACH,CAAC,CAAA,CAAC;AAzGS,QAAA,OAAO,WAyGhB;AAEG,MAAM,gBAAgB,GAAG,CAC9B,IAGE,EACF,KAAY,EACZ,EAAE;IACF,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAO,EAAC,SAAS,CAAC,iCAAM,IAAI,KAAE,IAAI,EAAE,IAAI,KAAI,KAAK,EAAE;YACxE,OAAO,EAAE,mBAAmB;SAC7B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,EAAE;YACb,IAAA,cAAM,EAAC,uCAAuC,CAAC,CAAC;YAChD,OAAO;SACR;QAED,MAAM,EAAE,aAAa,EAAE,GAAG,QAAQ,CAAC;QAEnC,IAAA,cAAM,EACJ,CAAC,aAAa,CAAC,CAAC,CAAC,mCAA2B,CAAC,CAAC,CAAC,+BAAuB,CACvE,CAAC;KACH;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,KAAK,KAAK,mCAA2B,EAAE;YACzC,IAAA,cAAM,EAAC,+BAAuB,CAAC,CAAC;SACjC;aAAM;YACL,MAAM,KAAK,CAAC;SACb;KACF;AACH,CAAC,CAAA,CAAC;AA7BW,QAAA,gBAAgB,oBA6B3B"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../../src/commands/shared/request.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,10 @@ export type SshProxyCommandArgs = {
32
32
  identityFile: string;
33
33
  };
34
34
  export type CommandArgs = ScpCommandArgs | SshCommandArgs;
35
+ export type SshRequestOptions = {
36
+ approvedOnly?: boolean;
37
+ quiet?: boolean;
38
+ };
35
39
  export type SshAdditionalSetup = {
36
40
  /** A list of SSH configuration options, as would be used after '-o' in an SSH command */
37
41
  sshOptions: string[];
@@ -47,13 +51,13 @@ export declare const isSudoCommand: (args: {
47
51
  sudo?: boolean;
48
52
  command?: string;
49
53
  }) => boolean;
50
- export declare const provisionRequest: (authn: Authn, args: yargs.ArgumentsCamelCase<BaseSshCommandArgs>, destination: string, approvedOnly?: boolean, quiet?: boolean) => Promise<{
54
+ export declare const provisionRequest: (authn: Authn, args: yargs.ArgumentsCamelCase<BaseSshCommandArgs>, destination: string, options?: SshRequestOptions) => Promise<{
51
55
  requestId: string;
52
56
  provisionedRequest: PermissionRequest<PluginSshRequest>;
53
57
  publicKey: string;
54
58
  privateKey: string;
55
59
  } | undefined>;
56
- export declare const prepareRequest: (authn: Authn, args: yargs.ArgumentsCamelCase<BaseSshCommandArgs>, destination: string, approvedOnly?: boolean, quiet?: boolean) => Promise<{
60
+ export declare const prepareRequest: (authn: Authn, args: yargs.ArgumentsCamelCase<BaseSshCommandArgs>, destination: string, options?: SshRequestOptions) => Promise<{
57
61
  request: any;
58
62
  sshProvider: SshProvider<any, any, any, any>;
59
63
  provisionedRequest: PermissionRequest<PluginSshRequest>;
@@ -51,41 +51,59 @@ const validateSshInstall = (authn, args) => __awaiter(void 0, void 0, void 0, fu
51
51
  throw "This organization is not configured for SSH access via the P0 CLI";
52
52
  }
53
53
  });
54
- const pluginToCliRequest = (request, options) => __awaiter(void 0, void 0, void 0, function* () {
55
- return yield exports.SSH_PROVIDERS[request.permission.provider].toCliRequest(request, options);
56
- });
57
54
  const isSudoCommand = (args) => args.sudo || args.command === "sudo";
58
55
  exports.isSudoCommand = isSudoCommand;
59
- const provisionRequest = (authn, args, destination, approvedOnly, quiet) => __awaiter(void 0, void 0, void 0, function* () {
56
+ const provisionRequest = (authn, args, destination, options) => __awaiter(void 0, void 0, void 0, function* () {
60
57
  yield validateSshInstall(authn, args);
61
58
  const { publicKey, privateKey } = yield (0, keys_1.createKeyPair)();
62
- const response = yield (0, request_1.request)("request")(Object.assign(Object.assign({}, (0, lodash_1.pick)(args, "$0", "_")), { arguments: [
63
- "ssh",
64
- "session",
65
- destination,
66
- "--public-key",
67
- publicKey,
68
- ...(approvedOnly ? ["--approved"] : []),
69
- ...(args.provider ? ["--provider", args.provider] : []),
70
- ...((0, exports.isSudoCommand)(args) ? ["--sudo"] : []),
71
- ...(args.reason ? ["--reason", args.reason] : []),
72
- ...(args.parent ? ["--parent", args.parent] : []),
73
- ], wait: true, debug: args.debug }), authn, { message: quiet ? "quiet" : "approval-required" });
59
+ const makeRequest = (requestOptions) => __awaiter(void 0, void 0, void 0, function* () {
60
+ return yield (0, request_1.request)("request")(Object.assign(Object.assign({}, (0, lodash_1.pick)(args, "$0", "_")), { arguments: [
61
+ "ssh",
62
+ "session",
63
+ destination,
64
+ "--public-key",
65
+ publicKey,
66
+ ...((options === null || options === void 0 ? void 0 : options.approvedOnly) ? ["--approved"] : []),
67
+ ...(args.provider ? ["--provider", args.provider] : []),
68
+ ...((requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.forceSudo) || (0, exports.isSudoCommand)(args)
69
+ ? ["--sudo"]
70
+ : []),
71
+ ...(args.reason ? ["--reason", args.reason] : []),
72
+ ...(args.parent ? ["--parent", args.parent] : []),
73
+ ], wait: true, debug: args.debug }), authn, { message: (options === null || options === void 0 ? void 0 : options.quiet) ? "quiet" : "approval-required" });
74
+ });
75
+ let response;
76
+ if (options === null || options === void 0 ? void 0 : options.approvedOnly) {
77
+ // Try first with sudo
78
+ try {
79
+ response = yield makeRequest({ forceSudo: true });
80
+ }
81
+ catch (error) {
82
+ // If that fails, try without sudo
83
+ if (args.debug) {
84
+ (0, stdio_1.print2)("Request with sudo failed, retrying without sudo");
85
+ }
86
+ response = yield makeRequest();
87
+ }
88
+ }
89
+ else {
90
+ // Normal behavior when not approvedOnly
91
+ response = yield makeRequest();
92
+ }
74
93
  if (!response) {
75
- if (!quiet) {
94
+ if (!(options === null || options === void 0 ? void 0 : options.quiet)) {
76
95
  (0, stdio_1.print2)("Did not receive access ID from server");
77
96
  }
78
97
  return;
79
98
  }
80
99
  const { id, isPreexisting } = response;
81
- if (!isPreexisting)
82
- (0, stdio_1.print2)("Waiting for access to be provisioned");
83
- else
84
- (0, stdio_1.print2)("Existing access found. Connecting to instance.");
100
+ const message = isPreexisting
101
+ ? "Existing access found. Connecting to instance."
102
+ : "Waiting for access to be provisioned";
103
+ (0, stdio_1.print2)(message);
85
104
  const result = yield (0, _1.decodeProvisionStatus)(response.request);
86
- if (!result) {
105
+ if (!result)
87
106
  typescript_1.sys.exit(1);
88
- }
89
107
  return {
90
108
  requestId: id,
91
109
  provisionedRequest: response.request,
@@ -94,9 +112,12 @@ const provisionRequest = (authn, args, destination, approvedOnly, quiet) => __aw
94
112
  };
95
113
  });
96
114
  exports.provisionRequest = provisionRequest;
97
- const prepareRequest = (authn, args, destination, approvedOnly, quiet) => __awaiter(void 0, void 0, void 0, function* () {
115
+ const pluginToCliRequest = (request, options) => __awaiter(void 0, void 0, void 0, function* () {
116
+ return yield exports.SSH_PROVIDERS[request.permission.provider].toCliRequest(request, options);
117
+ });
118
+ const prepareRequest = (authn, args, destination, options) => __awaiter(void 0, void 0, void 0, function* () {
98
119
  var _a, _b;
99
- const result = yield (0, exports.provisionRequest)(authn, args, destination, approvedOnly, quiet);
120
+ const result = yield (0, exports.provisionRequest)(authn, args, destination, options);
100
121
  if (!result) {
101
122
  throw `Server did not return a request id. ${(0, config_1.getContactMessage)()}`;
102
123
  }
@@ -104,10 +125,9 @@ const prepareRequest = (authn, args, destination, approvedOnly, quiet) => __awai
104
125
  const sshProvider = exports.SSH_PROVIDERS[provisionedRequest.permission.provider];
105
126
  yield ((_a = sshProvider.submitPublicKey) === null || _a === void 0 ? void 0 : _a.call(sshProvider, authn, provisionedRequest, requestId, publicKey));
106
127
  yield sshProvider.ensureInstall();
107
- const options = { debug: args.debug };
108
- const cliRequest = yield pluginToCliRequest(provisionedRequest, options);
128
+ const cliRequest = yield pluginToCliRequest(provisionedRequest, args);
109
129
  const request = sshProvider.requestToSsh(cliRequest);
110
- const sshHostKeys = yield ((_b = sshProvider.saveHostKeys) === null || _b === void 0 ? void 0 : _b.call(sshProvider, request, options));
130
+ const sshHostKeys = yield ((_b = sshProvider.saveHostKeys) === null || _b === void 0 ? void 0 : _b.call(sshProvider, request, args));
111
131
  return Object.assign(Object.assign({}, result), { request, sshProvider, provisionedRequest, sshHostKeys });
112
132
  });
113
133
  exports.prepareRequest = prepareRequest;
@@ -1 +1 @@
1
- {"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../../src/commands/shared/ssh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../../../src/commands/shared/ssh.ts"],"names":[],"mappings":"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"}
@@ -92,7 +92,10 @@ const sshResolveAction = (args) => __awaiter(void 0, void 0, void 0, function* (
92
92
  noRefresh: true,
93
93
  debug: args.debug,
94
94
  }).catch(silentlyExit);
95
- const { request, requestId, provisionedRequest, sshHostKeys } = yield (0, ssh_1.prepareRequest)(authn, args, args.destination, true, args.quiet).catch(requestErrorHandler);
95
+ const { request, requestId, provisionedRequest, sshHostKeys } = yield (0, ssh_1.prepareRequest)(authn, args, args.destination, {
96
+ approvedOnly: true,
97
+ quiet: args.quiet,
98
+ }).catch(requestErrorHandler);
96
99
  const sshProvider = ssh_1.SSH_PROVIDERS[provisionedRequest.permission.provider];
97
100
  if (args.debug) {
98
101
  (0, stdio_1.print2)("Generating Keys");
@@ -1 +1 @@
1
- {"version":3,"file":"ssh-resolve.js","sourceRoot":"","sources":["../../../src/commands/ssh-resolve.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,uDAA2D;AAC3D,yCAAkD;AAClD,0CAA+C;AAC/C,4CAA0C;AAC1C,kCAA2E;AAC3E,sCAIsB;AACtB,4CAAoB;AACpB,gDAAwB;AACxB,8DAA8B;AAC9B,2CAAiC;AAGjC,MAAM,UAAU,GAAG,QAAQ,CAAC;AAErB,MAAM,iBAAiB,GAAG,CAAC,KAAiB,EAAE,EAAE,CACrD,KAAK,CAAC,OAAO,CACX,2BAA2B,EAC3B,KAAK,EACL,CAAC,KAAK,EAAE,EAAE,CACR,KAAK;KACF,UAAU,CAAC,aAAa,EAAE;IACzB,IAAI,EAAE,QAAQ;IACd,YAAY,EAAE,IAAI;CACnB,CAAC;KACD,MAAM,CAAC,QAAQ,EAAE;IAChB,IAAI,EAAE,QAAQ;IACd,QAAQ,EACN,qGAAqG;CACxG,CAAC;KACD,MAAM,CAAC,UAAU,EAAE;IAClB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,iDAAiD;IAC3D,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC;CACnD,CAAC;KACD,MAAM,CAAC,OAAO,EAAE;IACf,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,0BAA0B;CACrC,CAAC;KACD,MAAM,CAAC,OAAO,EAAE;IACf,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,SAAS;IACf,QAAQ,EAAE,iBAAiB;CAC5B,CAAC;KACD,MAAM,CAAC,QAAQ,EAAE;IAChB,QAAQ,EAAE,yBAAyB;IACnC,IAAI,EAAE,QAAQ;CACf,CAAC;KACD,GAAG,CAAC,UAAU,CAAC,EAEpB,gBAAgB,CACjB,CAAC;AApCS,QAAA,iBAAiB,qBAoC1B;AAEJ;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAG,CACvB,IAAqD,EACrD,EAAE;;IACF,MAAM,YAAY,GAAG,IAAA,kCAA2B,EAAC,MAAA,IAAI,CAAC,KAAK,mCAAI,KAAK,CAAC,CAAC;IAEtE,MAAM,mBAAmB,GAAG,CAAC,GAAQ,EAAE,EAAE;QACvC,IACE,OAAO,GAAG,KAAK,QAAQ;YACvB,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAChD;YACA,IAAA,cAAM,EACJ,kBAAkB,UAAU,iHAAiH,CAC9I,CAAC;SACH;QAED,IACE,OAAO,GAAG,KAAK,QAAQ;YACvB,GAAG,CAAC,UAAU,CAAC,uCAAuC,CAAC,EACvD;YACA,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAA,cAAM,EAAC,GAAG,CAAC,CAAC;aACb;YACD,gBAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACb;QAED,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,IAAA,mBAAY,EAAC;QAC/B,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAEvB,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,WAAW,EAAE,GAC3D,MAAM,IAAA,oBAAc,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CACzE,mBAAmB,CACpB,CAAC;IAEJ,MAAM,WAAW,GAAG,mBAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE1E,IAAI,IAAI,CAAC,KAAK,EAAE;QACd,IAAA,cAAM,EAAC,iBAAiB,CAAC,CAAC;KAC3B;IACD,MAAM,IAAI,GAAG,MAAM,CAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,YAAY,4DAC1C,KAAK,EACL,kBAAkB,CAAC,UAAU,CAAC,QAAQ,EACtC;QACE,SAAS;QACT,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CACF,CAAA,CAAC;IAEF,MAAM,OAAO,GAAG,qBAAG,CAAC,QAAQ,EAAE,CAAC;IAE/B,IAAI,IAAI,CAAC,KAAK,EAAE;QACd,IAAA,cAAM,EAAC,qDAAqD,CAAC,CAAC;KAC/D;IACD,YAAE,CAAC,aAAa,CACd,OAAO,CAAC,IAAI,EACZ,IAAI,CAAC,SAAS,iCAAM,OAAO,KAAE,SAAS,KAAI,IAAI,EAAE,CAAC,CAAC,CACnD,CAAC;IAEF,MAAM,YAAY,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,mCAAI,uBAAgB,CAAC;IAC9D,MAAM,eAAe,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe;QAC3C,CAAC,CAAC,mBAAmB,IAAI,CAAC,eAAe,EAAE;QAC3C,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,YAAY,GAAG,WAAW;QAC9B,CAAC,CAAC,sBAAsB,WAAW,CAAC,IAAI,EAAE;QAC1C,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,KAAK,GAAG,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,mCAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,CAAC;IAEhD,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,gBAAgB,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE1D,MAAM,OAAO,GAAG,IAAA,iBAAU,GAAE,CAAC;IAE7B,gGAAgG;IAChG,4GAA4G;IAC5G,MAAM,UAAU,GAAG,IAAA,gCAAkB,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAExD,sFAAsF;IACtF,4CAA4C;IAC5C,sFAAsF;IACtF,uFAAuF;IACvF,2FAA2F;IAC3F,MAAM,IAAI,GAAG,QAAQ,IAAI,CAAC,WAAW;aAC1B,IAAI,CAAC,WAAW;SACpB,OAAO,CAAC,aAAa;iBACb,YAAY;IACzB,eAAe;;iBAEF,OAAO,sCAAsC,kBAAkB,CAAC,UAAU,CAAC,QAAQ,oBAAoB,YAAY,mBAAmB,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;IAC9L,YAAY;IACZ,YAAY;CACf,CAAC;IAEA,MAAM,YAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAI,CAAC,IAAI,CAAC,cAAO,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE;QAC5D,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAC9B,cAAO,EACP,KAAK,EACL,SAAS,EACT,GAAG,UAAU,SAAS,CACvB,CAAC;IAEF,IAAI,IAAI,CAAC,KAAK,EAAE;QACd,IAAA,cAAM,EAAC,yBAAyB,CAAC,CAAC;QAClC,IAAA,cAAM,EAAC,IAAI,CAAC,CAAC;KACd;IACD,YAAE,CAAC,aAAa,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC,CAAA,CAAC"}
1
+ {"version":3,"file":"ssh-resolve.js","sourceRoot":"","sources":["../../../src/commands/ssh-resolve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /// <reference types="node" />
2
+ /** Copyright © 2024-present P0 Security
3
+
4
+ This file is part of @p0security/cli
5
+
6
+ @p0security/cli is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License.
7
+
8
+ @p0security/cli is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
9
+
10
+ You should have received a copy of the GNU General Public License along with @p0security/cli. If not, see <https://www.gnu.org/licenses/>.
11
+ **/
12
+ import * as crypto from "crypto";
13
+ /**
14
+ * Convert a crypto.KeyObject RSA public key to OpenSSH "ssh-rsa ..."
15
+ *
16
+ * The "blob" is a sequence of length-prefixed strings:
17
+ * string "ssh-rsa"
18
+ * mpint e
19
+ * mpint n
20
+ *
21
+ * After building that blob, you base64 it and prepend ssh-rsa (plus an optional comment).
22
+ * See https://datatracker.ietf.org/doc/html/rfc4253#section-6.6
23
+ */
24
+ export declare function toOpenSshFormat(keyObject: crypto.KeyObject, comment?: string): string;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toOpenSshFormat = void 0;
4
+ function toUInt32(n) {
5
+ const b = Buffer.alloc(4);
6
+ b.writeUInt32BE(n, 0);
7
+ return b;
8
+ }
9
+ const sshString = (b) => {
10
+ return Buffer.concat([toUInt32(b.length), Buffer.from(b)]);
11
+ };
12
+ /**
13
+ * Convert a Buffer to a multiple precision integer (mpint)
14
+ *
15
+ * mpints are represented in two's complement format,
16
+ * stored as a string, 8 bits per byte, MSB first.
17
+ *
18
+ * https://datatracker.ietf.org/doc/html/rfc4251#section-5
19
+ */
20
+ function toMultiplePrecisionInteger(raw) {
21
+ // strip all leading zeros
22
+ let i = 0;
23
+ while (i < raw.length && raw[i] === 0)
24
+ i++;
25
+ let b = raw.slice(i);
26
+ // zero -> single 0x00
27
+ if (b.length === 0)
28
+ b = Buffer.from([0]);
29
+ // MSB set -> pad
30
+ if (b[0] & 0x80)
31
+ b = Buffer.concat([Buffer.from([0]), b]);
32
+ return Buffer.concat([toUInt32(b.length), b]);
33
+ }
34
+ /**
35
+ * Convert a crypto.KeyObject RSA public key to OpenSSH "ssh-rsa ..."
36
+ *
37
+ * The "blob" is a sequence of length-prefixed strings:
38
+ * string "ssh-rsa"
39
+ * mpint e
40
+ * mpint n
41
+ *
42
+ * After building that blob, you base64 it and prepend ssh-rsa (plus an optional comment).
43
+ * See https://datatracker.ietf.org/doc/html/rfc4253#section-6.6
44
+ */
45
+ function toOpenSshFormat(keyObject, comment = "p0-generated-key") {
46
+ const jwk = keyObject.export({ format: "jwk" });
47
+ if (jwk.kty !== "RSA" || !jwk.n || !jwk.e) {
48
+ throw new Error("Expected an RSA public key (JWK with n and e).");
49
+ }
50
+ const nBuffer = Buffer.from(jwk.n, "base64url");
51
+ const eBuffer = Buffer.from(jwk.e, "base64url");
52
+ const keyType = "ssh-rsa";
53
+ const blob = Buffer.concat([
54
+ sshString(keyType),
55
+ toMultiplePrecisionInteger(eBuffer),
56
+ toMultiplePrecisionInteger(nBuffer),
57
+ ]);
58
+ return `${keyType} ${blob.toString("base64")}${comment ? " " + comment : ""}`;
59
+ }
60
+ exports.toOpenSshFormat = toOpenSshFormat;
61
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../src/common/crypto.ts"],"names":[],"mappings":";;;AAYA,SAAS,QAAQ,CAAC,CAAS;IACzB,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,CAAS,EAAU,EAAE;IACtC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,SAAS,0BAA0B,CAAC,GAAW;IAC7C,0BAA0B;IAC1B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QAAE,CAAC,EAAE,CAAC;IAC3C,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,sBAAsB;IACtB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,iBAAiB;IACjB,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,IAAI;QAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,eAAe,CAC7B,SAA2B,EAC3B,OAAO,GAAG,kBAAkB;IAE5B,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAe,CAAC;IAC9D,IAAI,GAAG,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;QACzC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;KACnE;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAEhD,MAAM,OAAO,GAAG,SAAS,CAAC;IAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,SAAS,CAAC,OAAO,CAAC;QAClB,0BAA0B,CAAC,OAAO,CAAC;QACnC,0BAA0B,CAAC,OAAO,CAAC;KACpC,CAAC,CAAC;IAEH,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAChF,CAAC;AApBD,0CAoBC"}
@@ -45,6 +45,7 @@ You should have received a copy of the GNU General Public License along with @p0
45
45
  **/
46
46
  const stdio_1 = require("../drivers/stdio");
47
47
  const util_1 = require("../util");
48
+ const crypto_1 = require("./crypto");
48
49
  const crypto = __importStar(require("crypto"));
49
50
  const fs = __importStar(require("fs/promises"));
50
51
  const path = __importStar(require("path"));
@@ -69,7 +70,7 @@ const createKeyPair = () => __awaiter(void 0, void 0, void 0, function* () {
69
70
  type: "pkcs8",
70
71
  format: "pem",
71
72
  });
72
- const publicKey = toOpenSshFormat(keyPair.publicKey);
73
+ const publicKey = (0, crypto_1.toOpenSshFormat)(keyPair.publicKey);
73
74
  yield fs.mkdir(path.dirname(exports.PUBLIC_KEY_PATH), { recursive: true });
74
75
  yield fs.writeFile(exports.PUBLIC_KEY_PATH, publicKey, { mode: 0o600 });
75
76
  yield fs.writeFile(exports.PRIVATE_KEY_PATH, privateKey, { mode: 0o600 });
@@ -86,37 +87,6 @@ const fileExists = (path) => __awaiter(void 0, void 0, void 0, function* () {
86
87
  return false;
87
88
  }
88
89
  });
89
- /**
90
- * Convert a crypto.KeyObject RSA public key to OpenSSH format
91
- */
92
- const toOpenSshFormat = (keyObject) => {
93
- // Export the key in JWK format to get n and e values
94
- const jwk = keyObject.export({ format: "jwk" });
95
- // Convert base64url to buffer
96
- const nBuffer = Buffer.from(jwk.n, "base64url");
97
- const eBuffer = Buffer.from(jwk.e, "base64url");
98
- // Create SSH wire format
99
- const keyType = "ssh-rsa";
100
- const keyTypeBuffer = Buffer.from(keyType);
101
- // SSH wire format: [key_type_len][key_type][e_len][e][n_len][n]
102
- const keyTypeLen = Buffer.alloc(4);
103
- keyTypeLen.writeUInt32BE(keyTypeBuffer.length, 0);
104
- const eLen = Buffer.alloc(4);
105
- eLen.writeUInt32BE(eBuffer.length, 0);
106
- const nLen = Buffer.alloc(4);
107
- nLen.writeUInt32BE(nBuffer.length, 0);
108
- const sshWireFormat = Buffer.concat([
109
- keyTypeLen,
110
- keyTypeBuffer,
111
- eLen,
112
- eBuffer,
113
- nLen,
114
- nBuffer,
115
- ]);
116
- // Base64 encode and format as OpenSSH key
117
- const base64Key = sshWireFormat.toString("base64");
118
- return `${keyType} ${base64Key} p0-generated-key`;
119
- };
120
90
  exports.KNOWN_HOSTS_DIR = path.join(exports.P0_KEY_FOLDER, "known_hosts");
121
91
  exports.KNOWN_HOSTS_PATH = path.join(exports.P0_KEY_FOLDER, "known_hosts_config");
122
92
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/common/keys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/common/keys.ts"],"names":[],"mappings":"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"}