StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics https://doi.org/10.1109/TVCG.2020.3030352
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
StackGenVis/frontend/node_modules/pbkdf2-compat/test/index.js

75 lines
2.4 KiB

var assert = require('assert')
var compat = require('../')
var fixtures = require('./fixtures')
// SHA-1 vectors generated by Node.js
// SHA-256/SHA-512 test vectors from:
// https://stackoverflow.com/questions/5130513/pbkdf2-hmac-sha2-test-vectors
// https://stackoverflow.com/questions/15593184/pbkdf2-hmac-sha-512-test-vectors
describe('pbkdf2-compat', function() {
describe('pbkdf2', function() {
;['sha1', 'sha256', 'sha512'].forEach(function(algorithm) {
describe(algorithm, function() {
fixtures.valid.forEach(function(f, i) {
var expected = f.results[algorithm]
it('Async test case ' + i + ' for ' + algorithm + ' matches ' + expected, function(done) {
compat.pbkdf2(f.key, f.salt, f.iterations, f.dkLen, algorithm, function(err, result) {
assert.equal(result.toString('hex'), expected)
done()
})
})
})
fixtures.invalid.forEach(function(f) {
it('should throw ' + f.exception, function(done) {
compat.pbkdf2(f.key, f.salt, f.iterations, f.dkLen, f.algo, function(err) {
assert(new RegExp(f.exception).test(err))
done()
})
})
})
})
})
it('should throw if no callback is provided', function() {
assert.throws(function() {
compat.pbkdf2('password', 'salt', 1, 32, 'sha1')
}, /No callback provided to pbkdf2/)
})
})
describe('pbkdf2Sync', function() {
it('defaults to sha1', function() {
var result = compat.pbkdf2Sync('password', 'salt', 1, 32)
assert.equal(result.toString('hex'), "0c60c80f961f0e71f3a9b524af6012062fe037a6e0f0eb94fe8fc46bdc637164")
})
;['sha1', 'sha256', 'sha512'].forEach(function(algorithm) {
describe(algorithm, function() {
fixtures.valid.forEach(function(f, i) {
var expected = f.results[algorithm]
it('Test case ' + i + ' for ' + algorithm + ' matches ' + expected, function() {
var result = compat.pbkdf2Sync(f.key, f.salt, f.iterations, f.dkLen, algorithm)
assert.equal(result.toString('hex'), expected)
})
})
fixtures.invalid.forEach(function(f) {
it('should throw ' + f.exception, function() {
assert.throws(function() {
compat.pbkdf2Sync(f.key, f.salt, f.iterations, f.dkLen, f.algo)
}, new RegExp(f.exception))
})
})
})
})
})
})