12 unstable releases (4 breaking)

0.5.3 Apr 15, 2024
0.5.0 Feb 23, 2024
0.4.0 Dec 6, 2023
0.3.2 Apr 27, 2023
0.2.0 Mar 7, 2023

#257 in Cryptography

Download history 284/week @ 2023-12-31 510/week @ 2024-01-07 369/week @ 2024-01-14 391/week @ 2024-01-21 387/week @ 2024-01-28 393/week @ 2024-02-04 565/week @ 2024-02-11 959/week @ 2024-02-18 1022/week @ 2024-02-25 631/week @ 2024-03-03 384/week @ 2024-03-10 561/week @ 2024-03-17 313/week @ 2024-03-24 656/week @ 2024-03-31 798/week @ 2024-04-07 759/week @ 2024-04-14

2,589 downloads per month
Used in 9 crates (6 directly)

LGPL-2.0-or-later

370KB
7K SLoC

An OpenPGP certificate store abstraction and implementation.

This crates provides a unified, high-level API for different certificate stores via the Store and StoreUpdate traits. It also provides a number of helper functions and data structures, like UserIDIndex to help implement this functionality. Finally, the CertStore data structure combines multiple certificate backends in a transparent way to users.

This crate supports multiple backends: CertD uses an OpenPGP Certificate Directory. Certs manages a bunch of certificates in-memory. It can be loaded with certificates from a keyring, a keybox, a database, etc. It can also be used as the basis for a new backend, which actually writes changes back to the underlying store. Pep provides access to a pEp certificate store. Finally, there is a key server backend, which can fetch certificates via HKPS and WKD.

Usage

To use sequoia-cert-store from your project, you should add the following to your crate's Cargo.toml:

[dependencies]
sequoia-cert-store = "0.3"
sequoia-openpgp = { version = "1.0.0", default-features = false }

To compile your crate you would then run:

$ cargo build --release --features sequoia-openpgp/crypto-default
$ cargo test --features sequoia-openpgp/crypto-default
$ cargo doc --no-deps --features sequoia-openpgp/crypto-default

If you do not disable the use of sequoia-openpgp's default features, then sequoia-openpgp will select the default cryptographic backend, and your users won't be able to easily compile your crate with a different cryptographic backend.

sequoia-openpgp currently uses Nettle as its default cryptographic backend. sequoia-openpgp also supports OpenSSL (sequoia-openpgp/crypto-openssl), Botan (sequoia-openpgp/crypto-botan), Windows CNG (sequoia-openpgp/crypto-cng), Rust Crypto (sequoia-openpgp/crypto-rust). For more information about building sequoia-openpgp, please refer to sequoia-openpgp's README. This also includes information about the different backends' build requirements.

License

sequoia-cert-store is distributed under the terms of LGPL 2.0 or later.

See LICENSE.txt and CONTRIBUTING.md for details.

Dependencies

~46–64MB
~1M SLoC