Sequoia 1.0, a library that implements OpenPGP standards

After three and a half years of development it was published the editing package Sequoia 1.0, developing a library of command line tools and functions with the implementation of the OpenPGP standard (RFC-4880).

The launch summarized the work on the low-level API, which implements the coverage of the OpenPGP standard, sufficient for full use. The project code is written in Rust and is distributed under the GPLv2 + license.

The project was founded by three GnuPG contributors from g10code, a developer of GnuPG plugins and cryptosystem auditing. The Sequoia team is also known for creating the Hagrid keyserver, which is used by the service.

The goal of the new project was to redesign the architecture and apply new techniques to improve the security and reliability of the codebase.

To improve security, Sequoia uses not only programming tools sure they use the language Rust, but also API-level error protection.

For example, the API does not allow you to accidentally export secret key materialas, by default, export operations require an explicit selection. Also, the API ensures that no important steps are missed when updating a digital signature; By default, the creation time, hashing algorithm, and issuer of the signature are updated automatically.

Sequoia you are also trying to get rid of GnuPG deficienciessuch as the desynchronization of the functionality of the command line tools with the function library (some actions can only be performed using the utility) and the too tight coupling between components, making it difficult to make changes, obfuscates the base of the code and prevents the creation of a complete unit system. -tests.

Sequoia develops sq command line utility with Git style subcommand support, the sqv program (replacement for gpgv) for verifying separate signatures, the sqop utility (Stateless OpenPGP CLI), and the sequoia-openpgp library.

There are links for the C and Python languages. Most of the functions described in the OpenPGP standard are compatible with encryption, decryption, creation and verification of digital signatures.

Among the advanced features, it is noted that it supports verification using separately supplied digital signatures (separate signature), adaptation for integration with package managers (APT, RPM, upload, etc.), the ability to limit signatures by threshold and time values.

To simplify development, debugging, and incident analysis, packet inspection tools are provided, which integrate with the analyzer and allow you to visually analyze the structure of encrypted messages, digital signatures, and keys.

For security reasons, The use of cryptographic services, such as coprocessors for computing in isolated enclaves, is supported. For additional isolation, the separation into separate processes of the services working with public and private keys is practiced (the interaction of the processes is organized using the Cap'n Proto protocol). For example, a keystore is developed in the form of a separate process.

There are two API options: low level and high level. The low-level API reproduces as closely as possible the capabilities of OpenPGP and some related extensions, such as ECC support, notarization (signature on signature) and elements of the draft of the future edition of the standard.

It is observed that according to the planned functionality, Sequoia reached readiness for version 1.0 a year ago, but the developers decided not to rush and spend more time to look for errors and write complete, high-quality documentation with links to information in the OpenPGP standard and usage examples.

Version 1.0 so far only covers the sequoia-openpgp box and the sqv digital signature verification utility. The "sq" CLI and high-level APIs have not yet stabilized and are being finalized.

Limitations that are planned to be removed in future releases include the implementation of services for storing private and public keys, support for clear text digital signatures, and the ability to use regular expressions to determine trusted signatures.

The content of the article adheres to our principles of editorial ethics. To report an error click here!.

Be the first to comment

Leave a Comment

Your email address will not be published.



  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.