Dev Build / cleanup (push) Canceled after 0s
Dev Build / typecheck (push) Canceled after 0s
Dev Build / build (linux-arm64, ubuntu-24.04-arm, linux-arm64) (push) Canceled after 0s
Dev Build / build (linux-x64, ubuntu-latest, linux-x64) (push) Canceled after 0s
Dev Build / build (win-x64, windows-latest, win32-x64) (push) Canceled after 0s
Dev Build / dispatch-dev-docker (push) Skipped
20 lines
596 B
Plaintext
20 lines
596 B
Plaintext
import { decode } from '../util/base64url.js';
|
|
export const unprotected = Symbol();
|
|
export function assertNotSet(value, name) {
|
|
if (value) {
|
|
throw new TypeError(`${name} can only be called once`);
|
|
}
|
|
}
|
|
export function decodeBase64url(value, label, ErrorClass) {
|
|
try {
|
|
return decode(value);
|
|
}
|
|
catch {
|
|
throw new ErrorClass(`Failed to base64url decode the ${label}`);
|
|
}
|
|
}
|
|
export async function digest(algorithm, data) {
|
|
const subtleDigest = `SHA-${algorithm.slice(-3)}`;
|
|
return new Uint8Array(await crypto.subtle.digest(subtleDigest, data));
|
|
}
|