mirror of
https://github.com/danbulant/jose
synced 2026-05-22 05:49:01 +00:00
38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
import test from 'ava'
|
|
import { root } from '../dist.mjs'
|
|
|
|
const { FlattenedSign } = await import(root)
|
|
|
|
const encode = TextEncoder.prototype.encode.bind(new TextEncoder())
|
|
|
|
test('crit member checks check', async (t) => {
|
|
await t.throwsAsync(
|
|
new FlattenedSign(encode('foo'))
|
|
.setProtectedHeader({ alg: 'HS256' })
|
|
.setUnprotectedHeader({ crit: ['b64'] })
|
|
.sign(new Uint8Array(32)),
|
|
{
|
|
code: 'ERR_JWS_INVALID',
|
|
message: '"crit" (Critical) Header Parameter MUST be integrity protected',
|
|
},
|
|
)
|
|
await t.throwsAsync(
|
|
new FlattenedSign(encode('foo'))
|
|
.setProtectedHeader({ alg: 'HS256', crit: [null], b64: false })
|
|
.sign(new Uint8Array(32)),
|
|
{
|
|
code: 'ERR_JWS_INVALID',
|
|
message:
|
|
'"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present',
|
|
},
|
|
)
|
|
await t.throwsAsync(
|
|
new FlattenedSign(encode('foo'))
|
|
.setProtectedHeader({ alg: 'HS256', crit: ['nope'], nope: 'foo' })
|
|
.sign(new Uint8Array(32)),
|
|
{
|
|
code: 'ERR_JOSE_NOT_SUPPORTED',
|
|
message: 'Extension Header Parameter "nope" is not recognized',
|
|
},
|
|
)
|
|
})
|