mirror of
https://github.com/mailscope/kumomta.git
synced 2026-10-28 01:06:14 +00:00
```
signing/sign Simple time: [1.2990 ms 1.3002 ms 1.3015 ms]
thrpt: [2.3581 MiB/s 2.3603 MiB/s 2.3626 MiB/s]
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild
signing/sign Relaxed time: [1.2942 ms 1.2955 ms 1.2968 ms]
thrpt: [2.3665 MiB/s 2.3689 MiB/s 2.3712 MiB/s]
Found 4 outliers among 100 measurements (4.00%)
1 (1.00%) low mild
1 (1.00%) high mild
2 (2.00%) high severe
mail-auth signing/sign Simple
time: [487.97 µs 488.22 µs 488.48 µs]
thrpt: [6.2826 MiB/s 6.2860 MiB/s 6.2892 MiB/s]
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high severe
mail-auth signing/sign Relaxed
time: [494.68 µs 495.68 µs 496.68 µs]
thrpt: [6.1789 MiB/s 6.1913 MiB/s 6.2039 MiB/s]
```
cfdkim
DKIM (RFC6376) implementation
Features
Verifying email signatures
Example:
let res: DKIMResult = cfdkim::verify_email(&logger, &from_domain, &parsed_email).await?;
if let Some(err) = &res.error() {
error!(logger, "dkim verify fail: {}", err);
}
println!("dkim={}", res.with_detail());
The verify_email arguments are the following:
Signing an email
Example:
let private_key =
rsa::RsaPrivateKey::read_pkcs1_pem_file(Path::new("./test/keys/2022.private"))?;
let signer = SignerBuilder::new()
.with_signed_headers(["From", "Subject"])?
.with_private_key(private_key)
.with_selector("2020")
.with_signing_domain("example.com")
.build()?;
let signature = signer.sign(&email)?;
println!("{}", signature); // DKIM-Signature: ...
See the SignerBuilder object documentation for more information.
Generate a test DKIM key
Using OpenDKIM:
opendkim-genkey \
--testmode \
--domain=example.com \
--selector=2022 \
--nosubdomains