On Mon, Jul 06, 2026 at 04:36:49PM +0200, Uwe Kleine-König wrote:
Packet ordering bases on comparing hashes (Codec/Encryption/OpenPGP/Types.hs, `instance Ord Pkt`) and canonicalize
So technically the bug is in (or also in) hOpenPGP, but that's not important for this discussion.
sorts using that Ord instance. Now hashable changed byte hashing in https://github.com/haskell-unordered-containers/hashable/pull/301 and thus canonicalization changed. IMHO canonicalization shouldn't depend on an (unstable) hashing algorithm. It should at least be documented that canonicalization is unstable, or better, canonicalization should be fixed to be independent of hashing.
I agree, and there's a FIXME comment about it in hOpenPGP's Codec/Encryption/OpenPGP/Types/Internal/Pkt.hs , but I don't have a good solution. Do you have an idea for a stable mechanism that would do the right thing?

