@andrewheberle/serverless-ssh-ca 0.23.0 → 0.24.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 (94) hide show
  1. package/README.md +119 -0
  2. package/dist/api/operations.d.ts +2 -1
  3. package/dist/api/operations.d.ts.map +1 -1
  4. package/dist/api/operations.js +103 -14
  5. package/dist/api/operations.js.map +1 -1
  6. package/dist/api/schema.d.ts +1 -0
  7. package/dist/api/schema.d.ts.map +1 -1
  8. package/dist/api/schema.js +8 -1
  9. package/dist/api/schema.js.map +1 -1
  10. package/dist/api/v3/index.d.ts.map +1 -1
  11. package/dist/api/v3/index.js +1 -1
  12. package/dist/api/v3/index.js.map +1 -1
  13. package/dist/api/v3/schema.d.ts.map +1 -1
  14. package/dist/api/v3/schema.js +11 -7
  15. package/dist/api/v3/schema.js.map +1 -1
  16. package/dist/api/v4/index.d.ts.map +1 -1
  17. package/dist/api/v4/index.js +1 -1
  18. package/dist/api/v4/index.js.map +1 -1
  19. package/dist/api/v4/schema.d.ts.map +1 -1
  20. package/dist/api/v4/schema.js +11 -7
  21. package/dist/api/v4/schema.js.map +1 -1
  22. package/dist/db/index.d.ts +51 -4
  23. package/dist/db/index.d.ts.map +1 -1
  24. package/dist/db/index.js +133 -33
  25. package/dist/db/index.js.map +1 -1
  26. package/dist/db/migrations/0003_krl_revision.d.ts +3 -0
  27. package/dist/db/migrations/0003_krl_revision.d.ts.map +1 -0
  28. package/dist/db/migrations/0003_krl_revision.js +14 -0
  29. package/dist/db/migrations/0003_krl_revision.js.map +1 -0
  30. package/dist/db/migrations/index.d.ts.map +1 -1
  31. package/dist/db/migrations/index.js +2 -0
  32. package/dist/db/migrations/index.js.map +1 -1
  33. package/dist/db/types.d.ts +2 -0
  34. package/dist/db/types.d.ts.map +1 -1
  35. package/dist/index.d.ts +5 -2
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +4 -2
  38. package/dist/index.js.map +1 -1
  39. package/dist/krl.d.ts +2 -1
  40. package/dist/krl.d.ts.map +1 -1
  41. package/dist/krl.js +3 -2
  42. package/dist/krl.js.map +1 -1
  43. package/dist/node/cache.d.ts +21 -0
  44. package/dist/node/cache.d.ts.map +1 -0
  45. package/dist/node/cache.js +49 -0
  46. package/dist/node/cache.js.map +1 -0
  47. package/dist/node/env.d.ts +6 -3
  48. package/dist/node/env.d.ts.map +1 -1
  49. package/dist/node/env.js +4 -3
  50. package/dist/node/env.js.map +1 -1
  51. package/dist/node/index.d.ts +1 -0
  52. package/dist/node/index.d.ts.map +1 -1
  53. package/dist/node/index.js +1 -0
  54. package/dist/node/index.js.map +1 -1
  55. package/dist/router.d.ts +25 -1
  56. package/dist/router.d.ts.map +1 -1
  57. package/dist/router.js +38 -1
  58. package/dist/router.js.map +1 -1
  59. package/dist/ssh/keys.d.ts +12 -0
  60. package/dist/ssh/keys.d.ts.map +1 -1
  61. package/dist/ssh/keys.js +28 -0
  62. package/dist/ssh/keys.js.map +1 -1
  63. package/dist/types.d.ts +53 -3
  64. package/dist/types.d.ts.map +1 -1
  65. package/dist/utils.d.ts +68 -1
  66. package/dist/utils.d.ts.map +1 -1
  67. package/dist/utils.js +166 -13
  68. package/dist/utils.js.map +1 -1
  69. package/dist/verify.d.ts +17 -5
  70. package/dist/verify.d.ts.map +1 -1
  71. package/dist/verify.js +47 -9
  72. package/dist/verify.js.map +1 -1
  73. package/openapi.json +402 -2
  74. package/package.json +1 -1
  75. package/src/api/operations.ts +115 -12
  76. package/src/api/schema.ts +9 -0
  77. package/src/api/v3/index.ts +1 -0
  78. package/src/api/v3/schema.ts +11 -4
  79. package/src/api/v4/index.ts +1 -0
  80. package/src/api/v4/schema.ts +11 -5
  81. package/src/db/index.ts +162 -37
  82. package/src/db/migrations/0003_krl_revision.ts +15 -0
  83. package/src/db/migrations/index.ts +2 -0
  84. package/src/db/types.ts +2 -0
  85. package/src/index.ts +6 -4
  86. package/src/krl.ts +3 -2
  87. package/src/node/cache.ts +62 -0
  88. package/src/node/env.ts +6 -5
  89. package/src/node/index.ts +1 -0
  90. package/src/router.ts +64 -2
  91. package/src/ssh/keys.ts +33 -0
  92. package/src/types.ts +49 -3
  93. package/src/utils.ts +188 -14
  94. package/src/verify.ts +54 -14
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/v4/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/v4/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/api/v4/schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAmBnD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAanD;;GAEG;AACH,eAAO,MAAM,WAAW,wBAAwB,CAAA;AAEhD,eAAO,MAAM,iBAAiB,QAAS,aAAa,+FAOnD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,QAAS,aAAa;;iBAIzD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,+BAA+B,QAAS,aAAa;;;;;;iBAKjE,CAAA;AAED,eAAO,MAAM,iBAAiB;;iBAS5B,CAAA;AAUF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;CAG1C,CAAA;AAEF,eAAO,MAAM,qCAAqC,oBAAqB,eAAe;;;;;;;;;;;;;;;;;;;;;CAGpF,CAAA;AAEF,eAAO,MAAM,sCAAsC,QAAS,aAAa;;;;;;;;iBAcxE,CAAA;AAED,eAAO,MAAM,wCAAwC,QAAS,aAAa;;;;;;;;;QAOzE,OAAO;;;;;;;QACP,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAaJ,CAAA;AAEF,eAAO,MAAM,sCAAsC,QAAS,aAAa;;;;;;;;iBAaxE,CAAA;AAED,eAAO,MAAM,wCAAwC,QAAS,aAAa;;;;;;;;;QAOzE,OAAO;;;;;;;QACP,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAaJ,CAAA;AAEF,eAAO,MAAM,sCAAsC,QAAS,aAAa;;;iBAaxE,CAAA;AAED,eAAO,MAAM,wCAAwC,QAAS,aAAa;;;;;;QAMzE,MAAM;;;QACN,OAAO;;;QACP,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAaJ,CAAA;AAEF,eAAO,MAAM,qCAAqC,QAAS,aAAa,mBAAmB,eAAe;;;;;;QAMxG,MAAM;;;QACN,OAAO;;;;;;;;;;;;;;;;;;CAgBP,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/api/v4/schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAqBnD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAanD;;GAEG;AACH,eAAO,MAAM,WAAW,wBAAwB,CAAA;AAEhD,eAAO,MAAM,iBAAiB,QAAS,aAAa,+FAOnD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,QAAS,aAAa;;iBAIzD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,+BAA+B,QAAS,aAAa;;;;;;iBAKjE,CAAA;AAED,eAAO,MAAM,iBAAiB;;iBAS5B,CAAA;AAUF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;CAG1C,CAAA;AAEF,eAAO,MAAM,qCAAqC,oBAAqB,eAAe;;;;;;;;;;;;;;;;;;;;;CAGpF,CAAA;AAEF,eAAO,MAAM,sCAAsC,QAAS,aAAa;;;;;;;;iBAcxE,CAAA;AAED,eAAO,MAAM,wCAAwC,QAAS,aAAa;;;;;;;;;QAOzE,OAAO;;;;;;;QACP,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAcJ,CAAA;AAEF,eAAO,MAAM,sCAAsC,QAAS,aAAa;;;;;;;;iBAaxE,CAAA;AAED,eAAO,MAAM,wCAAwC,QAAS,aAAa;;;;;;;;;QAOzE,OAAO;;;;;;;QACP,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAcJ,CAAA;AAEF,eAAO,MAAM,sCAAsC,QAAS,aAAa;;;iBAaxE,CAAA;AAED,eAAO,MAAM,wCAAwC,QAAS,aAAa;;;;;;QAMzE,MAAM;;;QACN,OAAO;;;QACP,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAcJ,CAAA;AAEF,eAAO,MAAM,qCAAqC,QAAS,aAAa,mBAAmB,eAAe;;;;;;QAMxG,MAAM;;;QACN,OAAO;;;;;;;;;;;;;;;;;;CAiBP,CAAA"}
@@ -1,10 +1,10 @@
1
1
  import z from "zod";
