using System.Security.Cryptography.X509Certificates; namespace MmdPdf.Services.Signing { /// /// A source of a signing certificate (with its private key). Kept as an interface so the only /// Windows-only piece is the certificate-store provider; .pfx files (and, later, OS keychains) /// keep the rest of the signing module portable for the planned Linux/Mac port. /// internal interface ICertificateProvider { /// Human-readable label for the UI (file name, or the cert's subject). string DisplayName { get; } /// /// Returns the certificate (must have a usable private key). Throws on failure - a wrong /// .pfx password, a missing private key, an unreadable file, etc. /// X509Certificate2 GetCertificate(); } }