Digitally sign PDFs, to standard
Mudrit turns a PDF and any key source into a signed, standards-grade document — PAdES baseline profiles, LTV, RFC-3161 timestamps, RSA & ECDSA, and encrypted output — with no OpenSSL and no native dependencies.
use mudrit::prelude::*;let signer = PfxSigner::from_file("cert.pfx", "pass")?;let cfg = SignConfig::builder() .place("L", [350, 60, 560, 160])? .approval() .timestamp(Timestamp::url(DEFAULT_TSA_URL)) .ltv(true) .build();let signed = sign_pdf(pdf, &signer, &cfg)?;Everything a signing pipeline needs
One trait between your key and the PDF engine — and a complete, standards-grade toolset on top of it.
One trait, any key source
PFX file, Windows store, PKCS#11 token, or your own HSM / cloud KMS. Implement one small Signer trait and the whole pipeline works unchanged.
Standards-grade output
PAdES B-B / B-T / B-LT / B-LTA, document timestamps, LTV (DSS with CRL + OCSP), RFC-3161 timestamps, and Adobe-valid certification.
Certificate pickers
A native Windows store picker and a cross-platform Iced picker for PKCS#11 tokens — brandable, localizable, dark-mode aware.
Lean & modular
Three independently usable crates. Cargo features decide exactly what compiles — the GUI stack is opt-in, and there are no C dependencies.
Encrypted documents
Sign password-protected inputs and emit AES-128 / AES-256 encrypted, signed output — with per-document permissions.
Long-term validity
Embed the certificate chain, CRLs and OCSP into the DSS, then renew with document timestamps for archival-grade signatures.
Swap one line, nothing else
Every backend is a Signer. The SignConfig and sign_pdf call stay identical.
PFX / P12 file
Offline signing, no prompt. RSA and ECDSA (P-256 / P-384 / P-521).
PfxSigner::from_file("cert.pfx", "pass")?Windows store
Native CryptoAPI / CNG. The OS handles the PIN prompt at sign time.
WinStoreSigner::select()?PKCS#11 token
Any module (.dll / .so / .dylib), cross-platform, by serial.
Pkcs11Signer::open(dll, pin, serial)?Standards-grade, verified externally
Signatures validate in Adobe Acrobat and pyHanko across every profile Mudrit produces.
Start signing in minutes
Add the crate, choose your features, and sign your first PDF with a few lines of Rust.
Proprietary SDK, licensed by Trexolab · contact Trexolab for access.