hyperdht
Version:
The DHT powering Hyperswarm
29 lines (24 loc) • 635 B
JavaScript
const sodium = require('sodium-universal')
const b4a = require('b4a')
function hash (data) {
const out = b4a.allocUnsafe(32)
sodium.crypto_generichash(out, data)
return out
}
function unslabbedHash (data) {
const out = b4a.allocUnsafeSlow(32)
sodium.crypto_generichash(out, data)
return out
}
function createKeyPair (seed) {
const publicKey = b4a.alloc(32)
const secretKey = b4a.alloc(64)
if (seed) sodium.crypto_sign_seed_keypair(publicKey, secretKey, seed)
else sodium.crypto_sign_keypair(publicKey, secretKey)
return { publicKey, secretKey }
}
module.exports = {
hash,
unslabbedHash,
createKeyPair
}