Add Cloudflare signing key contract
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
import assert from "node:assert/strict";
|
||||
import { describe, it } from "node:test";
|
||||
|
||||
import {
|
||||
SigningKeysSchemaError,
|
||||
parsePublicSigningKeysDocument,
|
||||
publicSigningKeysKvKey,
|
||||
} from "../src/signing_keys.js";
|
||||
|
||||
const PUBLIC_KEY = "a".repeat(64);
|
||||
|
||||
describe("public signing keys", () => {
|
||||
it("builds an environment-prefixed KV key", () => {
|
||||
assert.equal(publicSigningKeysKvKey("production"), "ely:production:public_signing_keys");
|
||||
});
|
||||
|
||||
it("parses a valid key document", () => {
|
||||
const document = parsePublicSigningKeysDocument(
|
||||
JSON.stringify({
|
||||
version: 1,
|
||||
keys: [{ key_id: "elydora-alpha-plugins", public_key: PUBLIC_KEY.toUpperCase() }],
|
||||
}),
|
||||
);
|
||||
|
||||
assert.deepEqual(document, {
|
||||
version: 1,
|
||||
keys: [{ key_id: "elydora-alpha-plugins", public_key: PUBLIC_KEY }],
|
||||
});
|
||||
});
|
||||
|
||||
it("rejects duplicate key ids", () => {
|
||||
assert.throws(
|
||||
() =>
|
||||
parsePublicSigningKeysDocument(
|
||||
JSON.stringify({
|
||||
version: 1,
|
||||
keys: [
|
||||
{ key_id: "elydora-alpha-plugins", public_key: PUBLIC_KEY },
|
||||
{ key_id: "elydora-alpha-plugins", public_key: "b".repeat(64) },
|
||||
],
|
||||
}),
|
||||
),
|
||||
SigningKeysSchemaError,
|
||||
);
|
||||
});
|
||||
|
||||
it("rejects malformed public keys", () => {
|
||||
assert.throws(
|
||||
() =>
|
||||
parsePublicSigningKeysDocument(
|
||||
JSON.stringify({
|
||||
version: 1,
|
||||
keys: [{ key_id: "elydora-alpha-plugins", public_key: "abcd" }],
|
||||
}),
|
||||
),
|
||||
SigningKeysSchemaError,
|
||||
);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user