Skip to content

Instantly share code, notes, and snippets.

@emilbayes
emilbayes / README.md
Last active November 14, 2018 11:16
Streams stuff
  • do on readable then read
  • do framing
  • don't use data
  • check this.destroyed after each "Hand-off" (emit and push)
  • check stream.destroyed after all async operations
const accounts = 1
const bits = 42
function forin (n, exp) {
res = []
for (var i = 0; i < n; i++) {
res.push(exp(n))
}
return res
}
function generator () {
var lastTime = Date.now()
var cnt = 0
return function () {
var currentTime = Date.now()
if (currentTime !== lastTime) {
lastTime = currentTime
cnt = 0
}
@emilbayes
emilbayes / index.js
Created March 20, 2020 12:01
DHT with sodium-native
const sodium = require('sodium-native')
const DHT = require('bittorrent-dht')
const dht = new DHT({
verify: sodium.crypto_sign_verify_detached
})
const keys = keygen()
dht.put({
v: Buffer.from('Hello world'),
@emilbayes
emilbayes / key.js
Created March 30, 2020 22:30
Key encapsulation
const sodium = require('sodium-native')
const assert = require('nanoassert')
const priv = new WeakMap()
class Key {
static BYTES = sodium.crypto_secretbox_KEYBYTES
static NONCEBYTES = crypto.crypto_aead_xchacha20poly1305_ietf_NPUBBYTES
static TAGBYTES = sodium.crypto_aead_xchacha20poly1305_ietf_ABYTES
static create () {