2
- import { refineRenewableCertificate, split, transformCertificate, transformProofOfPossession, } from "../../utils.js";
3
- import { ConflictException, contentJson, InputValidationException, InternalServerErrorException, NotFoundException, UnauthorizedException, ForbiddenException, UnprocessableEntityException, } from "chanfana";
2
+ import { refineHostPrincipal, refineRenewableCertificate, split, transformCertificate, transformProofOfPossession, } from "../../utils.js";
3
+ import { ConflictException, contentJson, InputValidationException, InternalServerErrorException, TooManyRequestsException, NotFoundException, UnauthorizedException, ForbiddenException, UnprocessableEntityException, } from "chanfana";
4
4
  import { seconds } from "itty-time";
5
5
  import { isRevoked } from "../../db/index.js";
6
6
  import { CertificateType } from "../../db/types.js";
7
- import { CaPublicKeyEndpointSchema, certificate, certificateTypeName, certificateTypeTag, createAccessTokenSchema, createIdentityTokenSchema, createRevocationListEndpointSchema, openapiStringByte, publicKey, } from "../schema.js";
7
+ import { CaPublicKeyEndpointSchema, certificate, certificateTypeName, certificateTypeTag, createAccessTokenSchema, createIdentityTokenSchema, createRevocationListEndpointSchema, openapiStringByte, subjectPublicKey, } from "../schema.js";
8
8
  /**
9
9
  * The name of the header carrying the proof of possession of the private key
10
10
  */
@@ -54,7 +54,7 @@ export const createGetRevocationListEndpointSchema = (certificateType) => ({
54
54
  operationId: `get_${certificateTypeName(certificateType)}_revocation_list`,
55
55
  });
