@coboxcoop/crypto
v1.0.2-alpha.1
Published
crypto library for generating keys using libsodium
Downloads
1
Readme
crypto
Table of Contents
About
CoBox is an encrypted p2p file system and distributed back-up tool. README provides a map of the project.
crypto
provides the crypto primitives used in CoBox
Install
npm i -g @coboxcoop/crypto
Usage
const crypto = require('@coboxcoop/crypto')
API
const address = crypto.address()
Returns a ed25519
random 32 byte buffer
const keyPair = crypto.keyPair()
Returns an ed25519
keypair that can used for tree signing.
const encKey = crypto.encryptionKey()
Returns an ed25519
symmetric key used for shared secret encryption
const accessKey = crypto.accessKey()
// OR
const accessKey = crypto.pack(address, encKey)
Returns an access key, which consists of an ed25519
address, packed together with an ed25519
symmetric key
const keys = crypto.unpack(key)
Returns an object containing an address, and a shared secret if accessible. Address alone is used for blind replication. The shared secret can then be used for decryption.
const { publicKey, secretKey } = crypto.boxKeyPair(seed)
Returns an ed25519
private box keypair used for identification, message signing and encryption
const boxed = box(publicKey, message, [context])
Encrypts a message to a given public key and returns it as a buffer
publicKey
buffer or hex encoded stringmessage
buffer or hex encoded string of any lengthcontext
, if passed, will be hashed in to the shared secret. Should be a buffer or hex encoded string.
const unboxed = unbox(cipherText, keypair, [context])
Decrypts a message using the given keypair.
cipherText
the encrypted message given as a buffer.keypair
an object of the form{ publicKey, secretKey }
both of which should be buffers or hex encoded strings.context
, if given, will be hashed into the shared secret. Should be a buffer or hex encoded string.
Contributing
PRs accepted.
Small note: If editing the README, please conform to the standard-readme specification.