Как запретить MacOS PreviewAPP удалять подпись PKCS7 - PullRequest
0 голосов
/ 23 сентября 2019

Попробуйте, откройте документ с цифровой подписью в приложении предварительного просмотра на Mac (вы можете использовать Adobe или любое другое программное обеспечение для подписи), перетащите подпись и сохраните.Теперь откройте файл в Adobe Reader, подпись была удалена и преобразована в AcroForm.

Я уже пытался установить CertificationLevel, чтобы запретить изменения.

Код:


        String outputPath = getOutputPath(this.files.getDocumentPath());
        Certificate[] chain = {this.files.getCertificate()};
        IExternalSignature pks = new PrivateKeySignature(this.files.getPrivateKey(), "SHA-512", "BC");
        PdfReader reader = new PdfReader(this.files.getDocumentPath());
        StampingProperties properties = new StampingProperties();
        properties.useAppendMode();

        ImageData imgData = ImageDataFactory.create(this.files.getSignaturePath(), true);
        PdfSigner signer = new PdfSigner(reader, new FileOutputStream(outputPath), properties);
        signer.setFieldName(signatureName);

        PdfSignatureAppearance appearance = signer.getSignatureAppearance();
        appearance.setPageNumber(page);
        appearance.setPageRect(this.rectangle);
        appearance.setSignatureGraphic(imgData);
        appearance.setRenderingMode(PdfSignatureAppearance.RenderingMode.GRAPHIC);
        signer.setCertificationLevel(PdfSigner.CERTIFIED_NO_CHANGES_ALLOWED);

        signer.signDetached(new BouncyCastleDigest(), pks, chain, null, null, null, 0, PdfSigner.CryptoStandard.CMS);

Docusign прибил это, кажется, не может найти способ исправить это.

...