sequoia-openpgp 1.13.0

OpenPGP data types and associated machinery
Documentation
[package]
name = "sequoia-openpgp"
description = "OpenPGP data types and associated machinery"
version = "1.13.0"
authors = [
    "Igor Matuszewski <igor@sequoia-pgp.org>",
    "Justus Winter <justus@sequoia-pgp.org>",
    "Kai Michaelis <kai@sequoia-pgp.org>",
    "Neal H. Walfield <neal@sequoia-pgp.org>",
    "Nora Widdecke <nora@sequoia-pgp.org>",
    "Wiktor Kwapisiewicz <wiktor@sequoia-pgp.org>",
]
build = "build.rs"
documentation = "https://docs.rs/sequoia-openpgp"
autobenches = false
homepage = "https://sequoia-pgp.org/"
repository = "https://gitlab.com/sequoia-pgp/sequoia"
readme = "README.md"
keywords = ["cryptography", "openpgp", "pgp", "encryption", "signing"]
categories = ["cryptography", "authentication", "email"]
license = "LGPL-2.0-or-later"
edition = "2021"
rust-version = "1.60"

[badges]
gitlab = { repository = "sequoia-pgp/sequoia" }
maintenance = { status = "actively-developed" }

[dependencies]
anyhow = "1.0.18"
buffered-reader = { path = "../buffered-reader", version = "1.0.0", default-features = false }
base64 = ">=0.12, <0.20"
bzip2 = { version = "0.4", optional = true }
dyn-clone = "1"
flate2 = { version = "1.0.1", optional = true }
idna = ">=0.2, <0.4"
lalrpop-util = ">=0.17"
lazy_static = "1.4.0"
libc = "0.2.66"
memsec = { version = ">=0.5", default-features = false }
nettle = { version = "7.0.2", optional = true }
regex = "1"
regex-syntax = "0.6"
sha1collisiondetection = { version = "0.2.3", default-features = false, features = ["std"] }
thiserror = "1.0.2"
xxhash-rust = { version = "0.8", features = ["xxh3"] }
# At least 0.10.45 is needed due to CipherCtx::cipher_final_unchecked
openssl = { version = ">= 0.10.45", optional = true }
# We need to directly depend on the sys crate so that the metadata produced
# in its build script is passed to sequoia-openpgp's build script
# see: https://doc.rust-lang.org/cargo/reference/build-scripts.html#the-links-manifest-key
openssl-sys = { version = ">= 0.9.80", optional = true }
foreign-types-shared = { version = "0.1.1", optional = true }

# RustCrypto crates.
aes = { version = "0.6.0", optional = true }
block-modes = { version = "0.7.0", optional = true }
block-padding = { version = "0.2.1", optional = true }
blowfish = { version = "0.7.0", optional = true }
cast5 = { version = "0.9.0", optional = true }
cipher = { version = "0.2.5", optional = true, features = ["std"] }
des = { version = "0.6.0", optional = true }
digest = { version = "0.9.0", optional = true }
eax = { version = "0.3.0", optional = true }
ecdsa = { version = "0.11", optional = true, features = ["hazmat", "arithmetic"] } # XXX
ed25519-dalek = { version = "1", default-features = false, features = ["rand", "u64_backend"], optional = true }
generic-array = { version = "0.14.4", optional = true }
idea = { version = "0.3.0", optional = true }
md-5 = { version = "0.9.1", optional = true }
num-bigint-dig = { version = "0.6", default-features = false, optional = true }
p256 = { version = "0.8", optional = true, features = ["ecdh", "ecdsa"] }
rand07 = { package = "rand", version = "0.7.3", optional = true }
rand_core = { version = "0.6", optional = true }
ripemd160 = { version = "0.9.1", optional = true }
rsa = { version = "0.3.0", optional = true }
sha-1 = { version = "0.9.2", optional = true }
sha2 = { version = "0.9.2", optional = true }
twofish = { version = "0.5.0", optional = true }
typenum = { version = "1.12.0", optional = true }
x25519-dalek = { version = "1.1.0", optional = true }

[target.'cfg(windows)'.dependencies]
win-crypto-ng = { version = "0.4", features = ["rand", "block-cipher"], optional = true }
winapi = { version = "0.3.8", default-features = false, features = ["bcrypt"], optional = true }

[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies]
chrono = { version = "0.4.10", default-features = false, features = ["std", "wasmbind"] }
getrandom = { version = "0.2", features = ["js"] }
rand07 = { package = "rand", version = "0.7", features = ["wasm-bindgen"] }

[build-dependencies]
lalrpop = { version = ">=0.17", default-features = false }

[dev-dependencies]
quickcheck = { version = "1", default-features = false }
rand = { version = "0.8" }
rpassword = "6.0"
criterion = { version = "0.3.4", features = ["html_reports"] }

[features]
default = ["compression", "crypto-nettle"]
# TODO(#333): Allow for/implement more backends
crypto-nettle = ["nettle"]
crypto-rust = [
    "aes", "block-modes", "block-padding", "blowfish", "cast5", "cipher", "des",
    "digest", "eax", "ed25519-dalek", "generic-array", "idea", "md-5", "num-bigint-dig", "rand07",
    "ripemd160", "rsa", "sha-1", "sha2", "twofish", "typenum", "x25519-dalek", "p256",
    "rand_core", "rand_core/getrandom", "ecdsa"
]
crypto-cng = ["eax", "winapi", "win-crypto-ng", "ed25519-dalek", "num-bigint-dig"]
crypto-openssl = ["openssl", "openssl-sys", "foreign-types-shared"]
__implicit-crypto-backend-for-tests = []

# Experimental and variable-time cryptographic backends opt-ins
allow-experimental-crypto = []
allow-variable-time-crypto = []

# The compression algorithms.
compression = ["compression-deflate", "compression-bzip2"]
compression-deflate = ["flate2", "buffered-reader/compression-deflate"]
compression-bzip2 = ["bzip2", "buffered-reader/compression-bzip2"]

[lib]
bench = false

[[example]]
name = "pad"
required-features = ["compression-deflate"]

[[bench]]
name = "run_benchmarks"
harness = false