Skip to content

Sodium wrapper for working with BEP44 on bittorrent-dht

License

Notifications You must be signed in to change notification settings

emilbayes/bittorrent-dht-sodium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bittorrent-dht-sodium

Build Status

Sodium wrapper for working with BEP44 on bittorrent-dht

Usage

var eddsa = require('bittorrent-dht-sodium')
const DHT = require('bittorrent-dht')
const dht = new DHT({
  verify: eddsa.verify
})

const keys = eddsa.keygen()

dht.put({
  v: Buffer.from('Hello world'),
  k: keys.pk,
  seq: 0,
  sign: (msg) => {
    return eddsa.sign(msg, keys.sk)
  }
}, function (err, hash) {
  // ...
})

API

const { pk, sk } = eddsa.keygen([sk])

Derive a Ed25519 keypair, optionally deriving the pk from an exisiting sk. Returns pk as Public Key, sk as Secret Key. The sk here is not compatible with ed25519-supercop, as the encoding is different, but signatures will be the same.

const sig = eddsa.sign(msg, sk)

Sign Buffer msg with sk returning the signature as a Buffer

const valid = eddsa.verify(sig, msg, pk)

Verify Buffer sig against Buffer msg with pk returning boolean whether valid or not.

const salt = eddsa.salt()

Generate a 64 byte random salt. This is equal to the block size of SHA-1, the hash function used by the DHT.

Install

npm install bittorrent-dht-sodium

License

ISC

About

Sodium wrapper for working with BEP44 on bittorrent-dht

Resources

License

Stars

Watchers

Forks

Packages

No packages published