Releases: ProtonMail/gopenpgp
Release v3.1.0-proton.2
This release is v3.1.0 with support for the following non-standardized features:
- Presistent symmetric keys draft-ietf-openpgp-persistent-symmetric-keys-00
- Automatic forwarding draft-wussler-openpgp-forwarding-00
- Post-quantum algorithms draft-ietf-openpgp-pqc
- Proton profiles
Patches v3.1.0-proton.1
:
- Update go-crypto to
v3.1.0-proton.2
with updated ML-KEM key combiner
Release v3.1.0-proton.1
This release is v3.1.0 with support for the following non-standardized features:
- Presistent symmetric keys draft-ietf-openpgp-persistent-symmetric-keys-00
- Automatic forwarding draft-wussler-openpgp-forwarding-00
- Post-quantum algorithms draft-ietf-openpgp-pqc
- Proton profiles
Patches v3.1.0-proton
:
- Update go-crypto to
v3.1.0-proton.1
to fix forwarding in thego-crypto/v2
API.
Release v3.1.0-proton
This release is v3.1.0 with support for the following non-standardized features:
- Presistent symmetric keys draft-ietf-openpgp-persistent-symmetric-keys-00
- Automatic forwarding draft-wussler-openpgp-forwarding-00
- Post-quantum algorithms draft-ietf-openpgp-pqc
- Proton profiles
Release v3.1.0
What's Changed
Added
- Add decryption option to allow disabling the integrity tag requirement by @JasonQuinn in #314
- Add option to decrypt with signature keys by @lubux in #316
Changed
- Adapt to go-crypto cleartext API changes by @lubux in #310
- Rename
profile.Custom.AllowWeakRSA
toprofile.Custom.InsecureAllowWeakRSA
- Update go-crypto fork to
v1.1.3
Full Changelog: v3.0.0...v3.1.0
Release v2.8.1-proton
This release is v2.8.1 with support for the following non-standardized features:
- Presistent symmetric keys draft-ietf-openpgp-persistent-symmetric-keys-00
- Automatic forwarding draft-wussler-openpgp-forwarding-00
- Post-quantum algorithms draft-ietf-openpgp-pqc
Release v2.8.1
Release v3.0.0-proton
This release is v3.0.0 with support for symmetric keys and automatic forwarding, both of which are not standardized yet.
Release v3.0.0
What's Changed
New simplified and unified API
GopenPGP v3 introduces a new unified API for high level OpenPGP operations. In comparison to GopenPGP v2, where similar functions were dispersed across different types and required varying implementations for the same operations, GopenPGP v3 consolidates these functions into a consistent interface. Now, operations such as Sign, Verify, Encrypt, Decrypt, and Key generation are each accessible through a unified, builder like API, simplifying integration and enhancing code readability across cryptographic workflows.
However, applications migrating from v2 to v3 will need to update their API calls, as the changes are not backward-compatible. This means that all previous API calls must be rewritten to align with the new, unified API structure. GopenPGP v3 supports the migration process by offering extensive documentation and practical examples. We recommend upgrading to v3 for the latest features and improvements, but we'll continue to support GopenPGP v2 for the time being. Our support includes ongoing bug fixes and minor feature updates to ensure stability and functionality for existing users.
For usage examples of the new API, see the README. For the full documentation, see https://pkg.go.dev/github.com/ProtonMail/gopenpgp/v3.
Profiles
GopenPGP v3 introduces the concept of profiles, enabling applications to configure OpenPGP algorithm selection based on their specific needs. For most applications, the provided preset profiles offer robust and secure defaults, eliminating the need for additional configuration.
RFC 9580 and Interoperability
GopenPGP v3 adds full support for the latest OpenPGP specification, RFC 9580. Compliance with the specification has also been significantly enhanced, as confirmed by the results in the OpenPGP interoperability test suite. These enhancements in GopenPGP v3 are possible by leveraging a new API in the go-crypto fork, which enables a range of improvements in functionality, compliance, and performance.
Go Mobile Support
GopenPGP v3 aims to be fully compatible with Gomobile to provide an API for mobile platforms. For this reason, the library defaults to a builder-like pattern, which is less commonly used in Go. All code that is only relevant for mobile platforms has been moved to the mobile
module.
Extending Functionality
GopenPGP v3 introduces a streaming interface across all APIs, enabling memory efficient processing of large data.
Additionally, it extends the library's functionality with various improvements, such as:
- Consider all signatures in a message during verification and allow inspection of each.
- Support signing with multiple keys.
- Support encrypting to an "anonymous recipient", where the recipient KeyID is represented as all zeros in the message.
- Add support for the intended recipient feature as specified in RFC 9580.
- Ensure consistent behaviour across all APIs.
- Support generating v6 keys as specified in RFC 9580.
Full Changelog: v2.7.5...v3.0.0.
Changelog since v3.0.0-beta.0: v3.0.0-beta.0...v3.0.0.
Release v2.8.0-proton
This release is v2.8.0 with support for symmetric keys and automatic forwarding, both of which are not standardized yet.
Release v2.8.0
What's Changed
Support for RFC 9580
Adds support for reading and writing messages with RFC 9580 by updating the underlying go-crypto fork library to the latest version. Note that GopenPGP v2 currently does not support:
- RFC 9580 intended recipients
- RFC 9580 key generation
For full RFC 9580 support, we recommend upgrading to GopenPGP v3.
Full Changelog: v2.7.5...v2.8.0