Underskrift
Production-grade PDF digital signing library for Rust.
Supports PAdES Baseline profiles (B-B through B-LTA), traditional PKCS#7 signatures, visible and invisible signatures, multiple signatures, certification signatures, long-term validation (LTV), and verification.
Quick Start
use underskrift::{PdfSigner, SigningOptions, SoftwareSigner};
# async fn example() -> Result<(), underskrift::PdfSignError> {
let pdf_bytes = std::fs::read("document.pdf")?;
let signer = SoftwareSigner::from_pkcs12_file("identity.p12", "password")?;
let signed_pdf = PdfSigner::new()
.options(SigningOptions::default())
.sign(&pdf_bytes, &signer)
.await?;
std::fs::write("signed.pdf", signed_pdf)?;
# Ok(())
# }