Package Exports
- bittorrent-dht-store-keypair
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (bittorrent-dht-store-keypair) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
bittorrent-dht-store-keypair
Setting up elliptic curve keys and signing properly for BEP44 can be tricky, especially since bittorrent uses the more obscure supercop/ref10 instead of sodium/nacl ed25519 key formatting.
example
quick example
var KP = require('bittorrent-dht-store-keypair')
var DHT = require('bittorrent-dht')
var dht = new DHT({ verify: KP.verify })
var kp = KP()
var value = 'beep boop'
dht.once('ready', function () {
dht.put(kp.store(value), function (errors, hash) {
if (errors.length) errors.forEach(console.log)
else console.log(kp.id)
})
})
save and load a key from a file
var KP = require('bittorrent-dht-store-keypair')
var kp = KP()
console.log(JSON.stringify({
publicKey: kp.publicKey.toString('hex'),
secretKey: kp.secretKey.toString('hex')
}))
$ node generate.js > keypair.json
var KP = require('bittorrent-dht-store-keypair')
var DHT = require('bittorrent-dht')
var path = require('path')
var concat = require('concat-stream')
var dht = new DHT({ verify: KP.verify })
var kp = KP(require(path.resolve(process.argv[2])))
dht.once('ready', function () {
process.stdin.pipe(concat(function (value) {
dht.put(kp.store(value), function (errors, hash) {
if (errors.length) errors.forEach(console.log)
else console.log(kp.id)
})
}))
})
$ echo wow cool | node put.js keypair.json
api
var KP = require('bittorrent-dht-store-keypair')
var kp = KP(opts)
opts.publicKey
- createkp
with a buffer or hex string public keyopts.secretKey
- createkp
with a buffer or hex string private keyopts.seq
- sequence to start at inkp.store()
var signature = kp.sign(value)
Sign a buffer or string value
with the private key.
var putOpts = kp.store(value, opts)
Create the putOpts
for a value
to pass into bittorrent-dht's put()
function.
kp.seq
is incremented here unless opts.seq
is provided.
kp.publicKey
public key (32 bytes)
kp.secretKey
private key (64 bytes)
kp.id
sha1 hash of the kp.publicKey
kp.seq
sequence number
KP.verify
The underlying ed25519-supercop verify function.
This is handy to pass into the bittorrent-dht constructor as the verify
parameter:
var DHT = require('bittorrent-dht')
var KP = require('bittorrent-dht-store-keypair')
var dht = new DHT({ verify: KP.verify })
install
npm install bittorrent-dht-store-keypair
license
MIT