[package] name = "sequoia-openpgp" description = "OpenPGP data types and associated machinery" version = "1.13.0" authors = [ "Igor Matuszewski ", "Justus Winter ", "Kai Michaelis ", "Neal H. Walfield ", "Nora Widdecke ", "Wiktor Kwapisiewicz ", ] 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.2.2", optional = true } once_cell = "1" 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.46 is needed due `no-cast` check: # https://github.com/sfackler/rust-openssl/blob/master/openssl/CHANGELOG.md openssl = { version = ">= 0.10.47", 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.82", optional = true } foreign-types-shared = { version = "0.1.1", optional = true } # Botan. botan = { version = "0.10", 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"] crypto-botan = ["botan"] __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