@andrewheberle/serverless-ssh-ca 0.21.0 → 0.23.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.
Files changed (98) hide show
  1. package/README.md +55 -1
  2. package/dist/api/operations.d.ts +49 -0
  3. package/dist/api/operations.d.ts.map +1 -0
  4. package/dist/api/operations.js +175 -0
  5. package/dist/api/operations.js.map +1 -0
  6. package/dist/api/schema.d.ts +71 -0
  7. package/dist/api/schema.d.ts.map +1 -0
  8. package/dist/api/schema.js +107 -0
  9. package/dist/api/schema.js.map +1 -0
  10. package/dist/api/v3/index.d.ts.map +1 -1
  11. package/dist/api/v3/index.js +25 -212
  12. package/dist/api/v3/index.js.map +1 -1
  13. package/dist/api/v3/schema.d.ts +30 -74
  14. package/dist/api/v3/schema.d.ts.map +1 -1
  15. package/dist/api/v3/schema.js +18 -73
  16. package/dist/api/v3/schema.js.map +1 -1
  17. package/dist/api/v4/index.d.ts +8 -0
  18. package/dist/api/v4/index.d.ts.map +1 -0
  19. package/dist/api/v4/index.js +155 -0
  20. package/dist/api/v4/index.js.map +1 -0
  21. package/dist/api/v4/schema.d.ts +268 -0
  22. package/dist/api/v4/schema.d.ts.map +1 -0
  23. package/dist/api/v4/schema.js +182 -0
  24. package/dist/api/v4/schema.js.map +1 -0
  25. package/dist/certificate.d.ts +9 -6
  26. package/dist/certificate.d.ts.map +1 -1
  27. package/dist/certificate.js +55 -99
  28. package/dist/certificate.js.map +1 -1
  29. package/dist/db/index.d.ts +32 -24
  30. package/dist/db/index.d.ts.map +1 -1
  31. package/dist/db/index.js +101 -28
  32. package/dist/db/index.js.map +1 -1
  33. package/dist/db/migrations/0002_krl_version.d.ts +3 -0
  34. package/dist/db/migrations/0002_krl_version.d.ts.map +1 -0
  35. package/dist/db/migrations/0002_krl_version.js +15 -0
  36. package/dist/db/migrations/0002_krl_version.js.map +1 -0
  37. package/dist/db/migrations/index.d.ts.map +1 -1
  38. package/dist/db/migrations/index.js +3 -1
  39. package/dist/db/migrations/index.js.map +1 -1
  40. package/dist/db/types.d.ts +37 -0
  41. package/dist/db/types.d.ts.map +1 -0
  42. package/dist/db/types.js +13 -0
  43. package/dist/db/types.js.map +1 -0
  44. package/dist/krl.d.ts +9 -1
  45. package/dist/krl.d.ts.map +1 -1
  46. package/dist/krl.js +22 -162
  47. package/dist/krl.js.map +1 -1
  48. package/dist/proof.d.ts +36 -7
  49. package/dist/proof.d.ts.map +1 -1
  50. package/dist/proof.js +53 -21
  51. package/dist/proof.js.map +1 -1
  52. package/dist/router.d.ts.map +1 -1
  53. package/dist/router.js +3 -1
  54. package/dist/router.js.map +1 -1
  55. package/dist/ssh/certificate.d.ts +93 -0
  56. package/dist/ssh/certificate.d.ts.map +1 -0
  57. package/dist/ssh/certificate.js +178 -0
  58. package/dist/ssh/certificate.js.map +1 -0
  59. package/dist/ssh/encoding.d.ts +41 -0
  60. package/dist/ssh/encoding.d.ts.map +1 -0
  61. package/dist/ssh/encoding.js +70 -0
  62. package/dist/ssh/encoding.js.map +1 -0
  63. package/dist/ssh/keys.d.ts +80 -0
  64. package/dist/ssh/keys.d.ts.map +1 -0
  65. package/dist/ssh/keys.js +249 -0
  66. package/dist/ssh/keys.js.map +1 -0
  67. package/dist/ssh/signer.d.ts +35 -0
  68. package/dist/ssh/signer.d.ts.map +1 -0
  69. package/dist/ssh/signer.js +99 -0
  70. package/dist/ssh/signer.js.map +1 -0
  71. package/dist/types.d.ts +12 -17
  72. package/dist/types.d.ts.map +1 -1
  73. package/dist/utils.d.ts +40 -21
  74. package/dist/utils.d.ts.map +1 -1
  75. package/dist/utils.js +87 -54
  76. package/dist/utils.js.map +1 -1
  77. package/openapi.json +1960 -82
  78. package/package.json +5 -17
  79. package/src/api/operations.ts +211 -0
  80. package/src/api/schema.ts +137 -0
  81. package/src/api/v3/index.ts +32 -259
  82. package/src/api/v3/schema.ts +34 -96
  83. package/src/api/v4/index.ts +265 -0
  84. package/src/api/v4/schema.ts +235 -0
  85. package/src/certificate.ts +62 -123
  86. package/src/db/index.ts +113 -49
  87. package/src/db/migrations/0002_krl_version.ts +16 -0
  88. package/src/db/migrations/index.ts +3 -1
  89. package/src/db/types.ts +40 -0
  90. package/src/krl.ts +32 -194
  91. package/src/proof.ts +65 -31
  92. package/src/router.ts +3 -1
  93. package/src/ssh/certificate.ts +236 -0
  94. package/src/ssh/encoding.ts +81 -0
  95. package/src/ssh/keys.ts +294 -0
  96. package/src/ssh/signer.ts +129 -0
  97. package/src/types.ts +12 -18
  98. package/src/utils.ts +99 -69
