diff options
Diffstat (limited to 'std/jwt/_algorithm.ts')
-rw-r--r-- | std/jwt/_algorithm.ts | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/std/jwt/_algorithm.ts b/std/jwt/_algorithm.ts new file mode 100644 index 000000000..c9c5257e1 --- /dev/null +++ b/std/jwt/_algorithm.ts @@ -0,0 +1,17 @@ +/* + * JSW ยง1: Cryptographic algorithms and identifiers for use with this specification + * are described in the separate JSON Web Algorithms (JWA) specification: + * https://www.rfc-editor.org/rfc/rfc7518 + */ +export type Algorithm = "none" | "HS256" | "HS512"; +export type AlgorithmInput = Algorithm | Array<Exclude<Algorithm, "none">>; +/** + * Verify the algorithm + * @param algorithm as string or multiple algorithms in an array excluding 'none' + * @param the algorithm from the jwt header + */ +export function verify(algorithm: AlgorithmInput, jwtAlg: string): boolean { + return Array.isArray(algorithm) + ? (algorithm as string[]).includes(jwtAlg) + : algorithm === jwtAlg; +} |