Proper encryption ought to be simple, and widespread.
Jose-Simple simplifies the encryption and decryption of data using the JOSE (JSON Object Signing and Encryption) standard.
- The project depends on
node-joseby Cisco. node-josedoes not allow you to use private keys with passwords, and they have no intention of changing that.- Requires Node 10.12.0 or better if you want to run the tests. Works fine under Node 12+, and might run under versions of node going back to 8.x but no further.
npm install jose-simpleconst jose = require('jose-simple')
// You need a private / public JWE key pair.
// Either load them from `.pem` files, create them, or somehow acquire them.
// The private key must not have a passphrase or cypher!
// see https://github.com/cisco/node-jose/issues/69#issuecomment-236133179
// see also https://github.com/cisco/node-jose/issues/234#issuecomment-457615794
// see unit tests for a simple example.
const { encrypt, decrypt } = jose(privateKey, publicKey)
const someData = {
some: 'amazing data',
you: 'want to keep hidden',
from: 'prying eyes'
}
encrypt(someData).then(encrypted => {
console.log('encrypted', encrypted)
decrypt(encrypted).then(decrypted => {
console.log('decrypted', decrypted)
// decrypted will be the same as someData
})
})You can add encrypt options as follows:
const { encrypt, decrypt } = jose(privateKey, publicKey, {
format: 'compact'
protect: true,
// or any of the encrypt options than can be passed to JWE.createEncrypt.
// https://github.com/cisco/node-jose/blob/master/lib/jwe/encrypt.js#L660-L668
})| Branch | Status | Coverage | Audit | Comment |
|---|---|---|---|---|
develop |
Work in progress | |||
main |
Latest release |
- NodeJS, I use
nvmto manage Node versions —brew install nvm.
npm test— runs the unit tests. The tests give an example of how to create key pairs too. (Leverages thecrypto.generateKeyPairlibraries introduced in Node10.12.0.)npm run test:unit:cov— runs the unit tests with code coverage
npm run lintContributions are welcome. Please see CONTRIBUTING for more details.