@@ -1,41 +1,18 @@
1
1
  import { group } from "@andrewheberle/ts-slog";
2
- import { ApiException, ConflictException, ForbiddenException, fromHono, InternalServerErrorException, NotFoundException, OpenAPIRoute, UnauthorizedException, UnprocessableEntityException, } from "chanfana";
2
+ import { ForbiddenException, fromHono, OpenAPIRoute, UnauthorizedException, } from "chanfana";
3
3
  import { Hono } from "hono";
4
- import { BadIssuerError, createSignedCertificate, createSignedHostCertificate, } from "../../certificate.js";
5
- import { getPrivateKey, getPublic, split, UnsupportedKeyError, } from "../../utils.js";
6
- import sshpk from "sshpk";
7
- import { CertificateType, getRevocationList, recordCertificate, RevocationStatus, revocationStatus, revokeCertificate, } from "../../db/index.js";
8
- import { KRLBuilder } from "../../krl.js";
9
- import { CaPublicKeyEndpointSchema, createUserCertificateRequestEndpointSchema, createRevocationListEndpointSchema, createHostCertificateRequestEndpointSchema, createHostCertificateRenewEndpointSchema, createRevokeCertificateEndpointSchema, } from "./schema.js";
4
+ import { createSignedCertificate, createSignedHostCertificate, } from "../../certificate.js";
5
+ import { split } from "../../utils.js";
6
+ import { CertificateType } from "../../db/types.js";
7
+ import { caPublicKey, issueCertificate, revocationList, revoke } from "../operations.js";
8
+ import { CaPublicKeyEndpointSchema, createUserCertificateRequestEndpointSchema, createRevocationListEndpointSchema, createHostCertificateRequestEndpointSchema, createHostCertificateRenewEndpointSchema, createRevokeCertificateEndpointSchema, certificateTypeName, } from "./schema.js";
10
9
  import { logger } from "../../logger.js";
11
- // sshpk is CommonJS and Node's ESM loader cannot detect most of its named exports, so values are taken from the default import
12
- const { KeyParseError } = sshpk;
13
10
  const CaPublicKeyEndpoint = (env) => {
14
11
  return class extends OpenAPIRoute {
15
12
  schema = CaPublicKeyEndpointSchema;
16
13
  async handle(c) {
17
14
  const l = logger(env).with(...group("request", "action", "ca"));
18
- try {
19
- const pub = await getPublic(c.env);
20
- return c.text(`${pub.toString("ssh").trim()}\n`);
21
- }
22
- catch (err) {
23
- switch (true) {
24
- case (err instanceof UnsupportedKeyError):
25
- l.error(err.message);
26
- throw new InternalServerErrorException(err.message);
27
- case (err instanceof KeyParseError):
28
- l.error("error parsing private key");
29
- throw new InternalServerErrorException("error parsing private key");
30
- case (err instanceof ApiException):
31
- // re-throw any exisiting chanfana error
32
- throw err;
33
- default:
34
- // otherwise throw as InternalServerErrorException
35
- l.error("unhandled error", "error", err);
36
- throw new InternalServerErrorException("internal server error");
37
- }
38
- }
15
+ return await caPublicKey(c, l);
39
16
  }
40
17
  };
41
18
  };
