Skip to content

Instantly share code, notes, and snippets.

@joshterrill
Created June 13, 2018 08:12
Show Gist options
  • Save joshterrill/b5309800c54f7323fa0df2edf7b57134 to your computer and use it in GitHub Desktop.
Save joshterrill/b5309800c54f7323fa0df2edf7b57134 to your computer and use it in GitHub Desktop.
OpenPGP.js browserify javascript methods
  1. Install browserify
npm install -g browserify
  1. Save the pgp.util.js contents to a file.

  2. Run browserify ./pgp.util.js -o ./openpgp.bundle.js

  3. Now include openpgp.bundle.js in any HTML page, and the encrypt, decrypt, and generate methods will be available on the window object.

var openpgp = require('openpgp');
window.generate = (name, email, passphrase, numBits) => {
const userId = name = " <" + email + ">";
const options = {
numBits: numBits || 2048,
userIds: [userId],
passphrase,
};
return openpgp.generateKey(options);
}
window.encrypt = (privatekey, publickey, passphrase, message) => {
const privatekeyobj = openpgp.key.readArmored(privatekey).keys[0];
return privatekeyobj.decrypt(passphrase).then(decrypted => {
const options = {
data: message,
publicKeys: openpgp.key.readArmored(publickey).keys,
privateKeys: [privatekeyobj],
};
return openpgp.encrypt(options);
}).catch(error => {
return Promise.reject({error});
});
}
window.decrypt = (privatekey, publickey, passphrase, pgpmessage) => {
const privatekeyobj = openpgp.key.readArmored(privatekey).keys[0];
return privatekeyobj.decrypt(passphrase).then(decrypted => {
const options = {
message: openpgp.message.readArmored(pgpmessage),
privateKeys: [privatekeyobj],
};
if (publickey) {
options.publicKeys = openpgp.key.readArmored(publickey).keys;
}
return openpgp.decrypt(options);
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment