error when opening the pdf itext

0

I am creating a digital signature with itext but when I open the pdf it tells me that the file is damaged:

public void firmarPdf(String origen, String destino) {



    try {
                KeyStore keyStore = KeyStore.getInstance("JKS");
                String pass = "456123789"; //PASSWORD DE LA KEYSTORE
                java.io.FileInputStream file = new java.io.FileInputStream(
                        "C:\jks\keystore.jks"); //EL ARCHIVO QUE GENERAMOS TIENE QUE ESTAR EN EL DISCO C
                keyStore.load(file, pass.toCharArray());
                PrivateKey pk = (PrivateKey) keyStore.getKey("mtorre4580",
                        pass.toCharArray());//USUARIO Y PASSWORD DE LA KEYSTORE
                Certificate[] chain = keyStore.getCertificateChain("mtorre4580"); //OBTENGO EL CERTIFICADO
                PdfReader reader = new PdfReader(origen);
                FileOutputStream os = new FileOutputStream(destino);
                PdfStamper stamper = PdfStamper.createSignature(reader, os, '
public void firmarPdf(String origen, String destino) {



    try {
                KeyStore keyStore = KeyStore.getInstance("JKS");
                String pass = "456123789"; //PASSWORD DE LA KEYSTORE
                java.io.FileInputStream file = new java.io.FileInputStream(
                        "C:\jks\keystore.jks"); //EL ARCHIVO QUE GENERAMOS TIENE QUE ESTAR EN EL DISCO C
                keyStore.load(file, pass.toCharArray());
                PrivateKey pk = (PrivateKey) keyStore.getKey("mtorre4580",
                        pass.toCharArray());//USUARIO Y PASSWORD DE LA KEYSTORE
                Certificate[] chain = keyStore.getCertificateChain("mtorre4580"); //OBTENGO EL CERTIFICADO
                PdfReader reader = new PdfReader(origen);
                FileOutputStream os = new FileOutputStream(destino);
                PdfStamper stamper = PdfStamper.createSignature(reader, os, '%pre%');
                PdfSignatureAppearance appearance = stamper
                        .getSignatureAppearance();
                appearance.setReason("Firmar documento con itext mtorre4580");
                appearance.setLocation("Argentina");
                appearance.setVisibleSignature(new Rectangle(72, 732, 144, 780), 1,
                        "signature");

            } catch (Exception e) {
                logger.error("Error al firmar el pdf");
            }
        }
'); PdfSignatureAppearance appearance = stamper .getSignatureAppearance(); appearance.setReason("Firmar documento con itext mtorre4580"); appearance.setLocation("Argentina"); appearance.setVisibleSignature(new Rectangle(72, 732, 144, 780), 1, "signature"); } catch (Exception e) { logger.error("Error al firmar el pdf"); } }
    
asked by Kevin Castaño 12.10.2017 в 18:34
source

1 answer

1

I was missing this

ExternalDigest digest = new BouncyCastleDigest();
            ExternalSignature signature = new PrivateKeySignature(pk, "SHA1", "BC");
            MakeSignature.signDetached(appearance, digest, signature, chain, null, null, null, 0, CryptoStandard.CMS);
    
answered by 12.10.2017 в 23:00