Jose-Simple allows the encryption and decryption of data using the JOSE (JSON Object Signing and Encryption) standard.
66
stars
451
commits
JavaScript
primary language
Apr 23, 2024
updated
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.
node-jose by Cisco.node-jose does not allow you to use private keys with passwords, and they have no intention of changing that.npm install jose-simple
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
})
})
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
})
npm test — runs the unit tests. The tests give an example of how to create key pairs too. (Leverages the crypto.generateKeyPair libraries introduced in Node 10.12.0.)npm run test:unit:cov — runs the unit tests with code coveragenpm run lint
Contributions are welcome. Please see CONTRIBUTING for more details.
JavaScript
100.0%
Jose-Simple allows the encryption and decryption of data using the JOSE (JSON Object Signing and Encryption) standard.
66
stars
451
commits
JavaScript
primary language
Apr 23, 2024
updated
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.
node-jose by Cisco.node-jose does not allow you to use private keys with passwords, and they have no intention of changing that.npm install jose-simple
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
})
})
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
})
npm test — runs the unit tests. The tests give an example of how to create key pairs too. (Leverages the crypto.generateKeyPair libraries introduced in Node 10.12.0.)npm run test:unit:cov — runs the unit tests with code coveragenpm run lint
Contributions are welcome. Please see CONTRIBUTING for more details.
JavaScript
100.0%