@coboxcoop/crypto v1.0.2-alpha.1
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/cryptoUsage
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.