mirror of
https://github.com/danbulant/jose
synced 2026-05-24 20:41:46 +00:00
35 lines
1.5 KiB
JavaScript
35 lines
1.5 KiB
JavaScript
const test = require('ava')
|
|
|
|
const { randomBytes } = require('crypto')
|
|
|
|
const { JWK, JWS } = require('../../lib')
|
|
|
|
const key = JWK.generateSync('oct')
|
|
|
|
test('JWS.verify can skip parsing the payload', t => {
|
|
let payload = 'foo'
|
|
let jws = JWS.sign(payload, key)
|
|
t.deepEqual(JWS.verify(jws, key, { parse: false }), Buffer.from(payload))
|
|
|
|
jws = JWS.sign.flattened(payload, key)
|
|
t.deepEqual(JWS.verify(jws, key, { parse: false }), Buffer.from(payload))
|
|
t.deepEqual(JWS.verify(jws, key, { parse: false, complete: true }), { key, protected: { alg: 'HS256' }, payload: Buffer.from(payload) })
|
|
|
|
payload = randomBytes(8)
|
|
|
|
jws = JWS.sign(payload, key)
|
|
t.deepEqual(JWS.verify(jws, key, { parse: false }), payload)
|
|
t.deepEqual(JWS.verify(jws, key, { parse: false, complete: true }), { key, protected: { alg: 'HS256' }, payload: payload })
|
|
})
|
|
|
|
test('JWS.verify can parse any valid encoding', t => {
|
|
let jws = JWS.sign('foo', key)
|
|
t.deepEqual(JWS.verify(jws, key, { encoding: 'hex' }), '666f6f')
|
|
t.deepEqual(JWS.verify(jws, key, { encoding: 'base64' }), 'Zm9v')
|
|
|
|
jws = JWS.sign.flattened('foo', key)
|
|
t.deepEqual(JWS.verify(jws, key, { encoding: 'hex' }), '666f6f')
|
|
t.deepEqual(JWS.verify(jws, key, { complete: true, encoding: 'hex' }), { key, protected: { alg: 'HS256' }, payload: '666f6f' })
|
|
t.deepEqual(JWS.verify(jws, key, { encoding: 'base64' }), 'Zm9v')
|
|
t.deepEqual(JWS.verify(jws, key, { complete: true, encoding: 'base64' }), { key, protected: { alg: 'HS256' }, payload: 'Zm9v' })
|
|
})
|