jose-simple alternatives and similar modules
Based on the "Security" category.
Alternatively, view jose-simple alternatives based on common mentions on social networks and blogs.
-
snyk
DISCONTINUED. Snyk CLI scans and monitors your projects for security vulnerabilities. [Moved to: https://github.com/snyk/cli] -
is-website-vulnerable
finds publicly known security vulnerabilities in a website's frontend JavaScript libraries -
Themis by Cossack Labs
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of jose-simple or a related project?
README
jose-simple
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.
Caveats
- The project depends on
node-jose
by Cisco. node-jose
does 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.
Installation
npm install jose-simple
Links
Useage
const 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
})
})
Options
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
})
Development
<!-- prettier-ignore -->
| Branch | Status | Coverage | Audit | Comment |
| ------ | ------ | -------- | ----- | ------- |
| develop
| | | | Work in progress |
| master
| | | | Latest release |
Prerequisites
- [NodeJS](htps://nodejs.org), I use
nvm
to manage Node versions โbrew install nvm
.
Test it
npm test
โ runs the unit tests. The tests give an example of how to create key pairs too. (Leverages thecrypto.generateKeyPair
libraries introduced in Node10.12.0
.)npm run test:unit:cov
โ runs the unit tests with code coverage
Lint it
npm run lint
Contributing
Contributions are welcome. Please see [CONTRIBUTING](CONTRIBUTING.md) for more details.