Skip to content
This repository was archived by the owner on Aug 24, 2021. It is now read-only.

Commit fc01b26

Browse files
mikealhugomrdias
authored andcommitted
feat: validation. fixes #43 (#44)
Simple algorithm agnostic validation w/ tests.
1 parent 0438ee7 commit fc01b26

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

src/index.js

+8
Original file line numberDiff line numberDiff line change
@@ -139,3 +139,11 @@ Multihashing.functions = {
139139

140140
// add blake functions
141141
crypto.addBlake(Multihashing.functions)
142+
143+
Multihashing.validate = (data, hash, callback) => {
144+
let algo = multihash.decode(hash).name
145+
Multihashing(data, algo, (err, newHash) => {
146+
if (err) return callback(err)
147+
callback(err, Buffer.compare(hash, newHash) === 0)
148+
})
149+
}

test/index.spec.js

+24
Original file line numberDiff line numberDiff line change
@@ -76,3 +76,27 @@ describe('multihashing', () => {
7676
})
7777
})
7878
})
79+
80+
describe('validate', () => {
81+
it('true on pass', done => {
82+
multihashing(Buffer.from('test'), 'sha2-256', (err, hash) => {
83+
if (err) throw done(err)
84+
multihashing.validate(Buffer.from('test'), hash, (err, bool) => {
85+
if (err) throw done(err)
86+
expect(bool).to.eql(true)
87+
done()
88+
})
89+
})
90+
})
91+
92+
it('false on fail', done => {
93+
multihashing(Buffer.from('test'), 'sha2-256', (err, hash) => {
94+
if (err) throw done(err)
95+
multihashing.validate(Buffer.from('test-fail'), hash, (err, bool) => {
96+
if (err) throw done(err)
97+
expect(bool).to.eql(false)
98+
done()
99+
})
100+
})
101+
})
102+
})

0 commit comments

Comments
 (0)