Crates.io | sequoia-policy-config |
lib.rs | sequoia-policy-config |
version | 0.7.0 |
source | src |
created_at | 2022-10-24 15:08:43.813681 |
updated_at | 2024-09-12 14:53:49.760974 |
description | Configure Sequoia using a configuration file. |
homepage | https://sequoia-pgp.org/ |
repository | https://gitlab.com/sequoia-pgp/sequoia-policy-config |
max_upload_size | |
id | 695936 |
size | 271,238 |
A library for reading the configuration of Sequoia's
StandardPolicy
from a configuration file.
Sequoia's StandardPolicy
can be configured using Rust. As with
most things, Sequoia's low-level library avoids imposing a policy on
users of the library, like where a configuration file should be or
even what format it should have. When necessary, it is up to the
application to provide an interface, and to configure the policy
appropriately.
This library provides a high-level interface that parses a
configuration file, and returns a configured StandardPolicy
.
See the crate's documentation for a description of the file format.
To add sequoia-policy-config
to your crate add the following your
crate:
[dependencies]
sequoia-openpgp = { version = "1" }
sequoia-policy-config = { version = "0.6" }
This will use sequoia-openpgp
's default cryptographic backend, which
is currently Nettle.
To select a different cryptographic backend, such as OpenSSL, you can then do:
cargo build --release --no-default-features --features sequoia-openpgp/crypto-openssl
To use sequoia-policy-config
in your crate, it is usually enough to
replace the use of StandardPolicy::new
with the following::
use sequoia_policy_config::ConfiguredStandardPolicy;
fn main() -> openpgp::Result<()> {
let mut p = ConfiguredStandardPolicy::new();
p.from_bytes(b"[hash_algorithms]
sha1.collision_resistance = \"never\"")?;
let p = &p.build();
// ...
Ok(())
}
This crate is purely a library, so it is not usually built directly.
If you do build it (e.g., because you are modifying it), you'll need
to select a cryptographic backend. See sequoia-openpgp
's README
for details.
The short version is:
# Use the Nettle backend:
$ cargo build --release --features sequoia-openpgp/crypto-nettle
$ cargo test --release --features sequoia-openpgp/crypto-nettle
# Use the OpenSSL backend:
$ cargo build --release --features sequoia-openpgp/crypto-openssl
$ cargo test --release --features sequoia-openpgp/crypto-openssl