public static SigningCertificates GetSigningCertificates(IDigitalSignatureCertificateSelector certificateSelector) { SigningCertificates signingCertificates = new SigningCertificates(); X509CertificateParser parser = new X509CertificateParser(); X509Store x509Store = new X509Store(StoreLocation.CurrentUser); x509Store.Open(OpenFlags.ReadOnly); X509Certificate2Collection validCertificates = FindDigitalSignatureCertificates(x509Store); signingCertificates.X509Certificate2 = certificateSelector.SelectCertificate(validCertificates.Cast <X509Certificate2>()); signingCertificates.X509Certificate = parser.ReadCertificate(signingCertificates.X509Certificate2.Export(X509ContentType.Cert)); signingCertificates.FinalChain = CreateChain(signingCertificates.X509Certificate, signingCertificates.X509Certificate2, parser); return(signingCertificates); }
private static PdfSignatureAppearance GetPdfSignatureAppearance(SigningCertificates signingCertificates, PdfStamper stamper, PdfReader reader, PdfSignatureParameters parameters) { PdfSignatureAppearance appearance = stamper.SignatureAppearance; appearance.Reason = ""; appearance.LocationCaption = ""; appearance.Location = ""; appearance.Layer4Text = ""; appearance.Layer2Text = GetSignatureText(signingCertificates.X509Certificate, parameters); appearance.Acro6Layers = true; Rectangle cropBox = reader.GetCropBox(parameters.SignaturePageNumber); Rectangle rectangle = GetSignatureLocation(cropBox, parameters); appearance.SetVisibleSignature(rectangle, parameters.SignaturePageNumber, parameters.SignatureName); return(appearance); }
private static void CreateSignature(SigningCertificates signingCertificates, PdfSignatureAppearance signatureAppearance, ICollection <ICrlClient> clrClients, IOcspClient oscpClient) { IExternalSignature externalSignature = new X509Certificate2Signature(signingCertificates.X509Certificate2, "SHA-1"); MakeSignature.SignDetached(signatureAppearance, externalSignature, signingCertificates.FinalChain, clrClients, oscpClient, null, 0, CryptoStandard.CMS); }