pmcrypto icon indicating copy to clipboard operation
pmcrypto copied to clipboard

Upgrade to OpenPGP.js v6

Open larabr opened this issue 1 year ago • 0 comments

As OpenPGP.js is now declared as "module", we also switch pmcrypto to be one. This causes the majority of changes in this PR.

Non-breaking changes:

  • added support for reading and generating v6 packet versions
  • added support for processing and generating Curve448 keys, and Curve25519 in new format
  • ...

Breaking changes:

  • for downstream TS compiler, using the new "node16" or "Bundler" module resolution is required, as e.g. the noble-hashes lib uses exports only (if this is too problematic, we could temporarily add legacy entrypoints to that dependency, since we currently use a fork).
  • limited support for (legacy, non-standardized) AEAD-encrypted v4 keys as per draft4880bis
  • enum name changes related to legacy curve25519 and eddsa
  • ...

TODO:

  • [x] rebase on top of TS fix for lightweight build (to be released in next openpgpjs v6 pre-release)
  • [ ] release protontech/v6 and point to it
  • [x] test integration with web-clients, esp. TS config
  • post-canary:
    • [ ] we currently reject keys in new eddsa/xecdh format (in checkKeyStrength)
    • [ ] accept sha3 in generated key prefs
    • [ ] make explicit date inputs mandatory?
  • [ ] ...

larabr avatar Nov 23 '23 11:11 larabr