age-encryption is a TypeScript implementation of the
age file encryption format.
All low-level cryptographic operations are implemented with libsodium.js.
Installation
npm install age-encryption
Usage
age-encryption is a modern ES Module, compatible with Node.js and Bun, with built-in types.
There is a single exported function, age(), which returns a Promise that resolves to an object that provides the package API. This is necessary to ensure that applications always call sodium.ready() from libsodium.js.
Encrypt and decrypt a file with a new recipient / identity pair
import age from"age-encryption"// Initialize the age library (calls sodium.ready).const { Encrypter, Decrypter, generateIdentity, identityToRecipient } = awaitage()
const identity = generateIdentity()
const recipient = identityToRecipient(identity)
console.log(identity)
console.log(recipient)
const e = newEncrypter()
e.addRecipient(recipient)
const ciphertext = e.encrypt("Hello, age!")
const d = newDecrypter()
d.addIdentity(identity)
const out = d.decrypt(ciphertext, "text")
console.log(out)
Encrypt and decrypt a file with a passphrase
import age from"age-encryption"// Initialize the age library (calls sodium.ready).const { Encrypter, Decrypter } = awaitage()
const e = newEncrypter()
e.setPassphrase("burst-swarm-slender-curve-ability-various-crystal-moon-affair-three")
const ciphertext = e.encrypt("Hello, age!")
const d = newDecrypter()
d.addPassphrase("burst-swarm-slender-curve-ability-various-crystal-moon-affair-three")
const out = d.decrypt(ciphertext, "text")
console.log(out)
Browser usage
age-encryption is compatible with modern bundlers such as esbuild.
To produce a classic library file that sets age() as a global variable, you can run
The npm package age-encryption receives a total of 862 weekly downloads. As such, age-encryption popularity was classified as not popular.
We found that age-encryption demonstrated a not healthy version release cadence and project activity because the last version was released a year ago.It has 1 open source maintainer collaborating on the project.
Package last updated on 03 Nov 2023
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.