Send in your ideas. Deadline October 1, 2025
logo
Grant
Theme fund: NGI0 Commons Fund
Start: 2025-06
More projects like this
Software engineering

Machine Usable Output for Sequoia

Reliable, scriptable memory-safe OpenPGP with JSON input/output

OpenPGP is a well-established protocol for encrypting, and signing data with a powerful, and decentralized PKI. Over the past few years, the Sequoia PGP project has developed several libraries, and command-line tools that facilitate working with OpenPGP data. The focus has been on usability, robustness, and security.

sq, Sequoia's primary command-line tool, is intended for end users, but it is also being used in scripts. This is problematic, because sq is designed for humans and not machines. For instance, sq displays free-form text, which is not guaranteed to remain the same from version to version. This way of operating is amenable to humans, but means that scripts have to parse unstructured output whose format may change in the future. This increases complexity and decreases robustness.

The goal of this project is to design and implement a machine-usable interface for sq. The most important and visible change will be support for JSON-formatted output. We will also rework user interactions like prompting for a password to be usable with scripts.

Run by Sequoia PGP

Logo NLnet: abstract logo of four people seen from above Logo NGI Zero: letterlogo shaped like a tag

This project was funded through the NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101135429. Additional funding is made available by the Swiss State Secretariat for Education, Research and Innovation (SERI).