forked from Mirrors/keyoxide-web
103 lines
No EOL
4.7 KiB
JavaScript
103 lines
No EOL
4.7 KiB
JavaScript
import 'chai/register-should.js'
|
|
import * as utils from '../static-src/utils.js'
|
|
|
|
describe('browser', function () {
|
|
describe('utils', function () {
|
|
describe('computeWKDLocalPart()', function () {
|
|
it('should handle "test"', async function () {
|
|
const local = await utils.computeWKDLocalPart('test')
|
|
local.should.equal('iffe93qcsgp4c8ncbb378rxjo6cn9q6u')
|
|
})
|
|
it('should handle "zaphod"', async function () {
|
|
const local = await utils.computeWKDLocalPart('zaphod')
|
|
local.should.equal('xrea5za9y9auaxq463c9opxt338bnaxu')
|
|
})
|
|
})
|
|
describe('encodeZBase32()', function () {
|
|
it('should handle a Uint8Array', async function () {
|
|
const data = new Uint8Array([
|
|
169, 74, 143, 229, 204, 177,
|
|
155, 166, 28, 76, 8, 115,
|
|
211, 145, 233, 135, 152, 47,
|
|
187, 211
|
|
])
|
|
const local = utils.encodeZBase32(data)
|
|
local.should.equal('iffe93qcsgp4c8ncbb378rxjo6cn9q6u')
|
|
})
|
|
})
|
|
describe('generateArgon2Hash()', async function () {
|
|
it('should generate an Argon2 hash', async function () {
|
|
const hash = await utils.generateArgon2Hash("123")
|
|
hash.should.match(/\$argon2id\$(?:.*)/)
|
|
})
|
|
})
|
|
describe('verifyArgon2Hash()', async function () {
|
|
it('should verify a valid Argon2 hash', async function () {
|
|
const hash = await utils.verifyArgon2Hash(
|
|
"123",
|
|
"$argon2id$v=19$m=64,t=512,p=2$2ZmmBcXDEMl6M1Bz6fvgEw$WPni+yUmwLYny1JSHcjKOQ")
|
|
hash.should.be.true
|
|
})
|
|
it('should reject an invalid Argon2 hash', async function () {
|
|
const hash = await utils.verifyArgon2Hash(
|
|
"321",
|
|
"$argon2id$v=19$m=64,t=512,p=2$2ZmmBcXDEMl6M1Bz6fvgEw$WPni+yUmwLYny1JSHcjKOQ")
|
|
hash.should.be.false
|
|
})
|
|
})
|
|
describe('generateBcryptHash()', async function () {
|
|
it('should generate a bcrypt hash', async function () {
|
|
const hash = await utils.generateBcryptHash("123")
|
|
hash.should.match(/\$2a\$(?:.*)/)
|
|
})
|
|
})
|
|
describe('verifyBcryptHash()', async function () {
|
|
it('should verify a valid bcrypt hash', async function () {
|
|
const hash = await utils.verifyBcryptHash(
|
|
"123",
|
|
"$2a$11$yi5BcfAMmDZNbIvIeaRxzOjRCJ.GPWoKBRwGCf8iK7pYrVwiDaQdC")
|
|
hash.should.be.true
|
|
})
|
|
it('should reject an invalid bcrypt hash', async function () {
|
|
const hash = await utils.verifyBcryptHash(
|
|
"321",
|
|
"$2a$11$yi5BcfAMmDZNbIvIeaRxzOjRCJ.GPWoKBRwGCf8iK7pYrVwiDaQdC")
|
|
hash.should.be.false
|
|
})
|
|
})
|
|
describe('generateProfileURL()', function () {
|
|
it('should handle a WKD URL', async function () {
|
|
const local = await utils.generateProfileURL({
|
|
source: 'wkd',
|
|
input: 'test@doip.rocks',
|
|
hostname: 'keyoxide.instance'
|
|
})
|
|
local.should.equal('https://keyoxide.instance/test@doip.rocks')
|
|
})
|
|
it('should handle a HKP+email URL', async function () {
|
|
const local = await utils.generateProfileURL({
|
|
source: 'hkp',
|
|
input: 'test@doip.rocks',
|
|
hostname: 'keyoxide.instance'
|
|
})
|
|
local.should.equal('https://keyoxide.instance/hkp/test@doip.rocks')
|
|
})
|
|
it('should handle a HKP+fingerprint URL', async function () {
|
|
const local = await utils.generateProfileURL({
|
|
source: 'hkp',
|
|
input: '3637202523E7C1309AB79E99EF2DC5827B445F4B',
|
|
hostname: 'keyoxide.instance'
|
|
})
|
|
local.should.equal('https://keyoxide.instance/3637202523E7C1309AB79E99EF2DC5827B445F4B')
|
|
})
|
|
it('should handle a keybase URL', async function () {
|
|
const local = await utils.generateProfileURL({
|
|
source: 'keybase',
|
|
input: 'https://keybase.io/doip/pgp_keys.asc?fingerprint=3637202523E7C1309AB79E99EF2DC5827B445F4B',
|
|
hostname: 'keyoxide.instance'
|
|
})
|
|
local.should.equal('https://keyoxide.instance/keybase/doip/3637202523E7C1309AB79E99EF2DC5827B445F4B')
|
|
})
|
|
})
|
|
})
|
|
}) |