@andrewheberle/serverless-ssh-ca 0.17.13 → 0.17.16

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 (114) hide show
  1. package/README.md +8 -19
  2. package/dist/api/v3/index.d.ts +1 -0
  3. package/dist/api/v3/index.d.ts.map +1 -0
  4. package/dist/api/v3/index.js +2 -1
  5. package/dist/api/v3/index.js.map +1 -0
  6. package/dist/api/v3/schema.d.ts +47 -1
  7. package/dist/api/v3/schema.d.ts.map +1 -0
  8. package/dist/api/v3/schema.js +65 -61
  9. package/dist/api/v3/schema.js.map +1 -0
  10. package/dist/certificate.d.ts +1 -0
  11. package/dist/certificate.d.ts.map +1 -0
  12. package/dist/certificate.js +11 -6
  13. package/dist/certificate.js.map +1 -0
  14. package/dist/{db.d.ts → db/index.d.ts} +6 -6
  15. package/dist/db/index.d.ts.map +1 -0
  16. package/dist/db/index.js +151 -0
  17. package/dist/db/index.js.map +1 -0
  18. package/dist/db/migrations/0001_initial_schema.d.ts +3 -0
  19. package/dist/db/migrations/0001_initial_schema.d.ts.map +1 -0
  20. package/dist/db/migrations/0001_initial_schema.js +24 -0
  21. package/dist/db/migrations/0001_initial_schema.js.map +1 -0
  22. package/dist/db/migrations/index.d.ts +3 -0
  23. package/dist/db/migrations/index.d.ts.map +1 -0
  24. package/dist/db/migrations/index.js +5 -0
  25. package/dist/db/migrations/index.js.map +1 -0
  26. package/dist/index.d.ts +1 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +1 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/krl.d.ts +1 -0
  31. package/dist/krl.d.ts.map +1 -0
  32. package/dist/krl.js +2 -1
  33. package/dist/krl.js.map +1 -0
  34. package/dist/logger.d.ts +1 -0
  35. package/dist/logger.d.ts.map +1 -0
  36. package/dist/logger.js +13 -1
  37. package/dist/logger.js.map +1 -0
  38. package/dist/proof.d.ts +2 -0
  39. package/dist/proof.d.ts.map +1 -0
  40. package/dist/proof.js +2 -1
  41. package/dist/proof.js.map +1 -0
  42. package/dist/router.d.ts +1 -0
  43. package/dist/router.d.ts.map +1 -0
  44. package/dist/router.js +9 -1
  45. package/dist/router.js.map +1 -0
  46. package/dist/sshsig/armor.d.ts +1 -0
  47. package/dist/sshsig/armor.d.ts.map +1 -0
  48. package/dist/sshsig/armor.js +1 -0
  49. package/dist/sshsig/armor.js.map +1 -0
  50. package/dist/sshsig/formats.d.ts +1 -0
  51. package/dist/sshsig/formats.d.ts.map +1 -0
  52. package/dist/sshsig/formats.js +1 -0
  53. package/dist/sshsig/formats.js.map +1 -0
  54. package/dist/sshsig/index.d.ts +1 -0
  55. package/dist/sshsig/index.d.ts.map +1 -0
  56. package/dist/sshsig/index.js +1 -0
  57. package/dist/sshsig/index.js.map +1 -0
  58. package/dist/sshsig/reader.d.ts +1 -0
  59. package/dist/sshsig/reader.d.ts.map +1 -0
  60. package/dist/sshsig/reader.js +1 -0
  61. package/dist/sshsig/reader.js.map +1 -0
  62. package/dist/sshsig/sig.d.ts +1 -0
  63. package/dist/sshsig/sig.d.ts.map +1 -0
  64. package/dist/sshsig/sig.js +1 -0
  65. package/dist/sshsig/sig.js.map +1 -0
  66. package/dist/sshsig/sig_parser.d.ts +1 -0
  67. package/dist/sshsig/sig_parser.d.ts.map +1 -0
  68. package/dist/sshsig/sig_parser.js +1 -0
  69. package/dist/sshsig/sig_parser.js.map +1 -0
  70. package/dist/sshsig/verifier.d.ts +1 -0
  71. package/dist/sshsig/verifier.d.ts.map +1 -0
  72. package/dist/sshsig/verifier.js +1 -0
  73. package/dist/sshsig/verifier.js.map +1 -0
  74. package/dist/sshsig/writer.d.ts +1 -0
  75. package/dist/sshsig/writer.d.ts.map +1 -0
  76. package/dist/sshsig/writer.js +1 -0
  77. package/dist/sshsig/writer.js.map +1 -0
  78. package/dist/types.d.ts +8 -8
  79. package/dist/types.d.ts.map +1 -0
  80. package/dist/types.js +1 -0
  81. package/dist/types.js.map +1 -0
  82. package/dist/utils.d.ts +2 -1
  83. package/dist/utils.d.ts.map +1 -0
  84. package/dist/utils.js +14 -11
  85. package/dist/utils.js.map +1 -0
  86. package/dist/verify.d.ts +1 -0
  87. package/dist/verify.d.ts.map +1 -0
  88. package/dist/verify.js +1 -0
  89. package/dist/verify.js.map +1 -0
  90. package/package.json +26 -10
  91. package/src/api/v3/index.ts +419 -0
  92. package/src/api/v3/schema.ts +273 -0
  93. package/src/certificate.ts +220 -0
  94. package/src/db/index.ts +194 -0
  95. package/src/db/migrations/0001_initial_schema.ts +25 -0
  96. package/src/db/migrations/index.ts +6 -0
  97. package/src/index.ts +18 -0
  98. package/src/krl.ts +414 -0
  99. package/src/logger.ts +16 -0
  100. package/src/proof.ts +187 -0
  101. package/src/router.ts +42 -0
  102. package/src/sshsig/armor.ts +24 -0
  103. package/src/sshsig/formats.ts +226 -0
  104. package/src/sshsig/index.ts +47 -0
  105. package/src/sshsig/reader.ts +59 -0
  106. package/src/sshsig/sig.ts +17 -0
  107. package/src/sshsig/sig_parser.ts +90 -0
  108. package/src/sshsig/verifier.ts +85 -0
  109. package/src/sshsig/writer.ts +56 -0
  110. package/src/types.ts +48 -0
  111. package/src/utils.ts +412 -0
  112. package/src/verify.ts +25 -0
  113. package/LICENSE +0 -201
  114. package/dist/db.js +0 -111
