@andrewheberle/serverless-ssh-ca 0.22.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.
- package/README.md +174 -1
- package/dist/api/operations.d.ts +50 -0
- package/dist/api/operations.d.ts.map +1 -0
- package/dist/api/operations.js +264 -0
- package/dist/api/operations.js.map +1 -0
- package/dist/api/schema.d.ts +72 -0
- package/dist/api/schema.d.ts.map +1 -0
- package/dist/api/schema.js +114 -0
- package/dist/api/schema.js.map +1 -0
- package/dist/api/v3/index.d.ts.map +1 -1
- package/dist/api/v3/index.js +13 -202
- package/dist/api/v3/index.js.map +1 -1
- package/dist/api/v3/schema.d.ts +23 -68
- package/dist/api/v3/schema.d.ts.map +1 -1
- package/dist/api/v3/schema.js +18 -104
- package/dist/api/v3/schema.js.map +1 -1
- package/dist/api/v4/index.d.ts +8 -0
- package/dist/api/v4/index.d.ts.map +1 -0
- package/dist/api/v4/index.js +155 -0
- package/dist/api/v4/index.js.map +1 -0
- package/dist/api/v4/schema.d.ts +268 -0
- package/dist/api/v4/schema.d.ts.map +1 -0
- package/dist/api/v4/schema.js +186 -0
- package/dist/api/v4/schema.js.map +1 -0
- package/dist/certificate.d.ts +9 -6
- package/dist/certificate.d.ts.map +1 -1
- package/dist/certificate.js +55 -99
- package/dist/certificate.js.map +1 -1
- package/dist/db/index.d.ts +68 -9
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +165 -49
- package/dist/db/index.js.map +1 -1
- package/dist/db/migrations/0003_krl_revision.d.ts +3 -0
- package/dist/db/migrations/0003_krl_revision.d.ts.map +1 -0
- package/dist/db/migrations/0003_krl_revision.js +14 -0
- package/dist/db/migrations/0003_krl_revision.js.map +1 -0
- package/dist/db/migrations/index.d.ts.map +1 -1
- package/dist/db/migrations/index.js +2 -0
- package/dist/db/migrations/index.js.map +1 -1
- package/dist/db/types.d.ts +2 -0
- package/dist/db/types.d.ts.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/krl.d.ts +3 -2
- package/dist/krl.d.ts.map +1 -1
- package/dist/krl.js +12 -165
- package/dist/krl.js.map +1 -1
- package/dist/node/cache.d.ts +21 -0
- package/dist/node/cache.d.ts.map +1 -0
- package/dist/node/cache.js +49 -0
- package/dist/node/cache.js.map +1 -0
- package/dist/node/env.d.ts +6 -3
- package/dist/node/env.d.ts.map +1 -1
- package/dist/node/env.js +4 -3
- package/dist/node/env.js.map +1 -1
- package/dist/node/index.d.ts +1 -0
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +1 -0
- package/dist/node/index.js.map +1 -1
- package/dist/proof.d.ts +36 -7
- package/dist/proof.d.ts.map +1 -1
- package/dist/proof.js +53 -21
- package/dist/proof.js.map +1 -1
- package/dist/router.d.ts +25 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +41 -2
- package/dist/router.js.map +1 -1
- package/dist/ssh/certificate.d.ts +93 -0
- package/dist/ssh/certificate.d.ts.map +1 -0
- package/dist/ssh/certificate.js +178 -0
- package/dist/ssh/certificate.js.map +1 -0
- package/dist/ssh/encoding.d.ts +41 -0
- package/dist/ssh/encoding.d.ts.map +1 -0
- package/dist/ssh/encoding.js +70 -0
- package/dist/ssh/encoding.js.map +1 -0
- package/dist/ssh/keys.d.ts +92 -0
- package/dist/ssh/keys.d.ts.map +1 -0
- package/dist/ssh/keys.js +277 -0
- package/dist/ssh/keys.js.map +1 -0
- package/dist/ssh/signer.d.ts +35 -0
- package/dist/ssh/signer.d.ts.map +1 -0
- package/dist/ssh/signer.js +99 -0
- package/dist/ssh/signer.js.map +1 -0
- package/dist/types.d.ts +64 -19
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +107 -21
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +251 -65
- package/dist/utils.js.map +1 -1
- package/dist/verify.d.ts +17 -5
- package/dist/verify.d.ts.map +1 -1
- package/dist/verify.js +47 -9
- package/dist/verify.js.map +1 -1
- package/openapi.json +1942 -1
- package/package.json +4 -3
- package/src/api/operations.ts +314 -0
- package/src/api/schema.ts +146 -0
- package/src/api/v3/index.ts +21 -248
- package/src/api/v3/schema.ts +36 -128
- package/src/api/v4/index.ts +266 -0
- package/src/api/v4/schema.ts +241 -0
- package/src/certificate.ts +62 -123
- package/src/db/index.ts +196 -56
- package/src/db/migrations/0003_krl_revision.ts +15 -0
- package/src/db/migrations/index.ts +2 -0
- package/src/db/types.ts +2 -0
- package/src/index.ts +6 -4
- package/src/krl.ts +13 -197
- package/src/node/cache.ts +62 -0
- package/src/node/env.ts +6 -5
- package/src/node/index.ts +1 -0
- package/src/proof.ts +65 -31
- package/src/router.ts +67 -3
- package/src/ssh/certificate.ts +236 -0
- package/src/ssh/encoding.ts +81 -0
- package/src/ssh/keys.ts +327 -0
- package/src/ssh/signer.ts +129 -0
- package/src/types.ts +60 -20
- package/src/utils.ts +285 -81
- package/src/verify.ts +54 -14
package/dist/db/index.js.map
CHANGED
|
@@ -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 @@
|
|
|
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;
|
|
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;
|
|
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"}
|
package/dist/db/types.d.ts
CHANGED
|
@@ -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 = {
|
package/dist/db/types.d.ts.map
CHANGED
|
@@ -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>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { dbCleanup } from "./db/index.js";
|
|
2
2
|
import { createApp } from "./router.js";
|
|
3
|
+
export { cloudflareClientIp } from "./router.js";
|
|
3
4
|
/**
|
|
4
5
|
* Create an instance of the CA bound to a fixed set of bindings, for use on
|
|
5
6
|
* runtimes other than Cloudflare Workers.
|
|
@@ -8,10 +9,11 @@ import { createApp } from "./router.js";
|
|
|
8
9
|
* the runtime on each request.
|
|
9
10
|
*
|
|
10
11
|
* @param env The bindings (configuration, database and private key) for the CA, see {@link SshCaBindings}
|
|
12
|
+
* @param options Options for the CA, such as the key requests are rate limited by, see {@link SshCaOptions}
|
|
11
13
|
* @returns The CA's request handler and database cleanup task, see {@link SshCa}
|
|
12
14
|
*/
|
|
13
|
-
export const createSshCa = (env) => {
|
|
14
|
-
const app = createApp(env);
|
|
15
|
+
export const createSshCa = (env, options = {}) => {
|
|
16
|
+
const app = createApp(env, options);
|
|
15
17
|
return {
|
|
16
18
|
fetch: async (req) => await app.fetch(req, env),
|
|
17
19
|
cleanup: async () => await dbCleanup(env),
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,SAAS,EAAqB,MAAM,aAAa,CAAA;AAG1D,OAAO,EAAE,kBAAkB,EAAwC,MAAM,aAAa,CAAA;AAyBtF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAkB,EAAE,OAAO,GAAiB,EAAE,EAAS,EAAE;IACjF,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAEnC,OAAO;QACH,KAAK,EAAE,KAAK,EAAE,GAAY,EAAqB,EAAE,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC;QAC3E,OAAO,EAAE,KAAK,IAAmB,EAAE,CAAC,MAAM,SAAS,CAAC,GAAG,CAAC;KAC3D,CAAA;AACL,CAAC,CAAA;AAED,IAAI,GAA6C,CAAA;AAEjD,eAAe;IACX,KAAK,CAAC,GAAY,EAAE,GAAkB,EAAE,GAAqB;QACzD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACpB,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;QACxB,CAAC;QACD,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IACnC,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,UAAmB,EAAE,GAAkB,EAAE,GAAqB;QAC1E,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;IACjC,CAAC;CACmB,CAAA"}
|
package/dist/krl.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PrivateKey } from "
|
|
1
|
+
import type { PrivateKey } from "./ssh/keys.js";
|
|
2
2
|
export declare class KRLBuilder {
|
|
3
3
|
private readonly _caKey;
|
|
4
4
|
private readonly _serials;
|
|
@@ -32,8 +32,9 @@ export declare class KRLBuilder {
|
|
|
32
32
|
*
|
|
33
33
|
* @param krlVersion Optional KRL version number (default: 1).
|
|
34
34
|
* @param comment Optional comment string embedded in the header.
|
|
35
|
+
* @param generatedAt Optional time the KRL was generated (default: now).
|
|
35
36
|
*/
|
|
36
|
-
generate(krlVersion?: bigint, comment?: string): ArrayBuffer;
|
|
37
|
+
generate(krlVersion?: bigint, comment?: string, generatedAt?: Date): ArrayBuffer;
|
|
37
38
|
/**
|
|
38
39
|
* Return the SSHSIG signature of the KRL.
|
|
39
40
|
*
|
package/dist/krl.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"krl.d.ts","sourceRoot":"","sources":["../src/krl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"krl.d.ts","sourceRoot":"","sources":["../src/krl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAsF/C,qBAAa,UAAU;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,IAAI,CAA2B;IAEvC,YAAY,KAAK,EAAE,UAAU,EAE5B;IAED;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAMlC;IAED;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAMhC;IAED;;;;;;OAMG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAc9B;IAED;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,GAAE,MAAW,EAAE,OAAO,SAAK,EAAE,WAAW,CAAC,EAAE,IAAI,GAAG,WAAW,CAgE/E;IAED;;;;;;;;OAQG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAqDjC;CACJ"}
|
package/dist/krl.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createSigner } from "./ssh/signer.js";
|
|
2
2
|
// ── Constants ────────────────────────────────────────────────────────────────
|
|
3
3
|
const KRL_MAGIC = 0x5353484b524c0a00n; // "SSHKRL\n\0"
|
|
4
4
|
const KRL_FORMAT_VERSION = 1;
|
|
@@ -47,160 +47,11 @@ function concat(...parts) {
|
|
|
47
47
|
function encodeSection(sectionType, data) {
|
|
48
48
|
return concat(new Uint8Array([sectionType]), encodeString(data));
|
|
49
49
|
}
|
|
50
|
-
// ── CA public-key extraction ─────────────────────────────────────────────────
|
|
51
|
-
/**
|
|
52
|
-
* Extract the SSH wire-format public key bytes from an sshpk PrivateKey.
|
|
53
|
-
*
|
|
54
|
-
* sshpk's "ssh" format produces a string like:
|
|
55
|
-
* ssh-ed25519 AAAA...base64... [comment]
|
|
56
|
-
*
|
|
57
|
-
* The base64 blob *is* the SSH wire encoding of the public key, so we just
|
|
58
|
-
* decode it. This works for both Ed25519 and ECDSA keys.
|
|
59
|
-
*/
|
|
60
|
-
function caKeyWireBytes(caKey) {
|
|
61
|
-
const sshString = caKey.toPublic().toString("ssh");
|
|
62
|
-
// Format: "<type> <base64> [<comment>]" — we want the second token.
|
|
63
|
-
const base64 = sshString.trim().split(/\s+/)[1];
|
|
64
|
-
if (!base64) {
|
|
65
|
-
throw new Error("Unexpected sshpk 'ssh' format output: " + sshString);
|
|
66
|
-
}
|
|
67
|
-
const binary = atob(base64);
|
|
68
|
-
const bytes = new Uint8Array(binary.length);
|
|
69
|
-
for (let i = 0; i < binary.length; i++) {
|
|
70
|
-
bytes[i] = binary.charCodeAt(i);
|
|
71
|
-
}
|
|
72
|
-
return bytes;
|
|
73
|
-
}
|
|
74
50
|
// ── Constants ────────────────────────────────────────────────────────────────
|
|
75
51
|
const SSHSIG_MAGIC = new TextEncoder().encode("SSHSIG");
|
|
76
52
|
const SIG_VERSION = 1;
|
|
77
53
|
const NAMESPACE = "krl@com.github.serverless-ssh-ca.andrewheberle";
|
|
78
54
|
const HASH_ALGORITHM = "sha512";
|
|
79
|
-
// ── Helpers ──────────────────────────────────────────────────────────────────
|
|
80
|
-
/**
|
|
81
|
-
* Get the raw bytes of a named part of an sshpk key.
|
|
82
|
-
*/
|
|
83
|
-
function keyPart(key, name) {
|
|
84
|
-
const part = key.parts.find((p) => p.name === name);
|
|
85
|
-
if (part === undefined) {
|
|
86
|
-
throw new Error(`Missing ${name} part in ${key.type} key`);
|
|
87
|
-
}
|
|
88
|
-
return part.data;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Base64url-encode bytes without padding, as used for JWK values.
|
|
92
|
-
*/
|
|
93
|
-
function base64url(bytes) {
|
|
94
|
-
let binary = "";
|
|
95
|
-
for (const byte of bytes) {
|
|
96
|
-
binary += String.fromCharCode(byte);
|
|
97
|
-
}
|
|
98
|
-
return btoa(binary).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Import an sshpk PrivateKey into a WebCrypto CryptoKey.
|
|
102
|
-
* Supports Ed25519 and ECDSA (P-256 / P-384 / P-521).
|
|
103
|
-
*/
|
|
104
|
-
async function importPrivateKey(caKey) {
|
|
105
|
-
const type = caKey.type; // "ed25519" | "ecdsa" | etc.
|
|
106
|
-
const curve = caKey.curve;
|
|
107
|
-
if (type === "ed25519") {
|
|
108
|
-
// import from the raw key parts as a JWK rather than via sshpk's PKCS#8
|
|
109
|
-
// output, which drops a leading zero byte from the seed (about 1 key in
|
|
110
|
-
// 512) and is then rejected by WebCrypto
|
|
111
|
-
const seed = keyPart(caKey, "k");
|
|
112
|
-
const publicKey = keyPart(caKey, "A");
|
|
113
|
-
if (seed.length !== 32 || publicKey.length !== 32) {
|
|
114
|
-
throw new Error(`Unexpected Ed25519 key part lengths: k=${seed.length} A=${publicKey.length}`);
|
|
115
|
-
}
|
|
116
|
-
const cryptoKey = await crypto.subtle.importKey("jwk", { kty: "OKP", crv: "Ed25519", d: base64url(seed), x: base64url(publicKey) }, { name: "Ed25519" }, false, ["sign"]);
|
|
117
|
-
return {
|
|
118
|
-
cryptoKey,
|
|
119
|
-
sigAlgo: "ssh-ed25519",
|
|
120
|
-
webCryptoAlgo: { name: "Ed25519" },
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
else if (type === "ecdsa") {
|
|
124
|
-
let namedCurve;
|
|
125
|
-
let sigAlgo;
|
|
126
|
-
let hash;
|
|
127
|
-
let size; // bytes in each coordinate and the private key
|
|
128
|
-
if (curve === "nistp256") {
|
|
129
|
-
namedCurve = "P-256";
|
|
130
|
-
sigAlgo = "ecdsa-sha2-nistp256";
|
|
131
|
-
hash = "SHA-256";
|
|
132
|
-
size = 32;
|
|
133
|
-
}
|
|
134
|
-
else if (curve === "nistp384") {
|
|
135
|
-
namedCurve = "P-384";
|
|
136
|
-
sigAlgo = "ecdsa-sha2-nistp384";
|
|
137
|
-
hash = "SHA-384";
|
|
138
|
-
size = 48;
|
|
139
|
-
}
|
|
140
|
-
else if (curve === "nistp521") {
|
|
141
|
-
namedCurve = "P-521";
|
|
142
|
-
sigAlgo = "ecdsa-sha2-nistp521";
|
|
143
|
-
hash = "SHA-512";
|
|
144
|
-
size = 66;
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
throw new Error(`Unsupported ECDSA curve: ${curve}`);
|
|
148
|
-
}
|
|
149
|
-
// import from the raw key parts as a JWK rather than via sshpk's PKCS#8
|
|
150
|
-
// output, which drops leading zero bytes from the private key so it is
|
|
151
|
-
// shorter than RFC 5915 requires (about half of P-521 keys)
|
|
152
|
-
const point = keyPart(caKey, "Q");
|
|
153
|
-
if (point.length !== 1 + size * 2 || point[0] !== 0x04) {
|
|
154
|
-
throw new Error(`Unexpected ECDSA public key encoding for ${curve}`);
|
|
155
|
-
}
|
|
156
|
-
// d is an SSH mpint, so may be short or have a leading sign byte
|
|
157
|
-
const d = toFixedWidth(keyPart(caKey, "d"), size);
|
|
158
|
-
const cryptoKey = await crypto.subtle.importKey("jwk", {
|
|
159
|
-
kty: "EC",
|
|
160
|
-
crv: namedCurve,
|
|
161
|
-
d: base64url(d),
|
|
162
|
-
x: base64url(point.subarray(1, 1 + size)),
|
|
163
|
-
y: base64url(point.subarray(1 + size)),
|
|
164
|
-
}, { name: "ECDSA", namedCurve }, false, ["sign"]);
|
|
165
|
-
return {
|
|
166
|
-
cryptoKey,
|
|
167
|
-
sigAlgo,
|
|
168
|
-
webCryptoAlgo: { name: "ECDSA", hash: { name: hash } },
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
else {
|
|
172
|
-
throw new Error(`Unsupported key type: ${type}`);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Convert a WebCrypto ECDSA signature (IEEE P1363: raw r||s) to the SSH wire
|
|
177
|
-
* encoding: string(algo) + string(mpint(r) + mpint(s)).
|
|
178
|
-
*
|
|
179
|
-
* SSH mpints are big-endian, with a leading 0x00 byte if the high bit is set.
|
|
180
|
-
*/
|
|
181
|
-
function p1363ToSshEcdsaSig(p1363, sigAlgo) {
|
|
182
|
-
const half = p1363.length / 2;
|
|
183
|
-
const r = p1363.slice(0, half);
|
|
184
|
-
const s = p1363.slice(half);
|
|
185
|
-
function encodeMpint(n) {
|
|
186
|
-
// Strip leading zero bytes, then re-pad if high bit set.
|
|
187
|
-
let start = 0;
|
|
188
|
-
while (start < n.length - 1 && n[start] === 0)
|
|
189
|
-
start++;
|
|
190
|
-
const trimmed = n.slice(start);
|
|
191
|
-
const padded = trimmed[0] & 0x80 ? concat(new Uint8Array([0x00]), trimmed) : trimmed;
|
|
192
|
-
return encodeString(padded);
|
|
193
|
-
}
|
|
194
|
-
const innerSig = concat(encodeMpint(r), encodeMpint(s));
|
|
195
|
-
return concat(encodeString(sigAlgo), encodeString(innerSig));
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Wrap an Ed25519 WebCrypto signature into SSH wire encoding:
|
|
199
|
-
* string(algo) + string(sig_bytes)
|
|
200
|
-
*/
|
|
201
|
-
function wrapEd25519Sig(sig) {
|
|
202
|
-
return concat(encodeString("ssh-ed25519"), encodeString(sig));
|
|
203
|
-
}
|
|
204
55
|
/**
|
|
205
56
|
* Base64-encode bytes and wrap in SSH signature armor at 76 chars per line.
|
|
206
57
|
*/
|
|
@@ -261,7 +112,7 @@ export class KRLBuilder {
|
|
|
261
112
|
async digest() {
|
|
262
113
|
const serials = [...this._serials].sort((a, b) => (a < b ? -1 : a > b ? 1 : 0));
|
|
263
114
|
const keyIds = [...this._keyIds].sort();
|
|
264
|
-
const content = concat(encodeString(
|
|
115
|
+
const content = concat(encodeString(this._caKey.publicKey.blob), encodeUint32(serials.length), ...serials.map(encodeUint64), encodeUint32(keyIds.length), ...keyIds.map((id) => encodeString(id)));
|
|
265
116
|
const hash = new Uint8Array(await crypto.subtle.digest("SHA-256", content));
|
|
266
117
|
return Array.from(hash, (b) => b.toString(16).padStart(2, "0")).join("");
|
|
267
118
|
}
|
|
@@ -270,13 +121,14 @@ export class KRLBuilder {
|
|
|
270
121
|
*
|
|
271
122
|
* @param krlVersion Optional KRL version number (default: 1).
|
|
272
123
|
* @param comment Optional comment string embedded in the header.
|
|
124
|
+
* @param generatedAt Optional time the KRL was generated (default: now).
|
|
273
125
|
*/
|
|
274
|
-
generate(krlVersion = 1n, comment = "") {
|
|
126
|
+
generate(krlVersion = 1n, comment = "", generatedAt) {
|
|
275
127
|
if (this._krl !== null) {
|
|
276
128
|
return this._krl;
|
|
277
129
|
}
|
|
278
130
|
// ── Header ──────────────────────────────────────────────────────────────
|
|
279
|
-
const generatedDate = BigInt(Math.floor(Date.now() / 1000));
|
|
131
|
+
const generatedDate = BigInt(Math.floor((generatedAt?.getTime() ?? Date.now()) / 1000));
|
|
280
132
|
const header = concat(encodeUint64(KRL_MAGIC), encodeUint32(KRL_FORMAT_VERSION), encodeUint64(krlVersion), encodeUint64(generatedDate), encodeUint64(0n), // flags — none defined
|
|
281
133
|
encodeString(""), // reserved
|
|
282
134
|
encodeString(comment));
|
|
@@ -299,7 +151,7 @@ export class KRLBuilder {
|
|
|
299
151
|
// string reserved
|
|
300
152
|
// <one or more cert sub-sections>
|
|
301
153
|
//
|
|
302
|
-
const certSectionData = concat(encodeString(
|
|
154
|
+
const certSectionData = concat(encodeString(this._caKey.publicKey.blob), // ca_key
|
|
303
155
|
encodeString(""), // reserved
|
|
304
156
|
...certSubSections);
|
|
305
157
|
const certificatesSection = encodeSection(KRL_SECTION_CERTIFICATES, certSectionData);
|
|
@@ -325,7 +177,7 @@ export class KRLBuilder {
|
|
|
325
177
|
else {
|
|
326
178
|
krl = this._krl;
|
|
327
179
|
}
|
|
328
|
-
const
|
|
180
|
+
const signer = await createSigner(this._caKey);
|
|
329
181
|
// 1. Hash the KRL bytes with SHA-512.
|
|
330
182
|
const krlHash = new Uint8Array(await crypto.subtle.digest("SHA-512", krl));
|
|
331
183
|
// 2. Build the signed data blob.
|
|
@@ -337,13 +189,9 @@ export class KRLBuilder {
|
|
|
337
189
|
// string H(message)
|
|
338
190
|
const signedData = concat(SSHSIG_MAGIC, encodeString(NAMESPACE), encodeString(""), // reserved
|
|
339
191
|
encodeString(HASH_ALGORITHM), encodeString(krlHash));
|
|
340
|
-
// 3. Sign the blob.
|
|
341
|
-
const
|
|
342
|
-
// 4.
|
|
343
|
-
const sshSig = sigAlgo === "ssh-ed25519"
|
|
344
|
-
? wrapEd25519Sig(rawSig)
|
|
345
|
-
: p1363ToSshEcdsaSig(rawSig, sigAlgo);
|
|
346
|
-
// 5. Assemble the outer SSHSIG blob.
|
|
192
|
+
// 3. Sign the blob, which returns the signature in SSH wire format.
|
|
193
|
+
const sshSig = await signer.sign(signedData);
|
|
194
|
+
// 4. Assemble the outer SSHSIG blob.
|
|
347
195
|
//
|
|
348
196
|
// byte[6] "SSHSIG"
|
|
349
197
|
// uint32 SIG_VERSION (1)
|
|
@@ -352,10 +200,9 @@ export class KRLBuilder {
|
|
|
352
200
|
// string reserved (empty)
|
|
353
201
|
// string hash_algorithm
|
|
354
202
|
// string signature
|
|
355
|
-
const
|
|
356
|
-
const sigBlob = concat(SSHSIG_MAGIC, encodeUint32(SIG_VERSION), encodeString(publicKeyWire), encodeString(NAMESPACE), encodeString(""), // reserved
|
|
203
|
+
const sigBlob = concat(SSHSIG_MAGIC, encodeUint32(SIG_VERSION), encodeString(signer.publicKey), encodeString(NAMESPACE), encodeString(""), // reserved
|
|
357
204
|
encodeString(HASH_ALGORITHM), encodeString(sshSig));
|
|
358
|
-
//
|
|
205
|
+
// 5. Armor and return.
|
|
359
206
|
return armorSignature(sigBlob);
|
|
360
207
|
}
|
|
361
208
|
}
|
package/dist/krl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"krl.js","sourceRoot":"","sources":["../src/krl.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"krl.js","sourceRoot":"","sources":["../src/krl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { CaCache } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Create an in-memory cache for the `CACHE` binding, with the same shape as a
|
|
4
|
+
* Cloudflare Workers KV namespace (see {@link CaCache}).
|
|
5
|
+
*
|
|
6
|
+
* Entries are kept in memory by the process, so they are lost on restart and
|
|
7
|
+
* not shared between processes.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* const env = bindingsFromEnv({
|
|
12
|
+
* DB: fromNodeSqlite(new DatabaseSync("ssh-ca.sqlite")),
|
|
13
|
+
* PRIVATE_KEY: secretFromFile("/etc/ssh-ca/ca_key"),
|
|
14
|
+
* CACHE: cacheInMemory(),
|
|
15
|
+
* })
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @returns A cache for the `CACHE` binding, see {@link CaCache}
|
|
19
|
+
*/
|
|
20
|
+
export declare const cacheInMemory: () => CaCache;
|
|
21
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/node/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAQ1C;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,aAAa,QAAO,OAmChC,CAAA"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create an in-memory cache for the `CACHE` binding, with the same shape as a
|
|
3
|
+
* Cloudflare Workers KV namespace (see {@link CaCache}).
|
|
4
|
+
*
|
|
5
|
+
* Entries are kept in memory by the process, so they are lost on restart and
|
|
6
|
+
* not shared between processes.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const env = bindingsFromEnv({
|
|
11
|
+
* DB: fromNodeSqlite(new DatabaseSync("ssh-ca.sqlite")),
|
|
12
|
+
* PRIVATE_KEY: secretFromFile("/etc/ssh-ca/ca_key"),
|
|
13
|
+
* CACHE: cacheInMemory(),
|
|
14
|
+
* })
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @returns A cache for the `CACHE` binding, see {@link CaCache}
|
|
18
|
+
*/
|
|
19
|
+
export const cacheInMemory = () => {
|
|
20
|
+
const entries = new Map();
|
|
21
|
+
const expired = (entry, now) => entry.expires !== undefined && now >= entry.expires;
|
|
22
|
+
return {
|
|
23
|
+
get: async (key) => {
|
|
24
|
+
const entry = entries.get(key);
|
|
25
|
+
if (entry === undefined) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
if (expired(entry, Date.now())) {
|
|
29
|
+
entries.delete(key);
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
return entry.value;
|
|
33
|
+
},
|
|
34
|
+
put: async (key, value, options) => {
|
|
35
|
+
const now = Date.now();
|
|
36
|
+
// remove entries that have expired, as they are not read again
|
|
37
|
+
for (const [k, entry] of entries) {
|
|
38
|
+
if (expired(entry, now)) {
|
|
39
|
+
entries.delete(k);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
entries.set(key, {
|
|
43
|
+
value,
|
|
44
|
+
expires: options?.expirationTtl === undefined ? undefined : now + options.expirationTtl * 1000,
|
|
45
|
+
});
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/node/cache.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAY,EAAE;IAC1C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAA;IAExC,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,GAAW,EAAW,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAA;IAE3G,OAAO;QACN,GAAG,EAAE,KAAK,EAAE,GAAW,EAA0B,EAAE;YAClD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC9B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAA;YACZ,CAAC;YAED,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACnB,OAAO,IAAI,CAAA;YACZ,CAAC;YAED,OAAO,KAAK,CAAC,KAAK,CAAA;QACnB,CAAC;QACD,GAAG,EAAE,KAAK,EAAE,GAAW,EAAE,KAAa,EAAE,OAAoC,EAAiB,EAAE;YAC9F,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAEtB,+DAA+D;YAC/D,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;gBAClC,IAAI,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;oBACzB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;gBAClB,CAAC;YACF,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;gBAChB,KAAK;gBACL,OAAO,EAAE,OAAO,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI;aAC9F,CAAC,CAAA;QACH,CAAC;KACD,CAAA;AACF,CAAC,CAAA"}
|
package/dist/node/env.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import z from "zod";
|
|
2
|
-
import type { CaDatabase, CaSecret, SshCaBindings } from "../types.js";
|
|
2
|
+
import type { CaCache, CaDatabase, CaRateLimiter, CaSecret, SshCaBindings } from "../types.js";
|
|
3
3
|
/**
|
|
4
4
|
* The environment variables read by {@link bindingsFromEnv}, which match the
|
|
5
5
|
* Workers vars documented for the CA.
|
|
@@ -22,7 +22,8 @@ export declare const EnvSchema: z.ZodObject<{
|
|
|
22
22
|
SSH_HOST_CERTIFICATE_ALLOWED_ROLES: z.ZodOptional<z.ZodString>;
|
|
23
23
|
ISSUER_DN: z.ZodString;
|
|
24
24
|
JWT_JWKS_URL: z.ZodURL;
|
|
25
|
-
JWT_AUD: z.
|
|
25
|
+
JWT_AUD: z.ZodString;
|
|
26
|
+
JWT_ACCESS_TOKEN_AUD: z.ZodOptional<z.ZodString>;
|
|
26
27
|
JWT_ISSUER: z.ZodString;
|
|
27
28
|
JWT_ALGORITHMS: z.ZodString;
|
|
28
29
|
JWT_SSH_CERTIFICATE_PRINCIPALS_CLAIM: z.ZodString;
|
|
@@ -60,7 +61,7 @@ export declare class InvalidConfigurationError extends Error {
|
|
|
60
61
|
* })
|
|
61
62
|
* ```
|
|
62
63
|
*
|
|
63
|
-
* @param bindings The database
|
|
64
|
+
* @param bindings The database, private key, optional rate limiter and optional cache, see {@link CaDatabase}, {@link CaSecret}, {@link CaRateLimiter} and {@link CaCache}
|
|
64
65
|
* @param source The environment variables to read, `process.env` by default
|
|
65
66
|
* @returns The bindings to pass to `createSshCa`
|
|
66
67
|
* @throws {@link InvalidConfigurationError} if a variable is missing or invalid
|
|
@@ -68,5 +69,7 @@ export declare class InvalidConfigurationError extends Error {
|
|
|
68
69
|
export declare const bindingsFromEnv: (bindings: {
|
|
69
70
|
DB: CaDatabase;
|
|
70
71
|
PRIVATE_KEY: CaSecret;
|
|
72
|
+
RATE_LIMITER?: CaRateLimiter;
|
|
73
|
+
CACHE?: CaCache;
|
|
71
74
|
}, source?: Record<string, string | undefined>) => SshCaBindings;
|
|
72
75
|
//# sourceMappingURL=env.d.ts.map
|
package/dist/node/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/node/env.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/node/env.ts"],"names":[],"mappings":"AACA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAY9F;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuBpB,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AAE7C;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IACnD,YAAY,OAAO,EAAE,MAAM,EAK1B;CACD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,eAAe,aACjB;IAAE,EAAE,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,QAAQ,CAAC;IAAC,YAAY,CAAC,EAAE,aAAa,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,WAC1F,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KACxC,aAOF,CAAA"}
|
package/dist/node/env.js
CHANGED
|
@@ -27,7 +27,8 @@ export const EnvSchema = z.object({
|
|
|
27
27
|
SSH_HOST_CERTIFICATE_ALLOWED_ROLES: z.string().optional(),
|
|
28
28
|
ISSUER_DN: required,
|
|
29
29
|
JWT_JWKS_URL: z.url({ protocol: /^https?$/, message: "must be an http or https URL" }),
|
|
30
|
-
JWT_AUD:
|
|
30
|
+
JWT_AUD: required,
|
|
31
|
+
JWT_ACCESS_TOKEN_AUD: z.string().optional(),
|
|
31
32
|
JWT_ISSUER: required,
|
|
32
33
|
JWT_ALGORITHMS: required,
|
|
33
34
|
JWT_SSH_CERTIFICATE_PRINCIPALS_CLAIM: required,
|
|
@@ -59,7 +60,7 @@ export class InvalidConfigurationError extends Error {
|
|
|
59
60
|
* })
|
|
60
61
|
* ```
|
|
61
62
|
*
|
|
62
|
-
* @param bindings The database
|
|
63
|
+
* @param bindings The database, private key, optional rate limiter and optional cache, see {@link CaDatabase}, {@link CaSecret}, {@link CaRateLimiter} and {@link CaCache}
|
|
63
64
|
* @param source The environment variables to read, `process.env` by default
|
|
64
65
|
* @returns The bindings to pass to `createSshCa`
|
|
65
66
|
* @throws {@link InvalidConfigurationError} if a variable is missing or invalid
|
|
@@ -69,6 +70,6 @@ export const bindingsFromEnv = (bindings, source = process.env) => {
|
|
|
69
70
|
if (!result.success) {
|
|
70
71
|
throw new InvalidConfigurationError(`invalid configuration:\n${z.prettifyError(result.error)}`);
|
|
71
72
|
}
|
|
72
|
-
return { ...result.data, DB: bindings.DB, PRIVATE_KEY: bindings.PRIVATE_KEY };
|
|
73
|
+
return { ...result.data, DB: bindings.DB, PRIVATE_KEY: bindings.PRIVATE_KEY, RATE_LIMITER: bindings.RATE_LIMITER, CACHE: bindings.CACHE };
|
|
73
74
|
};
|
|
74
75
|
//# sourceMappingURL=env.js.map
|