Browse Source

switch to blake2b-universal and native sodium

v4
Mathias Buus 5 years ago
parent
commit
dae3760b8d
  1. 8
      index.js
  2. 16
      lib/blake2b.js
  3. 8
      lib/io.js
  4. 3
      package.json
  5. 8
      test.js

8
index.js

@ -1,7 +1,7 @@
const { EventEmitter } = require('events')
const peers = require('ipv4-peers')
const dgram = require('dgram')
const sodium = require('sodium-universal')
const sodium = require('sodium-native')
const KBucket = require('k-bucket')
const tos = require('time-ordered-set')
const collect = require('stream-collector')
@ -9,7 +9,7 @@ const codecs = require('codecs')
const { Message, Holepunch } = require('./lib/messages')
const IO = require('./lib/io')
const QueryStream = require('./lib/query-stream')
const blake2b = require('./lib/blake2b')
const blake2b = require('blake2b-universal')
const UNSUPPORTED_COMMAND = new Error('Unsupported command')
const nodes = peers.idLength(32)
@ -271,10 +271,12 @@ class DHT extends EventEmitter {
}
_token (peer, i) {
return blake2b.batch([
const out = Buffer.allocUnsafe(32)
blake2b.batch(out, [
this._secrets[i],
Buffer.from(peer.host)
])
return out
}
_onnodeping (oldContacts, newContact) {

16
lib/blake2b.js

@ -1,16 +0,0 @@
var sodium = require('sodium-universal')
blake2b.batch = blake2bBatch
module.exports = blake2b
function blake2b (buf) {
var out = Buffer.allocUnsafe(32)
sodium.crypto_generichash(out, buf)
return out
}
function blake2bBatch (batch) {
var out = Buffer.allocUnsafe(32)
sodium.crypto_generichash_batch(out, batch)
return out
}

8
lib/io.js

@ -1,7 +1,7 @@
const { Message, Holepunch, TYPE } = require('./messages')
const blake2b = require('./blake2b')
const blake2b = require('blake2b-universal')
const sodium = require('sodium-native')
const peers = require('ipv4-peers')
const sodium = require('sodium-universal')
const speedometer = require('speedometer')
const VERSION = 1
@ -36,10 +36,12 @@ class IO {
}
_token (peer, i) {
return blake2b.batch([
const out = Buffer.allocUnsafe(32)
blake2b.batch(out, [
this._secrets[i],
Buffer.from(peer.host)
])
return out
}
_free () {

3
package.json

@ -23,11 +23,12 @@
"tape": "^4.13.0"
},
"dependencies": {
"blake2b-universal": "^1.0.0",
"codecs": "^2.0.0",
"ipv4-peers": "^2.0.0",
"k-bucket": "^5.0.0",
"protocol-buffers-encodings": "^1.1.0",
"sodium-universal": "^2.0.0",
"sodium-native": "^3.1.1",
"speedometer": "^1.1.0",
"stream-collector": "^1.0.1",
"time-ordered-set": "^1.0.1",

8
test.js

@ -1,6 +1,6 @@
const tape = require('tape')
const dht = require('./')
const blake2b = require('./lib/blake2b')
const blake2b = require('blake2b-universal')
tape('simple update', function (t) {
bootstrap(function (port, node) {
@ -103,7 +103,8 @@ tape('swarm query', function (t) {
function done () {
t.pass('created swarm')
const key = blake2b(Buffer.from('hello'))
const key = Buffer.allocUnsafe(32)
blake2b(key, Buffer.from('hello'))
const me = dht({ bootstrap: port })
me.update('kv', key, Buffer.from('hello'), function (err, responses) {
@ -224,7 +225,8 @@ tape('persistent', function (t) {
a.ready(function () {
b.ready(function () {
const key = blake2b(Buffer.from('hello'))
const key = Buffer.allocUnsafe(32)
blake2b(key, Buffer.from('hello'))
b.query('hello', key, (err, result) => {
t.error(err)
t.is(result.length, 0)

Loading…
Cancel
Save