@@ -54,85 +31,16 @@ const UserCertificateRequestEndpoint = (env) => {
54
31
  principals: data.body.identity.principals,
55
32
  extensions: data.body.extensions,
56
33
  };
57
- try {
58
- const certificate = await createSignedCertificate(c.env, data.headers.Authorization.email, data.body.public_key, opts);
59
- const response = {
60
- certificate: btoa(certificate.toString("openssh"))
61
- };
62
- try {
63
- await recordCertificate(c.env, certificate, data.headers.Authorization.email);
64
- }
65
- catch (err) {
66
- // a certificate that is not recorded cannot be revoked, so do not issue it
67
- l.error("there was a problem adding issued certificate to database", "error", err);
68
- throw new InternalServerErrorException("there was a problem recording the issued certificate");
69
- }
70
- l.info("completed issuing certificate", ...group("certificate", "principals", certificate.subjects.map(v => v.toString()).join(","), "serial", certificate.serial.readBigUInt64BE(0)));
71
- return c.json(response);
72
- }
73
- catch (err) {
74
- switch (true) {
75
- case (err instanceof UnsupportedKeyError):
76
- l.error(err.message);
77
- throw new InternalServerErrorException(err.message);
78
- case (err instanceof ApiException):
79
- // re-throw any exisiting chanfana error
80
- throw err;
81
- default:
82
- // otherwise throw as InternalServerErrorException
83
- l.error("unhandled error", "error", err);
84
- throw new InternalServerErrorException("internal server error");
85
- }
86
- }
34
+ return await issueCertificate(c, l, () => createSignedCertificate(c.env, data.headers.Authorization.email, data.body.public_key, opts), CertificateType.User);
87
35
  }
88
36
  };
89
37
  };
90
- const RevocationListEndpoint = (env) => {
38
+ const RevocationListEndpoint = (env, certificateType) => {
91
39
  return class extends OpenAPIRoute {
92
- schema = createRevocationListEndpointSchema();
40
+ schema = createRevocationListEndpointSchema(certificateType);
93
41
  async handle(c) {
94
- const data = await this.getValidatedData();
95
- const l = logger(env).with(...group("request", "type", data.params.certificateType, "action", "krl"));
96
- const certificateType = data.params.certificateType === "user" ? CertificateType.User : CertificateType.Host;
97
- try {
98
- // get revoked serials
99
- const serials = (await getRevocationList(c.env, certificateType)).map(v => BigInt(v));
100
- // grab private key from secret store
101
- const key = await getPrivateKey(c.env);
102
- // generate KRL
103
- const krl = new KRLBuilder(key)
104
- .addSerials(serials);
105
- const krlBytes = krl.generate();
106
- // convert to base64
107
- const bytes = new Uint8Array(krlBytes);
108
- let binary = "";
109
- for (const byte of bytes) {
110
- binary += String.fromCharCode(byte);
111
- }
112
- const base64Krl = btoa(binary);
113
- const signature = await krl.signature();
114
- return c.json({
115
- krl: base64Krl,
116
- signature: signature,
117
- });
118
- }
119
- catch (err) {
120
- switch (true) {
121
- case (err instanceof UnsupportedKeyError):
122
- l.error(err.message);
123
- throw new InternalServerErrorException(err.message);
124
- case (err instanceof KeyParseError):
125
- l.error("error parsing private key");
126
- throw new InternalServerErrorException("error parsing private key");
127
- case (err instanceof ApiException):
128
- // re-throw any exisiting chanfana error
129
- throw err;
130
- default:
131
- // otherwise throw as InternalServerErrorException
132
- l.error("unhandled error", "error", err);
133
- throw new InternalServerErrorException("internal server error");
134
- }
135
- }
42
+ const l = logger(env).with(...group("request", "type", certificateTypeName(certificateType), "action", "krl"));
43
+ return await revocationList(c, l, certificateType);
136
44
  }
137
45
  };
138
46
  };
@@ -156,36 +64,7 @@ const HostCertificateRequestEndpoint = (env) => {
156
64
  lifetime: data.body.lifetime,
157
65
  principals: data.body.principals,
158
66
  };
159
- try {
160
- const certificate = await createSignedHostCertificate(c.env, data.body.public_key, opts);
161
- const response = {
162
- certificate: btoa(certificate.toString("openssh"))
163
- };
164
- try {
165
- await recordCertificate(c.env, certificate, `host_${certificate.subjects[0].hostname}`, CertificateType.Host);
166
- }
167
- catch (err) {
168
- // a certificate that is not recorded cannot be revoked, so do not issue it
169
- l.error("there was a problem adding issued certificate to database", "error", err);
170
- throw new InternalServerErrorException("there was a problem recording the issued certificate");
171
- }
172
- l.info("completed issuing certificate", ...group("certificate", "principals", certificate.subjects.map(v => v.toString()).join(","), "serial", certificate.serial.readBigUInt64BE(0)));
173
- return c.json(response);
174
- }
175
- catch (err) {
176
- switch (true) {
177
- case (err instanceof UnsupportedKeyError):
178
- l.error(err.message);
179
- throw new InternalServerErrorException(err.message);
180
- case (err instanceof ApiException):
181
- // re-throw any exisiting chanfana error
182
- throw err;
183
- default:
184
- // otherwise throw as InternalServerErrorException
185
- l.error("unhandled error", "error", err);
186
- throw new InternalServerErrorException("internal server error");
187
- }
188
- }
67
+ return await issueCertificate(c, l, () => createSignedHostCertificate(c.env, data.body.public_key, opts), CertificateType.Host);
189
68
  }
