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
}