neopg
neopg copied to clipboard
Use Botan Pipe and Filters
This is challenging, because:
- GnuPG uses a push/pull architecture for write/read pipes, while Botan only supports a push/push architecture (this is why usually the read and write direction of a filter are merged in a single filter object, but only one of the parts is used).
- GnuPG has some support for OpenPGP encodings inside the pipe implementation (for example splitting up in chunks with partial length headers)
- GnuPG changes the filter set up dynamically (for example to insert compression/decompression after detection)
Simplifying the logic so much that we can do the final replacement will take a while. Maybe it is faster to reimplement from scratch.