190
69
  };
191
70
  };
@@ -194,96 +73,28 @@ const HostCertificateRenewEndpoint = (env) => {
194
73
  schema = createHostCertificateRenewEndpointSchema(env);
195
74
  async handle(c) {
196
75
  const data = await this.getValidatedData();
197
- const serial = data.body.certificate.serial.readBigUInt64BE(0);
76
+ const serial = data.body.certificate.serial;
198
77
  const l = logger(env).with(...group("request", "type", "host", "action", "renewal", "serial", serial));
199
78
  // use smaller of the current certificate lifetime and the requested lifetime
200
- const originalLifetime = (data.body.certificate.validUntil.getTime() - data.body.certificate.validFrom.getTime()) / 1000;
79
+ const originalLifetime = (data.body.certificate.validBefore.getTime() - data.body.certificate.validAfter.getTime()) / 1000;
201
80
  const lifetime = originalLifetime > data.body.lifetime
202
81
  ? data.body.lifetime
203
82
  : originalLifetime;
204
83
  const opts = {
205
84
  lifetime: lifetime,
206
- subjects: data.body.certificate.subjects
85
+ principals: data.body.certificate.principals,
207
86
  };
208
- try {
209
- const certificate = await createSignedHostCertificate(c.env, data.body.public_key, opts);
210
- const response = {
211
- certificate: btoa(certificate.toString("openssh"))
212
- };
213
- try {
214
- await recordCertificate(c.env, certificate, `host_${certificate.subjects[0].hostname}`, CertificateType.Host);
215
- }
216
- catch (err) {
217
- // a certificate that is not recorded cannot be revoked, so do not issue it
218
- l.error("there was a problem adding issued certificate to database", "error", err);
219
- throw new InternalServerErrorException("there was a problem recording the issued certificate");
220
- }
221
- l.info("completed issuing certificate", ...group("certificate", "principals", certificate.subjects.map(v => v.toString()).join(","), "serial", certificate.serial.readBigUInt64BE(0)));
222
- return c.json(response);
223
- }
224
- catch (err) {
225
- switch (true) {
226
- case (err instanceof UnsupportedKeyError):
227
- l.error(err.message);
228
- throw new InternalServerErrorException(err.message);
229
- case (err instanceof ApiException):
230
- // re-throw any exisiting chanfana error
231
- throw err;
232
- case (err instanceof BadIssuerError):
233
- throw new UnprocessableEntityException(err.message);
234
- default:
235
- // otherwise throw as InternalServerErrorException
236
- l.error("unhandled error", "error", err);
237
- throw new InternalServerErrorException("internal server error");
238
- }
239
- }
87
+ return await issueCertificate(c, l, () => createSignedHostCertificate(c.env, data.body.public_key, opts), CertificateType.Host);
240
88
  }
241
89
  };
242
90
  };