56
56
  export const issueUserCertificateEndpointBodySchema = (env) => (z.object({
57
- public_key: publicKey,
57
+ public_key: subjectPublicKey,
58
58
  identity: createIdentityTokenSchema(env),
59
59
  extensions: z.array(z.string())
60
60
  .default(split(env.SSH_CERTIFICATE_EXTENSIONS))
@@ -86,12 +86,13 @@ export const createIssueUserCertificateEndpointSchema = (env) => ({
86
86
  ...InputValidationException.schema(),
87
87
  ...UnprocessableEntityException.schema(),
88
88
  ...InternalServerErrorException.schema(),
89
+ ...TooManyRequestsException.schema(),
89
90
  }
90
91
  });
91
92
  export const issueHostCertificateEndpointBodySchema = (env) => (z.object({
92
- public_key: publicKey,
93
+ public_key: subjectPublicKey,
93
94
  identity: createIdentityTokenSchema(env),
94
- principals: z.array(z.string()).min(1)
95
+ principals: z.array(z.string().superRefine(refineHostPrincipal)).min(1)
95
96
  .meta({ description: "List of principals to include on the issued certificate" }),
96
97
  lifetime: z.int()
97
98
  .min(seconds("24 hours"))
@@ -120,6 +121,7 @@ export const createIssueHostCertificateEndpointSchema = (env) => ({
120
121
  ...InputValidationException.schema(),
121
122
  ...UnprocessableEntityException.schema(),
122
123
  ...InternalServerErrorException.schema(),
124
+ ...TooManyRequestsException.schema(),
123
125
  }
124
126
  });
125
127
  export const renewHostCertificateEndpointBodySchema = (env) => (z.object({
@@ -138,7 +140,7 @@ export const createRenewHostCertificateEndpointSchema = (env) => ({
138
140
  tags: [certificateTypeTag(CertificateType.Host)],
139
141
  operationId: "renew_host_certificate",
140
142
  summary: "Renew a host certificate",
141
- description: `Issues a new SSH host certificate for the same public key and principals as an existing, unexpired and unrevoked host certificate issued by this CA. No OIDC authentication is required; instead the \`${ProofHeader}\` header must contain a proof of possession of the private key for the existing certificate made for this request. The lifetime of the renewed certificate is no longer than that of the existing certificate.`,
143
+ description: `Issues a new SSH host certificate for the same public key and principals as an existing, unexpired and unrevoked host certificate issued by this CA. No OIDC authentication is required; instead the \`${ProofHeader}\` header must contain a proof of possession of the private key for the existing certificate made for this request. The lifetime of the renewed certificate is no longer than that of the existing certificate. The existing certificate is revoked, so it cannot be used or renewed again once the renewed certificate is installed.`,
142
144
  request: {
143
145
  params: serialParamSchema,
144
146
  headers: createProofHeaderSchema(env),
@@ -154,6 +156,7 @@ export const createRenewHostCertificateEndpointSchema = (env) => ({
154
156
  ...InputValidationException.schema(),
155
157
  ...UnprocessableEntityException.schema(),
156
158
  ...InternalServerErrorException.schema(),
159
+ ...TooManyRequestsException.schema(),
157
160
  }
158
161
  });
159
162
  export const createRevokeCertificateEndpointSchema = (env, certificateType) => ({
@@ -177,6 +180,7 @@ export const createRevokeCertificateEndpointSchema = (env, certificateType) => (
177
180
  ...NotFoundException.schema(),
178
181
  ...ConflictException.schema(),
179
182
  ...InternalServerErrorException.schema(),
183
+ ...TooManyRequestsException.schema(),
180
184
  }
181
185
  });
182
186
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/api/v4/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/api/v4/schema.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AAEnB,OAAO,EACN,mBAAmB,EACnB,0BAA0B,EAC1B,KAAK,EACL,oBAAoB,EACpB,0BAA0B,GAC1B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACN,iBAAiB,EACjB,WAAW,EACX,wBAAwB,EACxB,4BAA4B,EAC5B,wBAAwB,EACxB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,4BAA4B,GAC5B,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EACN,yBAAyB,EACzB,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,kCAAkC,EAClC,iBAAiB,EACjB,gBAAgB,GAChB,MAAM,cAAc,CAAA;AAErB;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,qBAAqB,CAAA;AAEhD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAkB,EAAE,EAAE,CAAC,CACxD,CAAC,CAAC,MAAM,EAAE;KACR,IAAI,CAAC;IACL,WAAW,EAAE,0eAA0e;IACvf,OAAO,EAAE,8GAA8G;CACvH,CAAC;KACD,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CACpE,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAkB,EAAE,EAAE,CAAC,CAC9D,CAAC,CAAC,MAAM,CAAC;IACR,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAC;CACrC,CAAC,CACF,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,GAAkB,EAAE,EAAE,CAAC,CACtE,CAAC,CAAC,MAAM,CAAC;IACR,eAAe,EAAE,uBAAuB,CAAC,GAAG,CAAC;IAC7C,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAC;CACrC,CAAC,CACF,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,oEAAoE;IACpE,wEAAwE;IACxE,oBAAoB;IACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;SAChB,KAAK,CAAC,gBAAgB,CAAC;SACvB,SAAS,CAAC,MAAM,CAAC;SACjB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,mBAAmB,EAAE,EAAE,OAAO,EAAE,+CAA+C,EAAE,CAAC;SACrG,IAAI,CAAC,EAAE,WAAW,EAAE,kCAAkC,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;CAC5F,CAAC,CAAA;AAEF,MAAM,mBAAmB,GAAG;IAC3B,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;QACvB,WAAW,EAAE,WAAW;KACxB,CAAC;SACA,OAAO,CAAC,sBAAsB,CAAC,CAChC;CACD,CAAA;AAED,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,EAAE,CAAC,CAAC;IACrD,GAAG,yBAAyB;IAC5B,WAAW,EAAE,mBAAmB;CAChC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,eAAgC,EAAE,EAAE,CAAC,CAAC;IAC3F,GAAG,kCAAkC,CAAC,eAAe,CAAC;IACtD,WAAW,EAAE,OAAO,mBAAmB,CAAC,eAAe,CAAC,kBAAkB;CAC1E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,GAAkB,EAAE,EAAE,CAAC,CAC7E,CAAC,CAAC,MAAM,CAAC;IACR,UAAU,EAAE,gBAAgB;IAC5B,QAAQ,EAAE,yBAAyB,CAAC,GAAG,CAAC;IACxC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SAC7B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;SAC9C,IAAI,CAAC,EAAE,WAAW,EAAE,qDAAqD,EAAE,CAAC;IAC9E,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE;SACf,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SACzB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;SAC1C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;SAC9C,IAAI,CAAC,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC;CAC7D,CAAC;KACA,OAAO,CAAC,gCAAgC,CAAC,CAC3C,CAAA;AAED,MAAM,CAAC,MAAM,wCAAwC,GAAG,CAAC,GAAkB,EAAE,EAAE,CAAC,CAAC;IAChF,IAAI,EAAE,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAChD,WAAW,EAAE,wBAAwB;IACrC,OAAO,EAAE,4BAA4B;IACrC,WAAW,EAAE,kRAAkR,WAAW,4GAA4G;IACtZ,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC5B,OAAO,EAAE;QACR,OAAO,EAAE,+BAA+B,CAAC,GAAG,CAAC;QAC7C,IAAI,EAAE,WAAW,CAAC,sCAAsC,CAAC,GAAG,CAAC,CAAC;KAC9D;IACD,SAAS,EAAE;QACV,KAAK,EAAE;YACN,WAAW,EAAE,0CAA0C;YACvD,GAAG,mBAAmB;SACtB;QACD,GAAG,qBAAqB,CAAC,MAAM,EAAE;QACjC,GAAG,kBAAkB,CAAC,MAAM,EAAE;QAC9B,GAAG,wBAAwB,CAAC,MAAM,EAAE;QACpC,GAAG,4BAA4B,CAAC,MAAM,EAAE;QACxC,GAAG,4BAA4B,CAAC,MAAM,EAAE;QACxC,GAAG,wBAAwB,CAAC,MAAM,EAAE;KACpC;CACD,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,GAAkB,EAAE,EAAE,CAAC,CAC7E,CAAC,CAAC,MAAM,CAAC;IACR,UAAU,EAAE,gBAAgB;IAC5B,QAAQ,EAAE,yBAAyB,CAAC,GAAG,CAAC;IACxC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SACrE,IAAI,CAAC,EAAE,WAAW,EAAE,yDAAyD,EAAE,CAAC;IAClF,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE;SACf,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SACxB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;SAC/C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;SACnD,IAAI,CAAC,EAAE,WAAW,EAAE,yCAAyC,EAAE,CAAC;CAClE,CAAC;KACA,OAAO,CAAC,gCAAgC,CAAC,CAC3C,CAAA;AAED,MAAM,CAAC,MAAM,wCAAwC,GAAG,CAAC,GAAkB,EAAE,EAAE,CAAC,CAAC;IAChF,IAAI,EAAE,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAChD,WAAW,EAAE,wBAAwB;IACrC,OAAO,EAAE,4BAA4B;IACrC,WAAW,EAAE,iSAAiS,WAAW,oHAAoH;IAC7a,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC5B,OAAO,EAAE;QACR,OAAO,EAAE,+BAA+B,CAAC,GAAG,CAAC;QAC7C,IAAI,EAAE,WAAW,CAAC,sCAAsC,CAAC,GAAG,CAAC,CAAC;KAC9D;IACD,SAAS,EAAE;QACV,KAAK,EAAE;YACN,WAAW,EAAE,0CAA0C;YACvD,GAAG,mBAAmB;SACtB;QACD,GAAG,qBAAqB,CAAC,MAAM,EAAE;QACjC,GAAG,kBAAkB,CAAC,MAAM,EAAE;QAC9B,GAAG,wBAAwB,CAAC,MAAM,EAAE;QACpC,GAAG,4BAA4B,CAAC,MAAM,EAAE;QACxC,GAAG,4BAA4B,CAAC,MAAM,EAAE;QACxC,GAAG,wBAAwB,CAAC,MAAM,EAAE;KACpC;CACD,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,GAAkB,EAAE,EAAE,CAAC,CAC7E,CAAC,CAAC,MAAM,CAAC;IACR,WAAW,EAAE,iBAAiB;SAC5B,SAAS,CAAC,oBAAoB,CAAC;SAC/B,IAAI,CAAC,EAAE,WAAW,EAAE,yEAAyE,EAAE,CAAC;IAClG,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE;SACf,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SACxB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;SAC/C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;SACnD,IAAI,CAAC,EAAE,WAAW,EAAE,0CAA0C,EAAE,CAAC;CACnE,CAAC;KACA,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,0BAA0B,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;KAC/E,OAAO,CAAC,kCAAkC,CAAC,CAC7C,CAAA;AAED,MAAM,CAAC,MAAM,wCAAwC,GAAG,CAAC,GAAkB,EAAE,EAAE,CAAC,CAAC;IAChF,IAAI,EAAE,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAChD,WAAW,EAAE,wBAAwB;IACrC,OAAO,EAAE,0BAA0B;IACnC,WAAW,EAAE,0MAA0M,WAAW,uUAAuU;IACziB,OAAO,EAAE;QACR,MAAM,EAAE,iBAAiB;QACzB,OAAO,EAAE,uBAAuB,CAAC,GAAG,CAAC;QACrC,IAAI,EAAE,WAAW,CAAC,sCAAsC,CAAC,GAAG,CAAC,CAAC;KAC9D;IACD,SAAS,EAAE;QACV,KAAK,EAAE;YACN,WAAW,EAAE,2CAA2C;YACxD,GAAG,mBAAmB;SACtB;QACD,GAAG,qBAAqB,CAAC,MAAM,EAAE;QACjC,GAAG,kBAAkB,CAAC,MAAM,EAAE;QAC9B,GAAG,wBAAwB,CAAC,MAAM,EAAE;QACpC,GAAG,4BAA4B,CAAC,MAAM,EAAE;QACxC,GAAG,4BAA4B,CAAC,MAAM,EAAE;QACxC,GAAG,wBAAwB,CAAC,MAAM,EAAE;KACpC;CACD,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,GAAkB,EAAE,eAAgC,EAAE,EAAE,CAAC,CAAC;IAC/G,IAAI,EAAE,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAC3C,WAAW,EAAE,UAAU,mBAAmB,CAAC,eAAe,CAAC,cAAc;IACzE,OAAO,EAAE,YAAY,mBAAmB,CAAC,eAAe,CAAC,cAAc;IACvE,WAAW,EAAE,aAAa,mBAAmB,CAAC,eAAe,CAAC,qDAAqD,mBAAmB,CAAC,eAAe,CAAC,+BAA+B,WAAW,0NAA0N;IAC3Z,OAAO,EAAE;QACR,MAAM,EAAE,iBAAiB;QACzB,OAAO,EAAE,uBAAuB,CAAC,GAAG,CAAC;KACrC;IACD,SAAS,EAAE;QACV,KAAK,EAAE;YACN,WAAW,EAAE,OAAO,mBAAmB,CAAC,eAAe,CAAC,mCAAmC;YAC3F,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;gBACvB,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE;aAC5B,CAAC;iBACA,OAAO,CAAC,qBAAqB,CAAC,CAC/B;SACD;QACD,GAAG,wBAAwB,CAAC,MAAM,EAAE;QACpC,GAAG,iBAAiB,CAAC,MAAM,EAAE;QAC7B,GAAG,iBAAiB,CAAC,MAAM,EAAE;QAC7B,GAAG,4BAA4B,CAAC,MAAM,EAAE;QACxC,GAAG,wBAAwB,CAAC,MAAM,EAAE;KACpC;CACD,CAAC,CAAA"}
@@ -1,9 +1,26 @@
1
1
  import { PublicKey } from "../ssh/keys.js";
2
2
  import type { SshCertificate } from "../ssh/certificate.js";
3
3
  import type { SshCaBindings } from "../types.js";
4
- import { CertificateType, type CertificateRecord } from "./types.js";
4
+ import { CertificateType } from "./types.js";
5
5
  export declare const dbCleanup: (env: SshCaBindings) => Promise<void>;
6
6
  export declare const recordCertificate: (env: SshCaBindings, certificate: SshCertificate, keyid: string, certificateType?: CertificateType) => Promise<void>;
7
+ /**
8
+ * Records a host certificate issued by renewing another, revoking the
9
+ * certificate that was renewed so it cannot be used or renewed again.
10
+ *
11
+ * This is done in a single transaction, and the renewed certificate is only
12
+ * recorded if this call revoked the previous certificate, so when a
13
+ * certificate is renewed more than once concurrently only one renewal is
14
+ * recorded. A previous certificate that was never recorded (for example one
15
+ * signed with the CA key outside of the CA) is recorded so that it can be
16
+ * revoked.
17
+ *
18
+ * @param env The CA bindings
19
+ * @param previous The certificate that was presented for renewal
20
+ * @param certificate The certificate issued by the renewal
21
+ * @returns true if the renewal was recorded, or false if the previous certificate was already revoked
22
+ */
23
+ export declare const recordRenewal: (env: SshCaBindings, previous: SshCertificate, certificate: SshCertificate) => Promise<boolean>;
7
24
  export declare const isRevoked: (env: SshCaBindings, serial: bigint) => Promise<boolean>;
8
25
  export declare enum RevocationStatus {
9
26
  NotFound = 0,
@@ -24,8 +41,37 @@ export declare enum RevocationStatus {
24
41
  */
25
42
  export declare const revocationStatus: (env: SshCaBindings, serial: bigint, publicKey: PublicKey, certificateType: CertificateType) => Promise<RevocationStatus>;
26
43
  export declare const getRevocationList: (env: SshCaBindings, certificateType: CertificateType) => Promise<string[]>;
27
- type RevokedCertificate = Pick<CertificateRecord, "revoked_at">;
44
+ /** The time a certificate was revoked, as an ISO 8601 string */
45
+ type RevokedCertificate = {
46
+ revoked_at: string;
47
+ };
48
+ /**
49
+ * Revokes a certificate that has not already been revoked.
50
+ *
51
+ * A certificate that is already revoked is left unchanged, so when several
52
+ * requests revoke the same certificate concurrently only one of them revokes
53
+ * it and the time it was first revoked is kept.
54
+ *
55
+ * @param env The CA bindings
56
+ * @param serial The serial of the certificate to revoke
57
+ * @returns The revocation time of the certificate, or an empty array if it was not revoked by this call
58
+ */
28
59
  export declare const revokeCertificate: (env: SshCaBindings, serial: bigint) => Promise<RevokedCertificate[]>;
60
+ /**
61
+ * Returns the revision of the KRL for a certificate type, which is
62
+ * incremented whenever a certificate of that type is revoked.
63
+ *
64
+ * @param env The CA bindings
65
+ * @param certificateType The type of certificates in the KRL
66
+ * @returns The current revision
67
+ */
68
+ export declare const getKrlRevision: (env: SshCaBindings, certificateType: CertificateType) => Promise<bigint>;
69
+ /** The version of a KRL and when that version was generated */
70
+ export type KrlVersion = {
71
+ version: bigint;
72
+ /** When the version was first generated, which is the same for every KRL with this version */
73
+ generatedAt: Date;
74
+ };
29
75
  /**
30
76
  * Get the version of the KRL for a certificate type, incrementing it if the
31
77
  * content of the KRL has changed since the version was last returned.
@@ -37,8 +83,9 @@ export declare const revokeCertificate: (env: SshCaBindings, serial: bigint) =>
37
83
  * @param env The bindings for the CA, see {@link SshCaBindings}
38
84
  * @param certificateType The type of certificates in the KRL, see {@link CertificateType}
39
85
  * @param digest A digest of the content of the KRL, which changes whenever the content does
40
- * @returns The version to use for the KRL
86
+ * @returns The version to use for the KRL, and when that version was first
87
+ * generated so that every KRL with the version has the same generation date
41
88
  */
42
- export declare const getKrlVersion: (env: SshCaBindings, certificateType: CertificateType, digest: string) => Promise<bigint>;
89
+ export declare const getKrlVersion: (env: SshCaBindings, certificateType: CertificateType, digest: string) => Promise<KrlVersion>;
43
90
  export {};
44
91
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAKhD,OAAO,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAuC,MAAM,YAAY,CAAA;AAmBzG,eAAO,MAAM,SAAS,QAAe,aAAa,kBAsBjD,CAAA;AAED,eAAO,MAAM,iBAAiB,QAAe,aAAa,eAAe,cAAc,SAAS,MAAM,oBAAmB,eAAe,kBAsBvI,CAAA;AAED,eAAO,MAAM,SAAS,QAAe,aAAa,UAAU,MAAM,KAAG,OAAO,CAAC,OAAO,CAYnF,CAAA;AAED,oBAAY,gBAAgB;IAC3B,QAAQ,IAAA;IACR,OAAO,IAAA;IACP,SAAS,IAAA;CACT;AAYD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,QAAe,aAAa,UAAU,MAAM,aAAa,SAAS,mBAAmB,eAAe,KAAG,OAAO,CAAC,gBAAgB,CAsB3J,CAAA;AAED,eAAO,MAAM,iBAAiB,QAAe,aAAa,mBAAmB,eAAe,KAAG,OAAO,CAAC,MAAM,EAAE,CAsB9G,CAAA;AAED,KAAK,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAA;AAE/D,eAAO,MAAM,iBAAiB,QAAe,aAAa,UAAU,MAAM,KAAG,OAAO,CAAC,kBAAkB,EAAE,CAuBxG,CAAA;AAUD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,QAAe,aAAa,mBAAmB,eAAe,UAAU,MAAM,KAAG,OAAO,CAAC,MAAM,CA4CxH,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAE3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAKhD,OAAO,EAAE,eAAe,EAAuC,MAAM,YAAY,CAAA;AA2BjF,eAAO,MAAM,SAAS,QAAe,aAAa,kBA4BjD,CAAA;AA4BD,eAAO,MAAM,iBAAiB,QAAe,aAAa,eAAe,cAAc,SAAS,MAAM,oBAAmB,eAAe,kBAUvI,CAAA;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,aAAa,QAAe,aAAa,YAAY,cAAc,eAAe,cAAc,KAAG,OAAO,CAAC,OAAO,CAyB9H,CAAA;AAED,eAAO,MAAM,SAAS,QAAe,aAAa,UAAU,MAAM,KAAG,OAAO,CAAC,OAAO,CAYnF,CAAA;AAED,oBAAY,gBAAgB;IAC3B,QAAQ,IAAA;IACR,OAAO,IAAA;IACP,SAAS,IAAA;CACT;AAYD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,QAAe,aAAa,UAAU,MAAM,aAAa,SAAS,mBAAmB,eAAe,KAAG,OAAO,CAAC,gBAAgB,CAsB3J,CAAA;AAED,eAAO,MAAM,iBAAiB,QAAe,aAAa,mBAAmB,eAAe,KAAG,OAAO,CAAC,MAAM,EAAE,CAsB9G,CAAA;AAED,gEAAgE;AAChE,KAAK,kBAAkB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,QAAe,aAAa,UAAU,MAAM,KAAG,OAAO,CAAC,kBAAkB,EAAE,CAoBxG,CAAA;AAMD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,QAAe,aAAa,mBAAmB,eAAe,KAAG,OAAO,CAAC,MAAM,CAYzG,CAAA;AAgBD,+DAA+D;AAC/D,MAAM,MAAM,UAAU,GAAG;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,8FAA8F;IAC9F,WAAW,EAAE,IAAI,CAAA;CACjB,CAAA;AAKD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,QAAe,aAAa,mBAAmB,eAAe,UAAU,MAAM,KAAG,OAAO,CAAC,UAAU,CA8C5H,CAAA"}
package/dist/db/index.js CHANGED
@@ -18,6 +18,12 @@ const connect = async (env) => {
18
18
  throw err;
19
19
  }
20
20
  };
21
+ // statements that increment the KRL revision, so a KRL cached for an earlier
22
+ // revision is not used again
23
+ const BumpAllRevisions = "UPDATE krl SET revision = revision + 1";
24
+ // increments the revision of the KRL for a certificate type, but only if the
25
+ // previous statement in the same batch changed a row
26
+ const BumpRevisionIfChanged = "UPDATE krl SET revision = revision + 1 WHERE certificate_type = ? AND changes() = 1";
21
27
  export const dbCleanup = async (env) => {
22
28
  const l = logger(env).with("retention", env.DB_CERTIFICATE_RETENTION);
23
29
  if (env.DB_CERTIFICATE_RETENTION === "infinite") {
@@ -35,33 +41,86 @@ export const dbCleanup = async (env) => {
35
41
  }
36
42
  }).execute();
37
43
  l.info("completed database cleanup", "changes", res.meta?.changes);
44
+ // revoked certificates may have been removed from the KRLs, so cached
45
+ // KRLs must not be used again
46
+ if ((res.meta?.changes ?? 0) > 0) {
47
+ await env.DB.prepare(BumpAllRevisions).run();
48
+ }
38
49
  }
39
50
  catch (err) {
40
51
  l.error("error during database cleanup", "retention", env.DB_CERTIFICATE_RETENTION, "error", err);
41
52
  }
42
53
  };
43
- export const recordCertificate = async (env, certificate, keyid, certificateType = CertificateType.User) => {
54
+ // the columns recorded for an issued certificate, in the order of the values
55
+ // returned by certificateValues
56
+ const CertificateColumns = ["serial", "key_id", "principals", "extensions", "valid_after", "valid_before", "certificate_type", "public_key"];
57
+ const certificateRecord = (certificate, keyid, certificateType) => {
44
58
  // principals are recorded as distinguished names, as they were when
45
59
  // certificates were created with sshpk
46
60
  const principals = certificate.principals.map((p) => `${certificate.kind === "host" ? "CN" : "UID"}=${p}`).join(",");
61
+ return {
62
+ serial: `${certificate.serial}`,
63
+ key_id: keyid,
64
+ principals: principals,
65
+ extensions: certificate.extensions.join(","),
66
+ valid_after: certificate.validAfter.toISOString(),
67
+ valid_before: certificate.validBefore.toISOString(),
68
+ certificate_type: certificateType,
69
+ public_key: certificate.publicKey.toString()
70
+ };
71
+ };
72
+ const certificateValues = (certificate, keyid, certificateType) => {
73
+ const record = certificateRecord(certificate, keyid, certificateType);
74
+ return CertificateColumns.map((column) => record[column]);
75
+ };
76
+ export const recordCertificate = async (env, certificate, keyid, certificateType = CertificateType.User) => {
47
77
  const qb = await connect(env);
48
78
  const res = await qb.insert({
49
79
  tableName: "certificates",
50
- data: {
51
- serial: `${certificate.serial}`,
52
- key_id: keyid,
53
- principals: principals,
54
- extensions: certificate.extensions.join(","),
55
- valid_after: certificate.validAfter.toISOString(),
56
- valid_before: certificate.validBefore.toISOString(),
57
- certificate_type: certificateType,
58
- public_key: certificate.publicKey.toString()
59
- },
80
+ data: certificateRecord(certificate, keyid, certificateType),
60
81
  }).execute();
61
82
  if (!res.success) {
62
83
  throw new Error("error during query");
63
84
  }
64
85
  };
86
+ /**
87
+ * Records a host certificate issued by renewing another, revoking the
88
+ * certificate that was renewed so it cannot be used or renewed again.
89
+ *
90
+ * This is done in a single transaction, and the renewed certificate is only
91
+ * recorded if this call revoked the previous certificate, so when a
92
+ * certificate is renewed more than once concurrently only one renewal is
93
+ * recorded. A previous certificate that was never recorded (for example one
94
+ * signed with the CA key outside of the CA) is recorded so that it can be
95
+ * revoked.
96
+ *
97
+ * @param env The CA bindings
98
+ * @param previous The certificate that was presented for renewal
99
+ * @param certificate The certificate issued by the renewal
100
+ * @returns true if the renewal was recorded, or false if the previous certificate was already revoked
101
+ */
102
+ export const recordRenewal = async (env, previous, certificate) => {
103
+ // ensure migrations have been applied
104
+ await connect(env);
105
+ const columns = CertificateColumns.join(", ");
106
+ const placeholders = CertificateColumns.map(() => "?").join(", ");
107
+ const revokedAt = (new Date).toISOString();
108
+ const results = await env.DB.batch([
109
+ env.DB.prepare(`INSERT INTO certificates (${columns}) VALUES (${placeholders}) ON CONFLICT (serial) DO NOTHING`)
110
+ .bind(...certificateValues(previous, previous.keyId, CertificateType.Host)),
111
+ env.DB.prepare("UPDATE certificates SET revoked_at = ? WHERE serial = ? AND certificate_type = ? AND revoked_at IS NULL")
112
+ .bind(revokedAt, `${previous.serial}`, CertificateType.Host),
113
+ // changes() is the number of rows revoked by the previous statement
114
+ env.DB.prepare(`INSERT INTO certificates (${columns}) SELECT ${placeholders} WHERE changes() = 1`)
115
+ .bind(...certificateValues(certificate, certificate.keyId, CertificateType.Host)),
116
+ // the previous certificate was revoked if the renewed one was recorded
117
+ env.DB.prepare(BumpRevisionIfChanged).bind(CertificateType.Host),
118
+ ]);
119
+ if (results.some((res) => !res.success)) {
120
+ throw new Error("error during query");
121
+ }
122
+ return results[2]?.meta?.changes === 1;
123
+ };
65
124
  export const isRevoked = async (env, serial) => {
66
125
  const qb = await connect(env);
67
126
  const res = await qb.fetchOne({
@@ -142,31 +201,69 @@ export const getRevocationList = async (env, certificateType) => {
142
201
  }
143
202
  return res.results.map(item => item.serial);
144
203
  };
204
+ /**
205
+ * Revokes a certificate that has not already been revoked.
206
+ *
207
+ * A certificate that is already revoked is left unchanged, so when several
208
+ * requests revoke the same certificate concurrently only one of them revokes
209
+ * it and the time it was first revoked is kept.
210
+ *
211
+ * @param env The CA bindings
212
+ * @param serial The serial of the certificate to revoke
213
+ * @returns The revocation time of the certificate, or an empty array if it was not revoked by this call
214
+ */
145
215
  export const revokeCertificate = async (env, serial) => {
216
+ // ensure migrations have been applied
217
+ await connect(env);
218
+ const revokedAt = (new Date).toISOString();
219
+ // the KRL revision is incremented in the same transaction, so a cached KRL
220
+ // that does not include this certificate is never used again
221
+ const results = await env.DB.batch([
222
+ env.DB.prepare("UPDATE certificates SET revoked_at = ? WHERE serial = ? AND revoked_at IS NULL")
223
+ .bind(revokedAt, `${serial}`),
224
+ env.DB.prepare("UPDATE krl SET revision = revision + 1 WHERE certificate_type = (SELECT certificate_type FROM certificates WHERE serial = ?) AND changes() = 1")
225
+ .bind(`${serial}`),
226
+ ]);
227
+ if (results.some((res) => !res.success)) {
228
+ throw new Error("error during query");
229
+ }
230
+ return results[0]?.meta?.changes === 1 ? [{ revoked_at: revokedAt }] : [];
231
+ };
232
+ const KrlRevisionRow = z.object({
233
+ revision: z.number().int().nonnegative(),
234
+ });
235
+ /**
236
+ * Returns the revision of the KRL for a certificate type, which is
237
+ * incremented whenever a certificate of that type is revoked.
238
+ *
239
+ * @param env The CA bindings
240
+ * @param certificateType The type of certificates in the KRL
241
+ * @returns The current revision
242
+ */
243
+ export const getKrlRevision = async (env, certificateType) => {
146
244
  const qb = await connect(env);
147
- const res = await qb.update({
148
- tableName: "certificates",
149
- data: {
150
- revoked_at: (new Date).toISOString()
151
- },
245
+ const res = await qb.fetchOne({
246
+ tableName: "krl",
247
+ fields: ["revision"],
152
248
  where: {
153
- conditions: "serial = ?",
154
- params: `${serial}`
155
- },
156
- returning: ["revoked_at"]
249
+ conditions: "certificate_type = ?",
250
+ params: certificateType
251
+ }
157
252
  }).execute();
158
- if (!res.success) {
159
- throw new Error("error during query");
160
- }
161
- if (res.results === undefined) {
162
- return [];
163
- }
164
- return res.results;
253
+ return BigInt(KrlRevisionRow.parse(res.results).revision);
165
254
  };
166
255
  const KrlVersionRow = z.object({
167
256
  version: z.number().int().nonnegative(),
168
257
  digest: z.string().nullable(),
258
+ updated_at: z.string(),
169
259
  });
260
+ /**
261
+ * Parses a timestamp from the database, which is either an ISO 8601 string or,
262
+ * when set by SQLite's CURRENT_TIMESTAMP, "YYYY-MM-DD HH:MM:SS" in UTC.
263
+ */
264
+ const parseTimestamp = (value) => {
265
+ return new Date(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(value) ? `${value.replace(" ", "T")}Z` : value);
266
+ };
170
267
  // the number of times to retry when another request updates the KRL version concurrently
171
268
  const KRL_VERSION_ATTEMPTS = 5;
172
269
  /**
@@ -180,14 +277,15 @@ const KRL_VERSION_ATTEMPTS = 5;
180
277
  * @param env The bindings for the CA, see {@link SshCaBindings}
181
278
  * @param certificateType The type of certificates in the KRL, see {@link CertificateType}
182
279
  * @param digest A digest of the content of the KRL, which changes whenever the content does
183
- * @returns The version to use for the KRL
280
+ * @returns The version to use for the KRL, and when that version was first
281
+ * generated so that every KRL with the version has the same generation date
184
282
  */
185
283
  export const getKrlVersion = async (env, certificateType, digest) => {
186
284
  const qb = await connect(env);
187
285
  for (let attempt = 0; attempt < KRL_VERSION_ATTEMPTS; attempt++) {
188
286
  const res = await qb.fetchOne({
189
287
  tableName: "krl",
190
- fields: ["version", "digest"],
288
+ fields: ["version", "digest", "updated_at"],
191
289
  where: {
192
290
  conditions: "certificate_type = ?",
193
291
  params: certificateType
@@ -195,16 +293,18 @@ export const getKrlVersion = async (env, certificateType, digest) => {
195
293
  }).execute();
196
294
  const current = KrlVersionRow.parse(res.results);
197
295
  if (current.digest === digest) {
198
- return BigInt(current.version);
296
+ return { version: BigInt(current.version), generatedAt: parseTimestamp(current.updated_at) };
199
297
  }
200
- // only update if the version has not been changed by another request
298
+ // only update if the version has not been changed by another request,
299
+ // recording the time to the second as that is all a KRL records
201
300
  const next = current.version + 1;
301
+ const generatedAt = new Date(Math.floor(Date.now() / 1000) * 1000);
202
302
  const updated = await qb.update({
203
303
  tableName: "krl",
204
304
  data: {
205
305
  version: next,
206
306
  digest: digest,
207
- updated_at: (new Date).toISOString()
307
+ updated_at: generatedAt.toISOString()
208
308
  },
209
309
  where: {
210
310
  conditions: "certificate_type = ? AND version = ?",
@@ -216,7 +316,7 @@ export const getKrlVersion = async (env, certificateType, digest) => {
216
316
  throw new Error("error during query");
217
317
  }
218
318
  if (updated.results !== undefined && updated.results.length > 0) {
219
- return BigInt(next);
319
+ return { version: BigInt(next), generatedAt };
220
320
  }
221
321
  }
222
322
  throw new Error("unable to update KRL version due to concurrent updates");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Migration } from "../migrate.js";
2
+ export declare const migration: Migration;
3
+ //# sourceMappingURL=0003_krl_revision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"0003_krl_revision.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/0003_krl_revision.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAE9C,eAAO,MAAM,SAAS,EAAE,SAYvB,CAAA"}
@@ -0,0 +1,14 @@
1
+ export const migration = {
2
+ name: "0003_krl_revision",
3
+ statements: [
4
+ // incremented whenever a certificate is revoked, so a cached KRL can be
5
+ // keyed by the revision it was generated for
6
+ "ALTER TABLE krl ADD COLUMN revision INTEGER NOT NULL DEFAULT 0",
7
+ // KRLs were previously generated at the time of each request, but are
8
+ // now generated at the time their version last changed. Starting each
9
+ // version again from now ensures a KRL fetched before this migration
10
+ // is never newer than the same version fetched afterwards.
11
+ "UPDATE krl SET updated_at = CURRENT_TIMESTAMP",
12
+ ]
13
+ };
14
+ //# sourceMappingURL=0003_krl_revision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"0003_krl_revision.js","sourceRoot":"","sources":["../../../src/db/migrations/0003_krl_revision.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAc;IACnC,IAAI,EAAE,mBAAmB;IACzB,UAAU,EAAE;QACX,wEAAwE;QACxE,6CAA6C;QAC7C,gEAAgE;QAChE,sEAAsE;QACtE,sEAAsE;QACtE,qEAAqE;QACrE,2DAA2D;QAC3D,+CAA+C;KAC/C;CACD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAI9C,eAAO,MAAM,UAAU,EAAE,SAAS,EAGjC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAK9C,eAAO,MAAM,UAAU,EAAE,SAAS,EAIjC,CAAA"}
@@ -1,7 +1,9 @@
1
1
  import { migration as initialSchema0001 } from "./0001_initial_schema.js";
2
2
  import { migration as krlVersion0002 } from "./0002_krl_version.js";
3
+ import { migration as krlRevision0003 } from "./0003_krl_revision.js";
3
4
  export const migrations = [
4
5
  initialSchema0001,
5
6
  krlVersion0002,
7
+ krlRevision0003,
6
8
  ];
7
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/migrations/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACzE,OAAO,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEnE,MAAM,CAAC,MAAM,UAAU,GAAgB;IACtC,iBAAiB;IACjB,cAAc;CACd,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/migrations/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACzE,OAAO,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAErE,MAAM,CAAC,MAAM,UAAU,GAAgB;IACtC,iBAAiB;IACjB,cAAc;IACd,eAAe;CACf,CAAA"}
@@ -28,6 +28,8 @@ export type KrlRecord = {
28
28
  version: number;
29
29
  digest: string | null;
30
30
  updated_at: Date;
31
+ /** Incremented whenever a certificate of this type is revoked */
32
+ revision: number;
31
33
  };
32
34
  /** The tables in the database, used to type queries made with workers-qb */
33
35
  export type DatabaseSchema = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/db/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,0EAA0E;AAC1E,oBAAY,eAAe;IAC1B,IAAI,IAAA;IACJ,IAAI,IAAA;CACJ;AAED,wCAAwC;AACxC,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,qGAAqG;AACrG,MAAM,MAAM,SAAS,GAAG;IACvB,gBAAgB,EAAE,eAAe,CAAA;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,UAAU,EAAE,IAAI,CAAA;CAChB,CAAA;AAED,4EAA4E;AAC5E,MAAM,MAAM,cAAc,GAAG;IAC5B,YAAY,EAAE,iBAAiB,CAAA;IAC/B,GAAG,EAAE,SAAS,CAAA;CACd,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/db/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,0EAA0E;AAC1E,oBAAY,eAAe;IAC1B,IAAI,IAAA;IACJ,IAAI,IAAA;CACJ;AAED,wCAAwC;AACxC,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,qGAAqG;AACrG,MAAM,MAAM,SAAS,GAAG;IACvB,gBAAgB,EAAE,eAAe,CAAA;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,UAAU,EAAE,IAAI,CAAA;IAChB,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,4EAA4E;AAC5E,MAAM,MAAM,cAAc,GAAG;IAC5B,YAAY,EAAE,iBAAiB,CAAA;IAC/B,GAAG,EAAE,SAAS,CAAA;CACd,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import type { ExecutionContext } from "hono";
2
+ import { type SshCaOptions } from "./router.js";
2
3
  import type { SshCaBindings } from "./types.js";
3
- export type { CaDatabase, CaDatabaseQueryResult, CaDatabaseResult, CaPreparedStatement, CaSecret, SshCaBindings } from "./types.js";
4
+ export type { CaCache, CaDatabase, CaDatabaseQueryResult, CaDatabaseResult, CaPreparedStatement, CaRateLimiter, CaSecret, SshCaBindings } from "./types.js";
5
+ export { cloudflareClientIp, type RateLimitKey, type SshCaOptions } from "./router.js";
4
6
  /**
5
7
  * A runtime neutral instance of the CA, returned by {@link createSshCa}.
6
8
  */
@@ -25,9 +27,10 @@ export interface SshCa {
25
27
  * the runtime on each request.
26
28
  *
27
29
  * @param env The bindings (configuration, database and private key) for the CA, see {@link SshCaBindings}
30
+ * @param options Options for the CA, such as the key requests are rate limited by, see {@link SshCaOptions}
28
31
  * @returns The CA's request handler and database cleanup task, see {@link SshCa}
29
32
  */
30
- export declare const createSshCa: (env: SshCaBindings) => SshCa;
33
+ export declare const createSshCa: (env: SshCaBindings, options?: SshCaOptions) => SshCa;
31
34
  declare const _default: {
32
35
  fetch(req: Request, env: SshCaBindings, ctx: ExecutionContext): Promise<Response> | Response;
33
36
  scheduled(controller: unknown, env: SshCaBindings, ctx: ExecutionContext): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAA;AAG5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,YAAY,EAAE,UAAU,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAQnI;;GAEG;AACH,MAAM,WAAW,KAAK;IAClB;;;OAGG;IACH,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IACtC;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,QAAS,aAAa,KAAG,KAOhD,CAAA;;eAKc,OAAO,OAAO,aAAa,OAAO,gBAAgB;0BAMjC,OAAO,OAAO,aAAa,OAAO,gBAAgB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAA;AAE5C,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC3J,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AAQtF;;GAEG;AACH,MAAM,WAAW,KAAK;IAClB;;;OAGG;IACH,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IACtC;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,WAAW,QAAS,aAAa,YAAW,YAAY,KAAQ,KAO5E,CAAA;;eAKc,OAAO,OAAO,aAAa,OAAO,gBAAgB;0BAMjC,OAAO,OAAO,aAAa,OAAO,gBAAgB"}