

MakeSignature.SignDeferred(reader, signatureFieldName, os, external) įor those who are interested I am posting the answer. IExternalSignatureContainer external = new MyExternalSignatureContainer(pk) Response.Write(Convert.ToBase64String(sgn.GetEncodedPKCS7(hash, null, null, null, CryptoStandard.CMS))) ĮMBED SIGNATURE TO PDF private byte signPDF(byte content, string userName, byte pk) Sgn.SetExternalDigest(extSignature, null, signature.GetEncryptionAlgorithm()) PdfPKCS7 sgn = new PdfPKCS7(null, c, hashAlgorithm, false) īyte sh = sgn.getAuthenticatedAttributeBytes(hash, null, null, CryptoStandard.CMS) īyte extSignature = signature.Sign(sh) String hashAlgorithm = signature.GetHashAlgorithm() PrivateKeySignature signature = new PrivateKeySignature(pk.Key, "SHA1") X509CertificateEntry chain = store.GetCertificateChain(alias) įoreach (X509CertificateEntry en in chain)

If (store.IsKeyEntry(al) & store.GetKey(al).Key.IsPrivate)ĪsymmetricKeyEntry pk = store.GetKey(alias) Pkcs12Store store = new Pkcs12Store(getCertificate(), "*******".ToCharArray()) Protected void Page_Load(object sender, EventArgs e)īyte hash = StringToByteArray((buffer)) Return new MemoryStream(Convert.FromBase64String(".AgIEAA=")) Base 64 byte - PFX file with private key Select(x => Convert.ToByte(hex.Substring(x, 2), 16)) SIGN HASH byte StringToByteArray(string hex) PhData.Content = Convert.ToBase64String(ms.ToArray()) StringBuilder hex = new StringBuilder(hash.Length * 2) MakeSignature.SignExternalContainer(appearance, external, 8192) īyte hash = SHA256Managed.Create().ComputeHash(appearance.GetRangeStream()) IExternalSignatureContainer external = new ExternalBlankSignatureContainer(PdfName.ADOBE_PPKLITE, PdfName.ADBE_PKCS7_DETACHED) PdfSignatureAppearance appearance = stamper.SignatureAppearance Īppearance.SetVisibleSignature(new Rectangle(500, 150, 400, 200), 1, signatureFieldName) īuf.Append("Date: " + appearance.SignDate) PdfStamper stamper = PdfStamper.CreateSignature(reader, ms, '\0') PdfReader reader = new PdfReader(content) GENERATE HASH private PDFHashData generateHash(byte content, string userName) WS on Server A receives signed hash and Embed in PDF document. Web service (WS) on Server A, Generate hash from PDF and sent to WS on Server B for signing.ģ. Can anybody suggest what is wrong in following code.ġ. But it is showing "Document has been altered or corrupt since it was signed" in Adobe Reader. I am trying to sign a PDF Document using two web services in two servers.
