github openpgpjs/openpgpjs v2.0.0
OpenPGP.js v2.0.0

latest releases: v6.0.0-beta.1, v6.0.0-beta.0, v5.11.1...
8 years ago

Release notes

  • Completely new public api written in ES6 (breaking change to v1.x). You can review it here and see some usage examples in the README.
  • Refactor to ES6 modules instead of common.js (uses Babel and browserify to generate ES5 UMD build).
  • Uint8Array all the things! (kudos go to @bartbutler for the initial refactoring).
  • Native node.js crypto for AES-CFB and all hashing (SHA-1, SHA-256, SHA-384, SHA-512, MD5, RIPE).
  • Use asm.js implementations of AES-CFB, SHA-1, SHA-256 when no native crypto is available. Uses Rusha and asmCrypto Lite (a minimal subset of asmCrypto.js built specifically for OpenPGP.js).
  • Use transferable objects to pass ArrayBuffers between main thread and Web Worker (must currently be activated by setting openpgp.config.zeroCopy = true).
  • All code under src/ has been cleaned up and now runs in strict mode (with a few exceptions). This prevents a large class of bugs and lets JS runtimes to optimize more easily. Grunt jobs for JShint and JSCS (code style linting) now run automatically before each travis build so that PRs from outside must adhere to strict mode and our code style e.g. indentations using 2 spaces.

Future roadmap

  • Native WebCrypto apis for SHA hashing. This would require refactoring of most private apis from sync to async/promise style.
  • Use WebCrypto or at least asmCrypto for RSA en/decrypt. Replacing current jsbn/rsa implementation (big performance bottleneck for larger RSA keys).
  • Add resync-mode support to asmCrypto AES-CFB for non-integrity-protected symmetric encrypted packets. Replacing current AES/CFB implementation (right have two atm).
  • Add support for elliptic curve cryptography (ECC) keys to stay compatible with GnuPG v2.x and the upcoming Google End-to-End.

Don't miss a new openpgpjs release

NewReleases is sending notifications on new releases.