@coboxcoop/crypto
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
publicKeybuffer or hex encoded stringmessagebuffer 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.
cipherTextthe encrypted message given as a buffer.keypairan 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.