243
- const RevokeCertificateEndpoint = (env) => {
91
+ const RevokeCertificateEndpoint = (env, certificateType) => {
244
92
  return class extends OpenAPIRoute {
245
- schema = createRevokeCertificateEndpointSchema(env);
93
+ schema = createRevokeCertificateEndpointSchema(env, certificateType);
246
94
  async handle(c) {
247
95
  const data = await this.getValidatedData();
248
- const l = logger(env).with(...group("request", "type", data.params.certificateType, "action", "revoke", "serial", data.body.serial));
249
- const certificatetype = data.params.certificateType === "user" ? CertificateType.User : CertificateType.Host;
250
- // ensure certificate can be revoked
251
- const status = await revocationStatus(c.env, data.body.serial, data.body.public_key.toString("ssh"), certificatetype);
252
- switch (status) {
253
- case RevocationStatus.Revoked:
254
- l.warn("certificate is already revoked");
255
- throw new ConflictException("certificate is already revoked");
256
- case RevocationStatus.Unrevokable:
257
- l.warn("cannot revoke this certificate");
258
- throw new ForbiddenException("cannot revoke this certificate");
259
- case RevocationStatus.NotFound:
260
- l.warn("certificate not found");
261
- throw new NotFoundException("certificate not found");
262
- }
263
- try {
264
- const res = await revokeCertificate(c.env, data.body.serial);
265
- if (res.length === 0) {
266
- throw new InternalServerErrorException("no results were returned for revocation");
267
- }
268
- if (res.length > 1) {
269
- l.warn("more than one revocation result was returned", "count", res.length);
270
- }
271
- l.info("completed revocation");
272
- return c.json({
273
- revoked_at: res[0].revoked_at
274
- });
275
- }
276
- catch (err) {
277
- switch (true) {
278
- case (err instanceof ApiException):
279
- // re-throw any exisiting chanfana error
280
- throw err;
281
- default:
282
- // otherwise throw as InternalServerErrorException
283
- l.error("unhandled error", "error", err);
284
- throw new InternalServerErrorException("internal server error");
285
- }
286
- }
96
+ const l = logger(env).with(...group("request", "type", certificateTypeName(certificateType), "action", "revoke", "serial", data.body.serial));
97
+ return await revoke(c, l, data.body.serial, data.body.public_key, certificateType);
287
98
  }
288
99
  };
289
100
  };
@@ -291,10 +102,12 @@ export const createApi = (env) => {
291
102
  const api = fromHono(new Hono());
292
103
  api.get("/ca", CaPublicKeyEndpoint(env));
293
104
  api.post("/user/certificate", UserCertificateRequestEndpoint(env));
294
- api.get("/:certificateType/krl", RevocationListEndpoint(env));
105
+ api.get("/user/krl", RevocationListEndpoint(env, CertificateType.User));
106
+ api.post("/user/revoke", RevokeCertificateEndpoint(env, CertificateType.User));
295
107
  api.post("/host/certificate", HostCertificateRequestEndpoint(env));
296
108
  api.post("/host/renew", HostCertificateRenewEndpoint(env));
297
- api.post("/:certificateType/revoke", RevokeCertificateEndpoint(env));
109
+ api.get("/host/krl", RevocationListEndpoint(env, CertificateType.Host));
110
+ api.post("/host/revoke", RevokeCertificateEndpoint(env, CertificateType.Host));
298
111
  return api;
299
112
  };
300
113
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/v3/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/v3/index.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,9 @@
1
1
  import z from "zod";
2
2
  import type { SshCaBindings } from "../../types.js";
3
- export declare const createIdentityTokenSchema: (env: SshCaBindings) => z.ZodPipe<z.ZodString, z.ZodTransform<{
4
- sub: string;
5
- principals: string[];
6
- }, string>>;
7
- export declare const createAccessTokenSchema: (env: SshCaBindings) => z.ZodPipe<z.ZodString, z.ZodTransform<{
8
- email: string;
9
- sub: string;
10
- }, string>>;
11
- export declare const createHeaderSchema: (env: SshCaBindings) => z.ZodObject<{
12
- Authorization: z.ZodPipe<z.ZodString, z.ZodTransform<{
13
- email: string;
14
- sub: string;
15
- }, string>>;
16
- }, z.core.$strip>;
17
- export declare const CaPublicKeyEndpointSchema: {
18
- responses: {
19
- "200": {
20
- content: {
21
- "text/plain": {
22
- schema: z.ZodString;
23
- };
24
- };
25
- description: string;
26
- };
27
- };
28
- };
3
+ import { CertificateType } from "../../db/types.js";
4
+ export { CaPublicKeyEndpointSchema, certificateTypeName, createAccessTokenSchema, createHeaderSchema, createIdentityTokenSchema, createRevocationListEndpointSchema, } from "../schema.js";
29
5
  export declare const userCertificateRequestEndpointBodySchema: (env: SshCaBindings) => z.ZodObject<{
30
- public_key: z.ZodPipe<z.ZodPipe<z.ZodBase64, z.ZodTransform<Buffer<ArrayBuffer>, string>>, z.ZodTransform<import("sshpk").Key, Buffer<ArrayBuffer>>>;
6
+ public_key: z.ZodPipe<z.ZodPipe<z.ZodBase64, z.ZodTransform<Buffer<ArrayBuffer>, string>>, z.ZodTransform<import("../../ssh/keys.js").PublicKey, Buffer<ArrayBuffer>>>;
31
7
  proof: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../proof.js").ProofOfPossession, string>>;
32
8
  identity: z.ZodPipe<z.ZodString, z.ZodTransform<{
33
9
  sub: string;
@@ -37,6 +13,9 @@ export declare const userCertificateRequestEndpointBodySchema: (env: SshCaBindin
37
13
  lifetime: z.ZodDefault<z.ZodInt>;
38
14
  }, z.core.$strip>;
39
15
  export declare const createUserCertificateRequestEndpointSchema: (env: SshCaBindings) => {
16
+ tags: ("Host" | "User")[];
17
+ summary: string;
18
+ description: string;
40
19
  security: {
41
20
  oidcAuth: never[];
42
21
  }[];
@@ -51,7 +30,7 @@ export declare const createUserCertificateRequestEndpointSchema: (env: SshCaBind
51
30
  content: {
52
31
  "application/json": {
53
32
  schema: z.ZodType<{
54
- public_key: import("sshpk").Key;
33
+ public_key: import("../../ssh/keys.js").PublicKey;
55
34
  proof: import("../../proof.js").ProofOfPossession;
56
35
  identity: {
57
36
  sub: string;
@@ -60,7 +39,7 @@ export declare const createUserCertificateRequestEndpointSchema: (env: SshCaBind
60
39
  extensions: string[];
61
40
  lifetime: number;
62
41
  }, unknown, z.core.$ZodTypeInternals<{
63
- public_key: import("sshpk").Key;
42
+ public_key: import("../../ssh/keys.js").PublicKey;
64
43
  proof: import("../../proof.js").ProofOfPossession;
65
44
  identity: {
66
45
  sub: string;
@@ -88,34 +67,8 @@ export declare const createUserCertificateRequestEndpointSchema: (env: SshCaBind
88
67
  };
89
68
  };
90
69
  };
91
- export declare const createRevocationListEndpointSchema: () => {
92
- request: {
93
- params: z.ZodObject<{
94
- certificateType: z.ZodEnum<{
95
- host: "host";
96
- user: "user";
97
- }>;
98
- }, z.core.$strip>;
99
- };
100
- responses: {
101
- "200": {
102
- content: {
103
- "application/json": {
104
- schema: z.ZodType<{
105
- krl: Buffer<ArrayBuffer>;
106
- signature: string;
107
- }, unknown, z.core.$ZodTypeInternals<{
108
- krl: Buffer<ArrayBuffer>;
109
- signature: string;
110
- }, unknown>>;
111
- };
112
- };
113
- description: string;
114
- };
115
- };
116
- };
117
70
  export declare const hostCertificateRequestEndpointBodySchema: (env: SshCaBindings) => z.ZodObject<{
118
- public_key: z.ZodPipe<z.ZodPipe<z.ZodBase64, z.ZodTransform<Buffer<ArrayBuffer>, string>>, z.ZodTransform<import("sshpk").Key, Buffer<ArrayBuffer>>>;
71
+ public_key: z.ZodPipe<z.ZodPipe<z.ZodBase64, z.ZodTransform<Buffer<ArrayBuffer>, string>>, z.ZodTransform<import("../../ssh/keys.js").PublicKey, Buffer<ArrayBuffer>>>;
119
72
  proof: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../proof.js").ProofOfPossession, string>>;
120
73
  identity: z.ZodPipe<z.ZodString, z.ZodTransform<{
121
74
  sub: string;
@@ -125,6 +78,9 @@ export declare const hostCertificateRequestEndpointBodySchema: (env: SshCaBindin
125
78
  lifetime: z.ZodDefault<z.ZodInt>;
126
79
  }, z.core.$strip>;
127
80
  export declare const createHostCertificateRequestEndpointSchema: (env: SshCaBindings) => {
81
+ tags: ("Host" | "User")[];
82
+ summary: string;
83
+ description: string;
128
84
  security: {
129
85
  oidcAuth: never[];
130
86
  }[];
@@ -139,7 +95,7 @@ export declare const createHostCertificateRequestEndpointSchema: (env: SshCaBind
139
95
  content: {
140
96
  "application/json": {
141
97
  schema: z.ZodType<{
142
- public_key: import("sshpk").Key;
98
+ public_key: import("../../ssh/keys.js").PublicKey;
143
99
  proof: import("../../proof.js").ProofOfPossession;
144
100
  identity: {
145
101
  sub: string;
@@ -148,7 +104,7 @@ export declare const createHostCertificateRequestEndpointSchema: (env: SshCaBind
148
104
  principals: string[];
149
105
  lifetime: number;
150
106
  }, unknown, z.core.$ZodTypeInternals<{
151
- public_key: import("sshpk").Key;
107
+ public_key: import("../../ssh/keys.js").PublicKey;
152
108
  proof: import("../../proof.js").ProofOfPossession;
153
109
  identity: {
154
110
  sub: string;
@@ -177,24 +133,27 @@ export declare const createHostCertificateRequestEndpointSchema: (env: SshCaBind
177
133
  };
178
134
  };
179
135
  export declare const hostCertificateRenewEndpointBodySchema: (env: SshCaBindings) => z.ZodObject<{
180
- certificate: z.ZodPipe<z.ZodPipe<z.ZodBase64, z.ZodTransform<Buffer<ArrayBuffer>, string>>, z.ZodTransform<import("sshpk").Certificate, Buffer<ArrayBuffer>>>;
181
- public_key: z.ZodPipe<z.ZodPipe<z.ZodBase64, z.ZodTransform<Buffer<ArrayBuffer>, string>>, z.ZodTransform<import("sshpk").Key, Buffer<ArrayBuffer>>>;
136
+ certificate: z.ZodPipe<z.ZodPipe<z.ZodBase64, z.ZodTransform<Buffer<ArrayBuffer>, string>>, z.ZodTransform<import("../../ssh/certificate.js").SshCertificate, Buffer<ArrayBuffer>>>;
137
+ public_key: z.ZodPipe<z.ZodPipe<z.ZodBase64, z.ZodTransform<Buffer<ArrayBuffer>, string>>, z.ZodTransform<import("../../ssh/keys.js").PublicKey, Buffer<ArrayBuffer>>>;
182
138
  proof: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../proof.js").RenewalProofOfPossession, string>>;
183
139
  lifetime: z.ZodDefault<z.ZodInt>;
184
140
  }, z.core.$strip>;
185
141
  export declare const createHostCertificateRenewEndpointSchema: (env: SshCaBindings) => {
142
+ tags: ("Host" | "User")[];
143
+ summary: string;
144
+ description: string;
186
145
  request: {
187
146
  body: {
188
147
  content: {
189
148
  "application/json": {
190
149
  schema: z.ZodType<{
191
- certificate: import("sshpk").Certificate;
192
- public_key: import("sshpk").Key;
150
+ certificate: import("../../ssh/certificate.js").SshCertificate;
151
+ public_key: import("../../ssh/keys.js").PublicKey;
193
152
  proof: import("../../proof.js").RenewalProofOfPossession;
194
153
  lifetime: number;
195
154
  }, unknown, z.core.$ZodTypeInternals<{
196
- certificate: import("sshpk").Certificate;
197
- public_key: import("sshpk").Key;
155
+ certificate: import("../../ssh/certificate.js").SshCertificate;
156
+ public_key: import("../../ssh/keys.js").PublicKey;
198
157
  proof: import("../../proof.js").RenewalProofOfPossession;
199
158
  lifetime: number;
200
159
  }, unknown>>;
@@ -219,27 +178,24 @@ export declare const createHostCertificateRenewEndpointSchema: (env: SshCaBindin
219
178
  };
220
179
  export declare const revokeCertificateEndpointBodySchema: (env: SshCaBindings) => z.ZodObject<{
221
180
  serial: z.ZodPipe<z.ZodString, z.ZodTransform<bigint, string>>;
222
- public_key: z.ZodPipe<z.ZodPipe<z.ZodBase64, z.ZodTransform<Buffer<ArrayBuffer>, string>>, z.ZodTransform<import("sshpk").Key, Buffer<ArrayBuffer>>>;
181
+ public_key: z.ZodPipe<z.ZodPipe<z.ZodBase64, z.ZodTransform<Buffer<ArrayBuffer>, string>>, z.ZodTransform<import("../../ssh/keys.js").PublicKey, Buffer<ArrayBuffer>>>;
223
182
  proof: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../proof.js").ProofOfPossession, string>>;
224
183
  }, z.core.$strip>;
225
- export declare const createRevokeCertificateEndpointSchema: (env: SshCaBindings) => {
184
+ export declare const createRevokeCertificateEndpointSchema: (env: SshCaBindings, certificateType: CertificateType) => {
185
+ tags: ("Host" | "User")[];
186
+ summary: string;
187
+ description: string;
226
188
  request: {
227
- params: z.ZodObject<{
228
- certificateType: z.ZodEnum<{
229
- host: "host";
230
- user: "user";
231
- }>;
232
- }, z.core.$strip>;
233
189
  body: {
234
190
  content: {
235
191
  "application/json": {
236
192
  schema: z.ZodType<{
237
193
  serial: bigint;
238
- public_key: import("sshpk").Key;
194
+ public_key: import("../../ssh/keys.js").PublicKey;
239
195
  proof: import("../../proof.js").ProofOfPossession;
240
196
  }, unknown, z.core.$ZodTypeInternals<{
241
197
  serial: bigint;
242
- public_key: import("sshpk").Key;
198
+ public_key: import("../../ssh/keys.js").PublicKey;
243
199
  proof: import("../../proof.js").ProofOfPossession;
244
200
  }, unknown>>;
245
201
  };
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/api/v3/schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAkDnD,eAAO,MAAM,yBAAyB,QAAS,aAAa;;;WAO3D,CAAA;AAED,eAAO,MAAM,uBAAuB,QAAS,aAAa;;;WAOzD,CAAA;AAKD,eAAO,MAAM,kBAAkB,QAAS,aAAa;;;;;iBAIpD,CAAA;AAKD,eAAO,MAAM,yBAAyB;;;YAGnC,OAAO;gBACN,YAAY;oBACX,MAAM;;;YAGR,WAAW;;;CAIb,CAAA;AAED,eAAO,MAAM,wCAAwC,QAAS,aAAa;;;;;;;;;iBAiB1E,CAAA;AAED,eAAO,MAAM,0CAA0C,QAAS,aAAa;;;;;QAG3E,OAAO;;;;;;QACP,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBJ,CAAA;AAEF,eAAO,MAAM,kCAAkC;;QAE7C,MAAM;;;;;;;;;;;;;;;;;;;;;;;CAgBN,CAAA;AAEF,eAAO,MAAM,wCAAwC,QAAS,aAAa;;;;;;;;;iBAgB1E,CAAA;AAED,eAAO,MAAM,0CAA0C,QAAS,aAAa;;;;;QAG3E,OAAO;;;;;;QACP,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBJ,CAAA;AAEF,eAAO,MAAM,sCAAsC,QAAS,aAAa;;;;;iBAgBxE,CAAA;AAED,eAAO,MAAM,wCAAwC,QAAS,aAAa;;QAEzE,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBJ,CAAA;AAEF,eAAO,MAAM,mCAAmC,QAAS,aAAa;;;;iBAerE,CAAA;AAED,eAAO,MAAM,qCAAqC,QAAS,aAAa;;QAEtE,MAAM;;;;;;QAGN,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBJ,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/api/v3/schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAsBnD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAYnD,OAAO,EACN,yBAAyB,EACzB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,kCAAkC,GAClC,MAAM,cAAc,CAAA;AAErB,eAAO,MAAM,wCAAwC,QAAS,aAAa;;;;;;;;;iBAiB1E,CAAA;AAED,eAAO,MAAM,0CAA0C,QAAS,aAAa;;;;;;;;QAM3E,OAAO;;;;;;QACP,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBJ,CAAA;AAEF,eAAO,MAAM,wCAAwC,QAAS,aAAa;;;;;;;;;iBAgB1E,CAAA;AAED,eAAO,MAAM,0CAA0C,QAAS,aAAa;;;;;;;;QAM3E,OAAO;;;;;;QACP,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBJ,CAAA;AAEF,eAAO,MAAM,sCAAsC,QAAS,aAAa;;;;;iBAgBxE,CAAA;AAED,eAAO,MAAM,wCAAwC,QAAS,aAAa;;;;;QAKzE,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBJ,CAAA;AAEF,eAAO,MAAM,mCAAmC,QAAS,aAAa;;;;iBAerE,CAAA;AAED,eAAO,MAAM,qCAAqC,QAAS,aAAa,mBAAmB,eAAe;;;;;QAKxG,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBJ,CAAA"}