[package]
edition = "2024"
name = "mail-auth"
version = "0.14.0"
authors = ["Stalwart Labs LLC <hello@stalw.art>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "DKIM, ARC, SPF and DMARC library for Rust"
homepage = "https://github.com/stalwartlabs/mail-auth"
readme = "README.md"
keywords = [
"dkim",
"dmarc",
"spf",
"arc",
"mail",
]
categories = [
"email",
"authentication",
]
license = "Apache-2.0 OR MIT"
repository = "https://github.com/stalwartlabs/mail-auth"
resolver = "2"
[features]
arc = []
aws-lc-rs = [
"dep:aws-lc-rs",
"dep:aws-lc-sys",
"dns-hickory",
"hickory-resolver/tls-aws-lc-rs",
"hickory-resolver/dnssec-aws-lc-rs",
"hickory-resolver/rustls-platform-verifier",
]
default = [
"aws-lc-rs",
"dns-hickory",
]
dns-doh = [
"dep:reqwest",
"dep:web-time",
"dep:hickory-proto",
]
dns-hickory = ["dep:hickory-resolver"]
generate = [
"rsa",
"rand",
]
rust-crypto = [
"rsa",
"rand",
"ed25519-dalek",
"sha1",
"sha2",
"ml-dsa",
]
test = []
[lib]
name = "mail_auth"
path = "src/lib.rs"
doctest = false
[[example]]
name = "arc_seal"
path = "examples/arc_seal.rs"
required-features = [
"arc",
"aws-lc-rs",
]
[[example]]
name = "arc_verify"
path = "examples/arc_verify.rs"
required-features = [
"arc",
"aws-lc-rs",
]
[[example]]
name = "dkim_sign"
path = "examples/dkim_sign.rs"
[[example]]
name = "dkim_verify"
path = "examples/dkim_verify.rs"
required-features = ["aws-lc-rs"]
[[example]]
name = "dmarc_verify"
path = "examples/dmarc_verify.rs"
required-features = ["aws-lc-rs"]
[[example]]
name = "spf_verify"
path = "examples/spf_verify.rs"
required-features = ["aws-lc-rs"]
[[test]]
name = "dmarc_live"
path = "tests/dmarc_live.rs"
[dependencies.aws-lc-rs]
version = "1.18.2"
optional = true
[dependencies.aws-lc-sys]
version = "0.46"
optional = true
[dependencies.ed25519-dalek]
version = "3"
features = [
"pkcs8",
"alloc",
]
optional = true
[dependencies.encodify]
version = "1.0"
[dependencies.hashify]
version = "0.3"
[dependencies.hickory-proto]
version = "0.26"
optional = true
[dependencies.hickory-resolver]
version = "0.26"
optional = true
[dependencies.idna]
version = "1.1"
[dependencies.mail-parser]
version = "1.0"
features = ["full_encoding"]
[dependencies.memchr]
version = "2.7"
[dependencies.ml-dsa]
version = "0.1.1"
features = [
"alloc",
"rand_core",
]
optional = true
default-features = false
[dependencies.rand]
version = "0.10"
optional = true
[dependencies.rsa]
version = "0.9.8"
features = ["getrandom"]
optional = true
[dependencies.rustls-pki-types]
version = "1.15"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.sha1]
version = "0.11"
optional = true
[dependencies.sha2]
version = "0.11"
optional = true
[dependencies.simdutf8]
version = "0.1.5"
[dependencies.similar]
version = "3"
[dependencies.web-time]
version = "1"
optional = true
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.testcontainers]
version = "0.28"
[dev-dependencies.tokio]
version = "1.54"
features = [
"net",
"io-util",
"time",
"rt-multi-thread",
"macros",
]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.reqwest]
version = "0.13"
features = [
"rustls",
"webpki-roots",
"http2",
"json",
"query",
]
optional = true
default-features = false
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom]
version = "0.2"
features = ["js"]
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom_v04]
version = "0.4"
features = ["wasm_js"]
package = "getrandom"
[target.'cfg(target_arch = "wasm32")'.dependencies.hickory-proto]
version = "0.26"
features = ["wasm-bindgen"]
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.reqwest]
version = "0.13"
features = [
"json",
"query",
]
optional = true
default-features = false
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(fuzzing)"]