did-jwt
Version:
Library for Signing and Verifying JWTs that use DIDs as issuers and JWEs that use DIDs as recipients
66 lines (56 loc) • 2.24 kB
text/typescript
import { bigintToBytes, hexToBytes } from '../util'
describe('bigintToBytes', () => {
it('should convert a bigint to bytes', () => {
const bn = BigInt(65535)
const bytes = bigintToBytes(bn)
expect(bytes).toEqual(new Uint8Array([255, 255]))
})
it('should convert a bigint to bytes given a minimum length', () => {
const bn = BigInt(65535)
const bytes = bigintToBytes(bn, 32)
expect(bytes).toEqual(
new Uint8Array([
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255,
])
)
})
it('should convert a bigint to bytes given a minimum length less than the number', () => {
const bn = BigInt('0x112233445566778899')
const bytes = bigintToBytes(bn, 5)
expect(bytes).toEqual(new Uint8Array([17, 34, 51, 68, 85, 102, 119, 136, 153]))
})
it('should convert a bigint to bytes given an odd number of bytes', () => {
const bn = BigInt('0x101010101010101')
const bytes = bigintToBytes(bn)
expect(bytes).toEqual(new Uint8Array([1, 1, 1, 1, 1, 1, 1, 1]))
})
})
describe('hexToBytes', () => {
it('should convert a hex string to bytes', () => {
const bn = '0101'
const bytes = hexToBytes(bn)
expect(bytes).toEqual(new Uint8Array([1, 1]))
})
it('should convert a hex string with a prefix to bytes', () => {
const bn = '0x0101'
const bytes = hexToBytes(bn)
expect(bytes).toEqual(new Uint8Array([1, 1]))
})
it('should convert a hex string to bytes given a minimum length', () => {
const bn = '0101'
const bytes = hexToBytes(bn, 32)
expect(bytes).toEqual(
new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1])
)
})
it('should convert a hex string to bytes given a minimum length less than the number', () => {
const bn = '0x112233445566778899'
const bytes = hexToBytes(bn, 5)
expect(bytes).toEqual(new Uint8Array([17, 34, 51, 68, 85, 102, 119, 136, 153]))
})
it('should convert a hexString to bytes given an odd number of bytes', () => {
const bn = '0x101010101010101'
const bytes = hexToBytes(bn)
expect(bytes).toEqual(new Uint8Array([1, 1, 1, 1, 1, 1, 1, 1]))
})
})