Solutions

Digital signatures. That actually verify.

Enterprise digital signatures with PAdES-LTV and S/MIME support. 0 failures on 20,000 PDFs. HSM integration available.

Code example

rust
use pdfluent::{Sdk, signature::{SignOptions, PadesLtvLevel}};

let sdk = Sdk::init_with_license("license.json")?;
let doc = sdk.open("contract.pdf")?;

let opts = SignOptions::builder()
    .signature_handler(pdfluent::signature::Handler::AdobePPKLite)
    .pades_level(PadesLtvLevel::LTV)
    .contact_info("legal@company.com")
    .location("Amsterdam, NL")
    .build();

let signed = doc.sign("certificate.p12", "password", opts)?;
signed.save("contract_signed.pdf")?;

println!("LTV enabled: {}", signed.is_ltv_enabled());

Run cargo add pdfluent@1.0.0-beta.5 to get started.

What it does

PAdES-LTV compliant

Long-Term Validation signatures that remain valid beyond certificate expiration. Full PAdES-BES, -T, -C, -LTV, and -LT support.

0 failures on 20,000 PDFs

Digitally signed and validated 20,000 production PDFs across multiple PKIs. Zero validation failures on well-formed signatures.

S/MIME support

Sign and verify S/MIME email attachments. CMS/PKCS#7 envelope and enveloped signature support for document workflows.

HSM integration

Sign with keys stored in AWS CloudHSM, Azure Key Vault, or any PKCS#11 device. No key material in memory during signing.

Timestamp authority support

Add RFC 3161 trusted timestamps to signatures. LTV validation uses embedded timestamps when CRL/OCSP is unavailable.

Multi-signature workflows

Apply multiple signatures to a single document. Validate entire signature chains with parallel timestamp and CRL checks.

Deployment options

Server-side (Rust binary)Docker containerAWS LambdaOn-premise

Frequently asked questions