The case for OpenPGP as a collaborative effort

Heiko Schäfer heiko.schaefer at posteo.de
Fri Sep 12 19:42:17 CEST 2025


Hello all,

This thread has veered into questions about how the OpenPGP standard as 
such develops, and I have thoughts.

Reasonable people can have different personal preferences on details of 
the RFC 9580 specification and the LibrePGP draft. However, objectively, 
RFC 9580 has been produced in a multi-stakeholder IETF process, and 
LibrePGP has not[1].

The initial framing of this thread misses this point by centering one 
actor who participated in the IETF process. However, I think the most 
interesting question is "Where is collaboration happening?" (not: "Which 
of two actors do I trust/favor?").

RFC 9580 is the result of multiple years of collaboration by a sizeable 
and diverse group. This work is public and on the record. Many 
trade-offs were considered, discussed and worked through. The design 
decisions that RFC 9580 embodies are certainly not impulsive.
LibrePGP on the other hand, seems to be written single-handedly by 
Werner Koch, and in private (I am not aware of public deliberations 
about any of the design decisions in it). Also see [2], [3].


# RFC 9580 is supported by many independent implementers and contributors

The work that went into RFC 9580 shows. The text is *much* clearer than 
its predecessor, RFC 4880 and its close relative, the LibrePGP draft. (A 
report comissioned by the BSI [4] also seems to make this point.)

RFC 9580 specifies some new formats, but all of them are clear 
evolutions of what came before. Its new v6 formats enable a clean 
transition from the current "v4 OpenPGP" state of affairs to future 
artifacts that finally drop some of the legacy cruft that has been 
rightfully criticized about OpenPGP.

As Vincent pointed out, all major OpenPGP libraries now feature rather 
complete implementations of v6/RFC 9580. Of course, since libraries are 
not user-facing, they have less mindshare than GnuPG. Still, I am 
confident that their aggregate use substantially outpaces GnuPG's. These 
libraries include Bouncy Castle, GopenPGP, OpenPGP.js, PGPainless, rnp, 
rPGP and Sequoia-PGP. We're looking at the work of *many* independent 
parties, all of which clearly agree that RFC 9580 is a good standard and 
represents the future direction of OpenPGP.

As others have pointed out, GnuPG is a C codebase with a long history 
(going on 28 years). On top of that, it's a codebase that is mostly 
uncovered by tests, and has no automated CI. If GnuPG were my project, I 
would also be anxious about each change I make. I believe that because 
of this the LibrePGP draft errs on the side of making minimal changes, 
with the unspoken goal of limiting risks of breakage in a brittle 
codebase with practically no tests. (Maybe the new formats in RFC 9580 
are indeed "too radical" of an evolutionary step to safely implement in 
GnuPG. But that's surely not a failing of RFC 9580.)


# My place in the larger OpenPGP collective

Just to clarify where I'm writing from: I have participated in many 
collaborative efforts in the OpenPGP space over the past 7 years [5]. 
Last year, I contributed an implementation of the new RFC 9580 formats 
to the rPGP library [6]. rPGP is a pure Rust implementation of OpenPGP, 
it is 8 years old, and most prominently used in the Delta Chat 
decentralized secure messenger app [7].

It's probably fair to say I am familiar with RFC 9580, and can judge its 
merits with some confidence. I've also implemented decryption support 
for the "OCB" encryption container format from the LibrePGP draft in 
rPGP. The latter effort further clarified the high quality of RFC 9580 
to me - the LibrePGP draft does not compare favorably. Collaboration 
produces better quality and clarity.


# Conclusion

I am pretty happy how the OpenPGP space is developing lately. There's 
much progress and productive collaboration. It is very unfortunate that 
GnuPG has decoupled from the rest of the OpenPGP ecosystem. But then, a 
lot of people have spent a lot of time trying to reach out and build 
bridges, to find compromises. Sadly, so far to no avail.

I'm well aware of many of the interpersonal undercurrents in this space 
over the past decade. Certainly, the "people"-aspect of collaboration 
can be hard and tiresome. But that's not specific to OpenPGP. Social 
complications happen in many specification and FOSS implementation 
efforts. It takes work to talk, coordinate, find common ground, actually 
take other perspectives seriously and work through their implications. 
But really, this is not a good reason - let alone justification - for 
forking the OpenPGP standard.

Thanks, cheers,
Heiko


PS: Just to clarify two potential points of confusion:

- Both RFC 9580 and LibrePGP are fully backward compatible with the 
formats in RFC 4880. Both drafts fully support existing v4 keys and 
messages. Also, they both use signaling mechanisms, so that, e.g., a 
sender's software knows which encryption formats a recipient can 
decrypt. Neither of the two drafts breaks the status quo.

- Both RFC 9580 and LibrePGP introduce new formats that won't work with 
software that predates the respective spec. The main difference is that 
RFC 9580 defines v6 OpenPGP formats that actually clean up some legacy 
cruft (things that can never be dropped in v4, and that LibrePGP's v5 
also doesn't clean up).

--

[1]: Somewhat bizarrely, the same pattern of a "schism" between IETF- 
and GnuPG-formats seems to repeat around PQC in OpenPGP: A group at the 
IETF is working on draft-ietf-openpgp-pqc, while GnuPG at some point 
decided to implement a similar but incompatibly different PQC scheme 
(fwiw, Sequoia-PGP was not an active participant in the work on 
draft-ietf-openpgp-pqc. And yet, GnuPG has opted not to work with the 
group at the IETF.)
[2]: "Requesting the editor to step down", Vincent Breitmoser 
2020-04-17: 
https://mailarchive.ietf.org/arch/msg/openpgp/XxZt89Eh7XUenuVRajbgtcWzWdA/
[3]: "Speaking as Author / Editor of RFC 9580", Paul Wouters 2025-08-28: 
https://warmwasserwerfer.de/2025/08/28/towards-openpgp-v6-in-pgpainless/#comment-37301
[4]: "Comparison of RFC 9580 and LibrePGP", Johannes Roth and Falko 
Strenzke 2025-07-08: 
https://github.com/crypto-security-tools/OpenPGP-LibrePGP-comparison/releases/download/v1.4/opgp-lpgp-comp.pdf
[5]: https://floss.social/@hko has more from and about me
[6]: RFC 9580 support in rPGP: https://fosstodon.org/@hko/113198947595455844
[7]: Delta Chat is a decentralized system and has no telemetry. However, 
a known lower bound for its current use is "Three million OpenPGP 
encrypted messages per day" (using email as transport)



More information about the Gnupg-devel mailing list