Crates.io | sequoia-cert-store |
lib.rs | sequoia-cert-store |
version | 0.6.1 |
source | src |
created_at | 2023-03-02 11:00:23.410443 |
updated_at | 2024-09-10 17:05:33.553703 |
description | A certificate database interface. |
homepage | https://sequoia-pgp.org/ |
repository | https://gitlab.com/sequoia-pgp/sequoia-cert-store |
max_upload_size | |
id | 798816 |
size | 782,067 |
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.
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.
sequoia-cert-store is distributed under the terms of LGPL 2.0 or later.
See LICENSE.txt and CONTRIBUTING.md for details.