package/README.md CHANGED
@@ -1,16 +1,9 @@
1
- # Serverless SSH CA on Cloudflare Workers
2
-
3
- [![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https%3A%2F%2Fgithub.com%2Fandrewheberle%2Fserverless-ssh-ca-template)
4
-
5
- [![codecov](https://codecov.io/gh/andrewheberle/serverless-ssh-ca/graph/badge.svg?flag=worker&token=AZLFIBTTFK)](https://codecov.io/gh/andrewheberle/serverless-ssh-ca)
6
-
7
- This repository contains a serverless Certificate Authority (CA) that can be used
8
- to provide signed certificates for SSH users and hosts running on Cloudflare Workers.
9
-
10
1
  ## @andrewheberle/serverless-ssh-ca
11
2
 
12
3
  This is the package that implements the SSH CA functionality which can be deployed
13
- to Cloudflare as a working solution using the "Deploy to Cloudflare" button.
4
+ to Cloudflare as a working solution using the "Deploy to Cloudflare" button below:
5
+
6
+ [![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https%3A%2F%2Fgithub.com%2Fandrewheberle%2Fserverless-ssh-ca-template)
14
7
 
15
8
  To use the package in your own Worker manually (assuming you have the requried
16
9
  bindings in place), the following code in `src/index.ts` (your Worker's main
@@ -30,8 +23,8 @@ See the following respositories for additional information:
30
23
 
31
24
  | Repostitory | Details |
32
25
  |---|---|
33
- | https://github.com/andrewheberle/ssh-ca-client | Contains client code for issuing user and host certificates |
34
- | https://github.com/andrewheberle/severless-ssh-ca-template | Contains a template repository for deployment to Cloudflare Workers |
26
+ | [https://github.com/andrewheberle/ssh-ca-client](https://github.com/andrewheberle/ssh-ca-client) | Contains client code for issuing user and host certificates |
27
+ | [https://github.com/andrewheberle/serverless-ssh-ca-template](https://github.com/andrewheberle/serverless-ssh-ca-template) | Contains a template repository for deployment to Cloudflare Workers |
35
28
 
36
29
  ## Architecture
37
30
 
@@ -184,20 +177,20 @@ sequenceDiagram
184
177
  This example shows the configuration in Cloudflare Access, however other
185
178
  OIDC IdP's should be generally equivalent:
186
179
 
187
- ![Basic OIDC Settings](images/oidc-example_01.png)
180
+ ![Basic OIDC Settings](docs/images/oidc-example_01.png)
188
181
 
189
182
  The `Redirect URL` must match the configured value in the client.
190
183
 
191
184
  Transfer the IdP settings as follows:
192
185
 
193
- ![IdP Settings](images/oidc-example_02.png)
186
+ ![IdP Settings](docs/images/oidc-example_02.png)
194
187
 
195
188
  The `openid` and `email` scopes are required, with enabling of refresh tokens
196
189
  (the `offline_access` scope) being optional, but recommended.
197
190
 
198
191
  ### Client
199
192
 
200
- Please visit the client repository for further information:
193
+ Please visit the ssh-ca-client repository for further information:
201
194
 
202
195
  https://github.com/andrewheberle/ssh-ca-client
203
196
 
@@ -262,7 +255,3 @@ curl https://ssh-ca.example.com/api/v3/ca
262
255
  Once the above configuration is completed and host certificates are in place
263
256
  clients will not require "trust on first use" (TOFU) as the certificate will be
264
257
  verified as being signed by the configured SSH CA.
265
-
266
- # Attributions
267
-
268
- The icons used by the client are made by Freepik from [www.flaticon.com](https://www.flaticon.com).
@@ -1,2 +1,3 @@
1
1
  import type { SshCaBindings } from "../../types";
2
2
  export declare const createApi: (env: SshCaBindings) => import("chanfana").HonoOpenAPIRouterType<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/v3/index.ts"],"names":[],"mappings":"AAiDA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAsWhD,eAAO,MAAM,SAAS,GAAI,KAAK,aAAa,mHAW3C,CAAA"}
@@ -79,7 +79,7 @@ const UserCertificateRequestEndpoint = (env) => {
79
79
  };
80
80
  const RevocationListEndpoint = (env) => {
81
81
  return class extends OpenAPIRoute {
82
- schema = createRevocationListEndpointSchema(env);
82
+ schema = createRevocationListEndpointSchema();
83
83
  async handle(c) {
84
84
  const data = await this.getValidatedData();
85
85
  const l = logger(env).with(...group("request", "type", data.params.certificateType, "action", "krl"));
@@ -276,3 +276,4 @@ export const createApi = (env) => {
276
276
  api.post("/:certificateType/revoke", RevokeCertificateEndpoint(env));
277
277
  return api;
278
278
  };
279
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/v3/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,19 @@
1
1
  import z from "zod";
2
2
  import type { SshCaBindings } from "../../types";
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>;
3
17
  export declare const CaPublicKeyEndpointSchema: {
4
18
  responses: {
5
19
  "200": {
@@ -12,6 +26,16 @@ export declare const CaPublicKeyEndpointSchema: {
12
26
  };
13
27
  };
14
28
  };
29
+ 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>>>;
31
+ proof: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../proof").ProofOfPossession, string>>;
32
+ identity: z.ZodPipe<z.ZodString, z.ZodTransform<{
33
+ sub: string;
34
+ principals: string[];
35
+ }, string>>;
36
+ extensions: z.ZodDefault<z.ZodArray<z.ZodString>>;
37
+ lifetime: z.ZodDefault<z.ZodInt>;
38
+ }, z.core.$strip>;
15
39
  export declare const createUserCertificateRequestEndpointSchema: (env: SshCaBindings) => {
16
40
  security: {
17
41
  oidcAuth: never[];
@@ -64,7 +88,7 @@ export declare const createUserCertificateRequestEndpointSchema: (env: SshCaBind
64
88
  };
65
89
  };
66
90
  };
67
- export declare const createRevocationListEndpointSchema: (env: SshCaBindings) => {
91
+ export declare const createRevocationListEndpointSchema: () => {
68
92
  request: {
69
93
  params: z.ZodObject<{
70
94
  certificateType: z.ZodEnum<{
@@ -90,6 +114,16 @@ export declare const createRevocationListEndpointSchema: (env: SshCaBindings) =>
90
114
  };
91
115
  };
92
116
  };
117
+ 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>>>;
119
+ proof: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../proof").ProofOfPossession, string>>;
120
+ identity: z.ZodPipe<z.ZodString, z.ZodTransform<{
121
+ sub: string;
122
+ principals: string[];
123
+ }, string>>;
124
+ principals: z.ZodArray<z.ZodString>;
125
+ lifetime: z.ZodDefault<z.ZodInt>;
126
+ }, z.core.$strip>;
93
127
  export declare const createHostCertificateRequestEndpointSchema: (env: SshCaBindings) => {
94
128
  security: {
95
129
  oidcAuth: never[];
@@ -142,6 +176,12 @@ export declare const createHostCertificateRequestEndpointSchema: (env: SshCaBind
142
176
  };
143
177
  };
144
178
  };
179
+ 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>>>;
182
+ proof: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../proof").RenewalProofOfPossession, string>>;
183
+ lifetime: z.ZodDefault<z.ZodInt>;
184
+ }, z.core.$strip>;
145
185
  export declare const createHostCertificateRenewEndpointSchema: (env: SshCaBindings) => {
146
186
  request: {
147
187
  body: {
@@ -177,6 +217,11 @@ export declare const createHostCertificateRenewEndpointSchema: (env: SshCaBindin
177
217
  };
178
218
  };
179
219
  };
220
+ export declare const revokeCertificateEndpointBodySchema: (env: SshCaBindings) => z.ZodObject<{
221
+ serial: z.ZodBigInt;
222
+ public_key: z.ZodPipe<z.ZodPipe<z.ZodBase64, z.ZodTransform<Buffer<ArrayBuffer>, string>>, z.ZodTransform<import("sshpk").Key, Buffer<ArrayBuffer>>>;
223
+ proof: z.ZodPipe<z.ZodString, z.ZodTransform<import("../../proof").ProofOfPossession, string>>;
224
+ }, z.core.$strip>;
180
225
  export declare const createRevokeCertificateEndpointSchema: (env: SshCaBindings) => {
181
226
  request: {
182
227
  params: z.ZodObject<{
@@ -216,3 +261,4 @@ export declare const createRevokeCertificateEndpointSchema: (env: SshCaBindings)
216
261
  };
217
262
  };
218
263
  };
264
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +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,aAAa,CAAA;AAkDhD,eAAO,MAAM,yBAAyB,GAAI,KAAK,aAAa;;;WAO3D,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,KAAK,aAAa;;;WAOzD,CAAA;AAKD,eAAO,MAAM,kBAAkB,GAAI,KAAK,aAAa;;;;;iBAIpD,CAAA;AAKD,eAAO,MAAM,yBAAyB;;;;;;;;;;;CAYrC,CAAA;AAED,eAAO,MAAM,wCAAwC,GAAI,KAAK,aAAa;;;;;;;;;iBAiB1E,CAAA;AAED,eAAO,MAAM,0CAA0C,GAAI,KAAK,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqB3E,CAAA;AAEF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;CAkB7C,CAAA;AAEF,eAAO,MAAM,wCAAwC,GAAI,KAAK,aAAa;;;;;;;;;iBAgB1E,CAAA;AAED,eAAO,MAAM,0CAA0C,GAAI,KAAK,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqB3E,CAAA;AAEF,eAAO,MAAM,sCAAsC,GAAI,KAAK,aAAa;;;;;iBAgBxE,CAAA;AAED,eAAO,MAAM,wCAAwC,GAAI,KAAK,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmBzE,CAAA;AAEF,eAAO,MAAM,mCAAmC,GAAI,KAAK,aAAa;;;;iBAUrE,CAAA;AAED,eAAO,MAAM,qCAAqC,GAAI,KAAK,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBtE,CAAA"}
@@ -20,22 +20,21 @@ const publicKey = openapiStringByte
20
20
  description: "SSH public key to sign",
21
21
  example: "ZWNkc2Etc2hhMi1uaXN0cDI1NiBBQUFBRTJWalpITmhMWE5vWVRJdGJtbHpkSEF5TlRZQUFBQUlibWx6ZEhBeU5UWUFBQUJCQkdNcFNKdHRmMEl0dE5DVmMyOFR6WEZSMUQweHZPM25wNjdWemVBUXNiZFpza3JEY1lqU2x3SjZIUERtVHBYYVUwbEVhWDlMNFloYy9jQ2YxTWU5RlRrPQo="
22
22
  });
23
- const createIdentityTokenSchema = (env) => (z.string()
23
+ export const createIdentityTokenSchema = (env) => (z.string()
24
24
  .meta({
25
25
  description: "Identity Token JWT from OIDC IdP",
26
26
  example: "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwiZW1haWwiOiJ1c2VyQGV4YW1wbGUuY29tIiwiaWF0IjoxNzc1NzAzMDk1fQ.ri_neAWnhMNK3LzlsrBcQYymSM4yRjmNSZZSeZiXhrEqtEz6c3cXk0Esq765umGjpUsWcosL-OFrDJlyAjTDnhrd9oV08uc_CW0rQRsJIGEuRo3ryxkLdVu9mGoZWEUb9KwjGJrwxvr-0cPWx5jaDyKwJcqMvtV_bEITUD51sDB1Vm89QfYRO_pGJo2vrRzSvMjpUenRpwPay4lYIBxl41_4YpR9Rc6VrIZuYsjV2iqEZ4eBrygMA7zPR_hN7l7s95FddLOzj5NsK57VT4uLHwYohx2oqMzw3M-B9HsZIQin_9q61pZFQXepzJth0woXiZheU27llnfHX967PhNQyg"
27
27
  })
28
28
  .transform((val, ctx) => transformIdentityToken(env, val, ctx)));
29
- const createAccessTokenSchema = (env) => (z.string()
29
+ export const createAccessTokenSchema = (env) => (z.string()
30
30
  .meta({
31
31
  description: "Access Token JWT from OIDC IdP",
32
- example: "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwiZW1haWwiOiJ1c2VyQGV4YW1wbGUuY29tIiwiaWF0IjoxNzc1NzAzMDk1fQ.ri_neAWnhMNK3LzlsrBcQYymSM4yRjmNSZZSeZiXhrEqtEz6c3cXk0Esq765umGjpUsWcosL-OFrDJlyAjTDnhrd9oV08uc_CW0rQRsJIGEuRo3ryxkLdVu9mGoZWEUb9KwjGJrwxvr-0cPWx5jaDyKwJcqMvtV_bEITUD51sDB1Vm89QfYRO_pGJo2vrRzSvMjpUenRpwPay4lYIBxl41_4YpR9Rc6VrIZuYsjV2iqEZ4eBrygMA7zPR_hN7l7s95FddLOzj5NsK57VT4uLHwYohx2oqMzw3M-B9HsZIQin_9q61pZFQXepzJth0woXiZheU27llnfHX967PhNQyg"
32
+ example: "Bearer eyJ..."
33
33
  })
34
- .startsWith("Bearer ")
35
34
  .transform((val, ctx) => transformAuthorizationHeader(env, val, ctx)));
36
35
  const krl = openapiStringByte
37
36
  .meta({ description: "Key Revocation List" });
38
- const createHeaderSchema = (env) => (z.object({
37
+ export const createHeaderSchema = (env) => (z.object({
39
38
  "Authorization": createAccessTokenSchema(env)
40
39
  }));
41
40
  const certificate = openapiStringByte
@@ -53,26 +52,27 @@ export const CaPublicKeyEndpointSchema = {
53
52
  ...InternalServerErrorException.schema(),
54
53
  }
55
54
  };
55
+ export const userCertificateRequestEndpointBodySchema = (env) => (z.object({
56
+ public_key: publicKey,
57
+ proof: proofOfPossession
58
+ .transform((val, ctx) => transformProofOfPossession(env, val, ctx)),
59
+ identity: createIdentityTokenSchema(env),
60
+ extensions: z.array(z.string())
61
+ .default(split(env.SSH_CERTIFICATE_EXTENSIONS))
62
+ .meta({ description: "Extensions to include in the issued SSH certificate" }),
63
+ lifetime: z.int()
64
+ .min(seconds("5 minutes"))
65
+ .max(seconds(env.SSH_CERTIFICATE_LIFETIME))
66
+ .default(seconds(env.SSH_CERTIFICATE_LIFETIME))
67
+ .meta({ description: "Lifetime of issued SSH certificate" }),
68
+ })
69
+ .superRefine((val, ctx) => refineCertificateRequest(env, val, ctx))
70
+ .openapi("User Certificate Request"));
56
71
  export const createUserCertificateRequestEndpointSchema = (env) => ({
57
72
  security: [{ oidcAuth: [] }],
58
73
  request: {
59
74
  headers: createHeaderSchema(env),
60
- body: contentJson(z.object({
61
- public_key: publicKey,
62
- proof: proofOfPossession
63
- .transform((val, ctx) => transformProofOfPossession(env, val, ctx)),
64
- identity: createIdentityTokenSchema(env),
65
- extensions: z.array(z.string())
66
- .default(split(env.SSH_CERTIFICATE_EXTENSIONS))
67
- .meta({ description: "Extensions to include in the issued SSH certificate" }),
68
- lifetime: z.int()
69
- .min(seconds("5 minutes"))
70
- .max(seconds(env.SSH_CERTIFICATE_LIFETIME))
71
- .default(seconds(env.SSH_CERTIFICATE_LIFETIME))
72
- .meta({ description: "Lifetime of issued SSH certificate" }),
73
- })
74
- .superRefine((val, ctx) => refineCertificateRequest(env, val, ctx))
75
- .openapi("User Certificate Request"))
75
+ body: contentJson(userCertificateRequestEndpointBodySchema(env)),
76
76
  },
77
77
  responses: {
78
78
  "200": {
@@ -89,7 +89,7 @@ export const createUserCertificateRequestEndpointSchema = (env) => ({
89
89
  ...InternalServerErrorException.schema(),
90
90
  }
91
91
  });
92
- export const createRevocationListEndpointSchema = (env) => ({
92
+ export const createRevocationListEndpointSchema = () => ({
93
93
  request: {
94
94
  params: z.object({
95
95
  certificateType: z.enum(["user", "host"])
@@ -107,25 +107,26 @@ export const createRevocationListEndpointSchema = (env) => ({
107
107
  ...InternalServerErrorException.schema(),
108
108
  }
109
109
  });
110
+ export const hostCertificateRequestEndpointBodySchema = (env) => (z.object({
111
+ public_key: publicKey,
112
+ proof: proofOfPossession
113
+ .transform((val, ctx) => transformProofOfPossession(env, val, ctx)),
114
+ identity: createIdentityTokenSchema(env),
115
+ principals: z.array(z.string()).min(1)
116
+ .meta({ description: "List of principals to include on the issued certificate" }),
117
+ lifetime: z.int()
118
+ .min(seconds("24 hours"))
119
+ .max(seconds(env.SSH_HOST_CERTIFICATE_LIFETIME))
120
+ .default(seconds(env.SSH_HOST_CERTIFICATE_LIFETIME))
121
+ .meta({ description: "Lifetime of issued Host SSH certificate" }),
122
+ })
123
+ .superRefine((val, ctx) => refineHostCertificateRequest(env, val, ctx))
124
+ .openapi("Host Certificate Request"));
110
125
  export const createHostCertificateRequestEndpointSchema = (env) => ({
111
126
  security: [{ oidcAuth: [] }],
112
127
  request: {
113
128
  headers: createHeaderSchema(env),
114
- body: contentJson(z.object({
115
- public_key: publicKey,
116
- proof: proofOfPossession
117
- .transform((val, ctx) => transformProofOfPossession(env, val, ctx)),
118
- identity: createIdentityTokenSchema(env),
119
- principals: z.array(z.string()).min(1)
120
- .meta({ description: "List of principals to include on the issued certificate" }),
121
- lifetime: z.int()
122
- .min(seconds("24 hours"))
123
- .max(seconds(env.SSH_HOST_CERTIFICATE_LIFETIME))
124
- .default(seconds(env.SSH_HOST_CERTIFICATE_LIFETIME))
125
- .meta({ description: "Lifetime of issued Host SSH certificate" }),
126
- })
127
- .superRefine((val, ctx) => refineHostCertificateRequest(env, val, ctx))
128
- .openapi("Host Certificate Request"))
129
+ body: contentJson(hostCertificateRequestEndpointBodySchema(env))
129
130
  },
130
131
  responses: {
131
132
  "200": {
@@ -142,23 +143,24 @@ export const createHostCertificateRequestEndpointSchema = (env) => ({
142
143
  ...InternalServerErrorException.schema(),
143
144
  }
144
145
  });
146
+ export const hostCertificateRenewEndpointBodySchema = (env) => (z.object({
147
+ certificate: openapiStringByte
148
+ .transform(transformCertificate)
149
+ .meta({ description: "SSH certificate to renew" }),
150
+ public_key: publicKey,
151
+ proof: proofOfPossession
152
+ .transform((val, ctx) => transformRenewalProofOfPossession(env, val, ctx)),
153
+ lifetime: z.int()
154
+ .min(seconds("24 hours"))
155
+ .max(seconds(env.SSH_HOST_CERTIFICATE_LIFETIME))
156
+ .default(seconds(env.SSH_HOST_CERTIFICATE_LIFETIME))
157
+ .meta({ description: "Lifetime of renewed Host SSH certificate" }),
158
+ })
159
+ .superRefine((val, ctx) => refineHostCertificateRenewal(env, isRevoked, val, ctx))
160
+ .openapi("Host Certificate Renew"));
145
161
  export const createHostCertificateRenewEndpointSchema = (env) => ({
146
162
  request: {
147
- body: contentJson(z.object({
148
- certificate: openapiStringByte
149
- .transform(transformCertificate)
150
- .meta({ description: "SSH certificate to renew" }),
151
- public_key: publicKey,
152
- proof: proofOfPossession
153
- .transform((val, ctx) => transformRenewalProofOfPossession(env, val, ctx)),
154
- lifetime: z.int()
155
- .min(seconds("24 hours"))
156
- .max(seconds(env.SSH_HOST_CERTIFICATE_LIFETIME))
157
- .default(seconds(env.SSH_HOST_CERTIFICATE_LIFETIME))
158
- .meta({ description: "Lifetime of renewed Host SSH certificate" }),
159
- })
160
- .superRefine((val, ctx) => refineHostCertificateRenewal(env, isRevoked, val, ctx))
161
- .openapi("Host Certificate Renew"))
163
+ body: contentJson(hostCertificateRenewEndpointBodySchema(env))
162
164
  },
163
165
  responses: {
164
166
  "200": {
@@ -175,20 +177,21 @@ export const createHostCertificateRenewEndpointSchema = (env) => ({
175
177
  ...InternalServerErrorException.schema(),
176
178
  }
177
179
  });
180
+ export const revokeCertificateEndpointBodySchema = (env) => (z.object({
181
+ serial: z.bigint()
182
+ .meta({ description: "Serial number of certificate to revoke" }),
183
+ public_key: publicKey,
184
+ proof: proofOfPossession
185
+ .transform((val, ctx) => transformProofOfPossession(env, val, ctx)),
186
+ })
187
+ .openapi("Certificate Revocation")
188
+ .superRefine((val, ctx) => refineRevokeCertificate(env, val, ctx)));
178
189
  export const createRevokeCertificateEndpointSchema = (env) => ({
179
190
  request: {
180
191
  params: z.object({
181
192
  certificateType: z.enum(["user", "host"])
182
193
  }),
183
- body: contentJson(z.object({
184
- serial: z.bigint()
185
- .meta({ description: "Serial number of certificate to revoke" }),
186
- public_key: publicKey,
187
- proof: proofOfPossession
188
- .transform((val, ctx) => transformProofOfPossession(env, val, ctx)),
189
- })
190
- .openapi("Certificate Revocation")
191
- .superRefine((val, ctx) => refineRevokeCertificate(env, val, ctx)))
194
+ body: contentJson(revokeCertificateEndpointBodySchema(env))
192
195
  },
193
196
  responses: {
194
197
  "200": {
@@ -206,3 +209,4 @@ export const createRevokeCertificateEndpointSchema = (env) => ({
206
209
  ...ConflictException.schema()
207
210
  }
208
211
  });
212
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/api/v3/schema.ts"],"names":[],"mappings":"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"}
@@ -28,3 +28,4 @@ export declare class BadIssuerError extends Error {
28
28
  }
29
29
  export declare function createSignedHostCertificate(env: SshCaBindings, public_key: Key, options?: CreateHostCertificateOptions): Promise<Certificate>;
30
30
  export declare const generateSerial: (serial?: bigint) => Buffer<ArrayBuffer>;
31
+ //# sourceMappingURL=certificate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"certificate.d.ts","sourceRoot":"","sources":["../src/certificate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAqB,QAAQ,EAAoD,GAAG,EAAmB,UAAU,EAAE,MAAM,OAAO,CAAA;AAGpJ,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAI5C,MAAM,MAAM,wBAAwB,GAAG;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB,CAAA;AAQD,qBAAa,gBAAiB,SAAQ,KAAK;gBAC9B,OAAO,EAAE,MAAM;CAO3B;AAED,MAAM,MAAM,0BAA0B,GAAG;IACxC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,wBAAwB,CAAA;AAE5B,eAAO,MAAM,mBAAmB,GAAI,KAAK,aAAa,EAAE,OAAO,MAAM,EAAE,KAAK,UAAU,EAAE,YAAY,GAAG,EAAE,UAAU,0BAA0B,KAAG,WAuF/I,CAAA;AAED,wBAAsB,uBAAuB,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,WAAW,CAAC,CAgB1J;AAED,MAAM,MAAM,4BAA4B,GAAG;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAA;CACrB,CAAA;AAOD,qBAAa,cAAe,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAM3B;AAED,wBAAsB,2BAA2B,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,4BAA4B,GAAG,OAAO,CAAC,WAAW,CAAC,CAyCnJ;AAED,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,KAAG,MAAM,CAAC,WAAW,CAUlE,CAAA"}
@@ -15,9 +15,15 @@ export class CertificateError extends Error {
15
15
  }
16
16
  }
17
17
  export const generateCertificate = (env, email, key, public_key, options) => {
18
- let { lifetime, principals, extensions, serial } = options ?? {};
18
+ let { lifetime } = options ?? {};
19
+ const { principals, extensions, serial } = options ?? {};
19
20
  // add identities
20
- const identity = env.SSH_CERTIFICATE_INCLUDE_SELF === "true"
21
+ const includeSelf = env.SSH_CERTIFICATE_INCLUDE_SELF === undefined
22
+ ? false
23
+ : typeof env.SSH_CERTIFICATE_INCLUDE_SELF === "string"
24
+ ? env.SSH_CERTIFICATE_INCLUDE_SELF === "true"
25
+ : env.SSH_CERTIFICATE_INCLUDE_SELF;
26
+ const identity = includeSelf
21
27
  ? [identityForUser(email.split("@")[0])]
22
28
  : [];
23
29
  if (principals !== undefined) {
@@ -25,10 +31,8 @@ export const generateCertificate = (env, email, key, public_key, options) => {
25
31
  identity.push(identityForUser(p));
26
32
  }
27
33
  }
28
- if (env.SSH_CERTIFICATE_PRINCIPALS !== "") {
29
- for (const p of split(env.SSH_CERTIFICATE_PRINCIPALS)) {
30
- identity.push(identityForUser(p));
31
- }
34
+ for (const p of split(env.SSH_CERTIFICATE_PRINCIPALS)) {
35
+ identity.push(identityForUser(p));
32
36
  }
33
37
  // lifetime is the smaller of what was provided in the options or the default
34
38
  lifetime = lifetime !== undefined
@@ -152,3 +156,4 @@ export const generateSerial = (serial) => {
152
156
  const randomBytes = crypto.getRandomValues(new Uint8Array(8));
153
157
  return Buffer.from(randomBytes);
154
158
  };
159
+ //# sourceMappingURL=certificate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"certificate.js","sourceRoot":"","sources":["../src/certificate.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Certificate } from "sshpk";
2
- import type { SshCaBindings } from "./types";
2
+ import type { SshCaBindings } from "../types";
3
3
  export declare enum CertificateType {
4
4
  User = 0,
5
5
  Host = 1
@@ -16,8 +16,9 @@ export type CertificateRecord = {
16
16
  certificate_type: CertificateType;
17
17
  public_key: string | null;
18
18
  };
19
- export declare const runStatement: <T = Record<string, unknown>>(stmt: D1PreparedStatement) => Promise<D1Result<T>>;
20
- export declare const shouldRetry: (err: unknown, nextAttempt: number) => boolean;
19
+ export type DatabaseSchema = {
20
+ certificates: CertificateRecord;
21
+ };
21
22
  export declare const dbCleanup: (env: SshCaBindings) => Promise<void>;
22
23
  export declare const recordCertificate: (env: SshCaBindings, certificate: Certificate, keyid: string, certificateType?: CertificateType) => Promise<void>;
23
24
  export declare const isRevoked: (env: SshCaBindings, serial: bigint) => Promise<boolean>;
@@ -29,8 +30,7 @@ export declare enum RevocationStatus {
29
30
  }
30
31
  export declare const revocationStatus: (env: SshCaBindings, serial: bigint, publickey: string, certificateType: CertificateType) => Promise<RevocationStatus>;
31
32
  export declare const getRevocationList: (env: SshCaBindings, certificateType: CertificateType) => Promise<string[]>;
32
- type RevokedCertificate = {
33
- revoked_at: string;
34
- };
33
+ type RevokedCertificate = Pick<CertificateRecord, "revoked_at">;
35
34
  export declare const revokeCertificate: (env: SshCaBindings, serial: bigint) => Promise<RevokedCertificate[]>;
36
35
  export {};
36
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAoB,MAAM,OAAO,CAAA;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAI7C,oBAAY,eAAe;IAC1B,IAAI,IAAA;IACJ,IAAI,IAAA;CACJ;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,WAAW,EAAE,IAAI,CAAA;IACjB,YAAY,EAAE,IAAI,CAAA;IAClB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAA;IACvB,gBAAgB,EAAE,eAAe,CAAA;IACjC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC5B,YAAY,EAAE,iBAAiB,CAAA;CAC/B,CAAA;AAqBD,eAAO,MAAM,SAAS,GAAU,KAAK,aAAa,kBAqBjD,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAU,KAAK,aAAa,EAAE,aAAa,WAAW,EAAE,OAAO,MAAM,EAAE,kBAAiB,eAAsC,kBA2B3J,CAAA;AAED,eAAO,MAAM,SAAS,GAAU,KAAK,aAAa,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,OAAO,CAYnF,CAAA;AAED,oBAAY,gBAAgB;IAC3B,QAAQ,IAAA;IACR,OAAO,IAAA;IACP,SAAS,IAAA;IACT,WAAW,IAAA;CACX;AAED,eAAO,MAAM,gBAAgB,GAAU,KAAK,aAAa,EAAE,QAAQ,MAAM,EAAE,WAAW,MAAM,EAAE,iBAAiB,eAAe,KAAG,OAAO,CAAC,gBAAgB,CAwBxJ,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAU,KAAK,aAAa,EAAE,iBAAiB,eAAe,KAAG,OAAO,CAAC,MAAM,EAAE,CAoB9G,CAAA;AAED,KAAK,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAA;AAE/D,eAAO,MAAM,iBAAiB,GAAU,KAAK,aAAa,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,kBAAkB,EAAE,CAuBxG,CAAA"}