Files
mmd-pdf/Services/Signing/PfxFileCertificateProvider.cs
T

21 lines
864 B
C#

using System.IO;
using System.Security.Cryptography.X509Certificates;
namespace KillerPDF.Services.Signing
{
/// <summary>
/// Loads a signing certificate from a .pfx / .p12 file plus its password. Fully cross-platform,
/// so this is the default certificate source on every OS.
/// </summary>
internal sealed class PfxFileCertificateProvider(string path, string password) : ICertificateProvider
{
public string DisplayName => Path.GetFileName(path);
public X509Certificate2 GetCertificate()
// Exportable so a Bouncy Castle signer can later pull the private key to build the CMS.
// (EphemeralKeySet is intentionally not used - it does not exist on .NET Framework.)
=> new(path, password,
X509KeyStorageFlags.Exportable | X509KeyStorageFlags.PersistKeySet);
}
}