halite
encrypt and decrypt UTF-8 strings with tweetnacl
usage
var halite = var message = 'hi guys'// make a noncevar n = halite// generate two keypairsvar kp1 = halitevar kp2 = halite// kp1 encrypts a message for kp2var enc = halite// kp2 decrypts the message with kp1's public keyvar dec = haliteconsole// > 'hi guys'
encrypt / decrypt api
halte.keypair()
generate a keypair
halite.makenonce()
generate a nonce
halite.encrypt(str, nonce, pubkey, secretkey)
returns encrypted message as a Uint8Array
halite.encrypt(arr, nonce, pubkey, secretkey)
returns a string. arr should be a Unit8Array
sign / verify api
halite.signKeypair()
generate a keypair for signing
sign(str, sk)
returns signed message as a Uint8Array
verify(arr, pk)
returns a clertext message if arr (a Uint8Arr) is signed from pk. returns null
if validation fails.
helper functions
halite.pk(kp)
get the public key of a keypair kp
halite.sk(kp)
get the secret key of a keypair kp
halite.serialize(u8a) / halite.deserialize(arr)
converts u8a to str and back again. this is convenient for seding uint8arrays over the wire. e.g.,
// this doesnt work!var a= 1 23JSON === a// > false // but this works!!var overWire = JSON halite === a// > true
developing
to run the tests
npm test
when developing, you can watch for changes and re-run tests automatically
npm run watch
license
BSD