jose
Version:
JWA, JWS, JWE, JWT, JWK, JWKS for Node.js, Browser, Cloudflare Workers, Deno, Bun, and other Web-interoperable runtimes
24 lines (23 loc) • 757 B
JavaScript
import { createSignature } from "../../lib/jws_sign.js";
import { assertNotSet, assertUint8Array } from "../../lib/validate.js";
class FlattenedSign {
#input;
constructor(payload) {
assertUint8Array(payload, "payload"), this.#input = [payload];
}
setProtectedHeader(protectedHeader) {
return assertNotSet(this.#input[1], "setProtectedHeader"), this.#input[1] = protectedHeader, this;
}
setUnprotectedHeader(unprotectedHeader) {
return assertNotSet(this.#input[2], "setUnprotectedHeader"), this.#input[2] = unprotectedHeader, this;
}
async sign(key, options) {
const input = [...this.#input];
input[3] = options?.crit;
const [jws] = await createSignature(input, key);
return jws;
}
}
export {
FlattenedSign
};