public virtual void SignData(IPdfSigningSession pdfPostSigningSession, string signedHashBase64)
        {
            try
            {
                var signedPdfData          = Convert.FromBase64String(signedHashBase64);
                var authenticatedAttribute = Convert.FromBase64String(pdfPostSigningSession.AuthenticatedAttributes.ValueBase64);
                TokenService.ValidateSignature(pdfPostSigningSession.UserCertificate, pdfPostSigningSession.HashAlgorithm, authenticatedAttribute, signedPdfData);

                var publicKeyManager = GetPublicKeyManager(pdfPostSigningSession);
                publicKeyManager.SetExternalDigest(signedPdfData, null, pdfPostSigningSession.SignatureAlgorithm);

                //var tsaServer = new TSAClientBouncyCastle("https://freetsa.org/tsr");

                var encodedSignature = publicKeyManager
                                       .GetEncodedPKCS7
                                       (
                    pdfPostSigningSession.AuthenticatedAttributes.DigestedData,
                    null,
                    null,
                    null,
                    CryptoStandard.CMS
                                       );

                UpdatePdfDictionaryContents(pdfPostSigningSession.AuthenticatedAttributes.PdfSignatureAppearance, encodedSignature);
            }
            catch (Exception ex)
            {
                UpdatePdfDictionaryContents(pdfPostSigningSession.AuthenticatedAttributes.PdfSignatureAppearance, new byte[] { });
                throw ex;
            }
        }
Esempio n. 2
0
        public virtual void OnCreateCache(IPdfSigningSession pdfPostSigningSession, ISigningDocument document, CacheItemPolicy cacheItemPolicy, out bool removerCache)
        {
            removerCache = true;

            if (!Cache.Add(pdfPostSigningSession.FileId, pdfPostSigningSession, cacheItemPolicy))
            {
                throw new FileBeingSignedException();
            }
        }
Esempio n. 3
0
 public virtual void UpdateDocument(IPdfSigningSession pdfPostSigningSession, ISigningDocument document)
 {
 }
Esempio n. 4
0
 public virtual void OnDocumentSigned(IPdfSigningSession sessionData)
 {
 }