List of usage examples for com.itextpdf.text.pdf PdfReader getAcroFields
public AcroFields getAcroFields()
AcroFields
. From source file:ec.rubrica.pdf.FirmaPDF.java
License:Open Source License
/** * TODO: Mas de dos firmas?/*from w w w.java 2s . co m*/ * * @param pdf * @throws IOException * @throws SignatureException */ public static boolean verificar(byte[] pdf) throws IOException, SignatureException { PdfReader reader = new PdfReader(pdf); AcroFields af = reader.getAcroFields(); ArrayList<String> names = af.getSignatureNames(); for (int k = 0; k < names.size(); ++k) { String name = (String) names.get(k); System.out.println("Signature name: " + name); System.out.println("Signature covers whole document: " + af.signatureCoversWholeDocument(name)); System.out.println("Document revision: " + af.getRevision(name) + " of " + af.getTotalRevisions()); PdfPKCS7 pk = af.verifySignature(name); Calendar cal = pk.getSignDate(); Certificate[] pkc = pk.getCertificates(); TimeStampToken ts = pk.getTimeStampToken(); if (ts != null) { cal = pk.getTimeStampDate(); } if (!pk.isTsp() && ts != null) { boolean impr; try { impr = pk.verifyTimestampImprint(); System.out.println("Timestamp imprint verifies: " + impr); System.out.println("Timestamp date: " + cal); } catch (NoSuchAlgorithmException e) { throw new SignatureException(e); } } System.out.println("Subject: " + CertificateInfo.getSubjectFields(pk.getSigningCertificate())); System.out.println("Document modified: " + !pk.verify()); KeyStore kall = KeyStoreUtil.loadCacertsKeyStore(); Object fails[] = CertificateVerification.verifyCertificates(pkc, kall, null, cal); if (fails == null) { System.out.println("Certificates verified against the KeyStore"); } else { System.out.println("Certificate failed: " + fails[0]); return false; } BasicOCSPResp ocsp = pk.getOcsp(); if (ocsp != null) { try { X509Certificate cert = new SecurityDataSubCaCert(); boolean verifies = ocsp.isSignatureValid(new JcaContentVerifierProviderBuilder() .setProvider(BouncyCastleProvider.PROVIDER_NAME).build(cert.getPublicKey())); System.out.println("OCSP signature verifies: " + verifies); System.out.println("OCSP revocation refers to this certificate: " + pk.isRevocationValid()); return verifies; } catch (OperatorCreationException e) { throw new SignatureException(e); } catch (OCSPException e) { throw new SignatureException(e); } } else { return true; } } return false; }
From source file:ec.rubrica.pdf.PDFUtils.java
License:Open Source License
public static boolean yaEstaFirmado(byte[] archivoPDF) { try {/*from w ww . ja v a 2s. c o m*/ // Verificar si ya esta firmado? PdfReader reader = new PdfReader(archivoPDF); AcroFields fields = reader.getAcroFields(); ArrayList<String> nombreLista = fields.getSignatureNames(); for (String nombre : nombreLista) { System.out.println("Firmante=" + nombre); } return (nombreLista.size() == 1); } catch (IOException e) { throw new RuntimeException(e); // FIXME } }
From source file:ec.rubrica.pdf.VerificadorFirmaPdf.java
License:Open Source License
public VerificadorFirmaPdf(byte[] pdf) throws IOException { PdfReader pdfReader = new PdfReader(pdf); this.af = pdfReader.getAcroFields(); this.cacerts = KeyStoreUtil.loadCacertsKeyStore(); }
From source file:gov.nih.nci.firebird.service.pdf.PdfServiceBean.java
License:Open Source License
private boolean isXfaForm(PdfReader reader) { AcroFields acroFields = reader.getAcroFields(); XfaForm xfa = acroFields.getXfa();/*from ww w. j ava 2 s . c o m*/ return xfa.isXfaPresent(); }
From source file:hr.tstrelar.pdfsigcheck.helpers.SignatureInfo.java
License:Open Source License
private void init(String fileName) throws IOException { PdfReader reader = new PdfReader(fileName); af = reader.getAcroFields(); log.info("Found " + getTotalRevisions() + " revision(s)"); for (String s : af.getSignatureNames()) { signatureRevisions.put(s, new DocumentRevision(af, kall, s)); log.fine("Signature name: " + s); }// w ww . j av a2 s . com }
From source file:my.charpdf.DandDcharPDFUI.java
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed String inputFile;// w ww.j ava 2 s . c o m inputFile = jTextField1.getText().replace("\n", "").replace("\r", ""); String pcName = ""; String pcRace = ""; String pcAlign = ""; String pcBackG = ""; String pcExp = ""; String pcProfBonus = ""; String pcStrScore = ""; String pcStrMod = ""; String pcDexScore = ""; String pcDexMod = ""; String pcConScore = ""; String pcConMod = ""; String pcIntScore = ""; String pcIntMod = ""; String pcWisScore = ""; String pcWisMod = ""; String pcChaScore = ""; String pcChaMod = ""; String pcClassLevel = ""; String pcPerc = ""; if (!inputFile.equals("")) { try { Builder parser = new Builder(); Document doc = parser.build("file:///" + inputFile); Element root = doc.getRootElement(); Elements character = root.getChildElements(); pcName = character.get(0).getFirstChildElement("name").getValue(); pcRace = character.get(0).getFirstChildElement("race").getValue(); pcExp = character.get(0).getFirstChildElement("exp").getValue(); pcAlign = character.get(0).getFirstChildElement("alignment").getValue(); pcBackG = character.get(0).getFirstChildElement("background").getValue(); pcProfBonus = character.get(0).getFirstChildElement("profbonus").getValue(); pcPerc = character.get(0).getFirstChildElement("perception").getValue(); //Integer numChildren = character.get(0).getChildCount(); //System.out.println(numChildren); Elements pcAttrs = character.get(0).getChildElements("abilities").get(0).getChildElements(); Elements pcClasses = character.get(0).getChildElements("classes").get(0).getChildElements(); for (int i = 0; i < pcAttrs.size(); i++) { if (pcAttrs.get(i).getLocalName().equals("strength")) { pcStrScore = pcAttrs.get(i).getChildElements("score").get(0).getValue(); pcStrMod = pcAttrs.get(i).getChildElements("bonus").get(0).getValue(); } else if (pcAttrs.get(i).getLocalName().equals("dexterity")) { pcDexScore = pcAttrs.get(i).getChildElements("score").get(0).getValue(); pcDexMod = pcAttrs.get(i).getChildElements("bonus").get(0).getValue(); } else if (pcAttrs.get(i).getLocalName().equals("constitution")) { pcConScore = pcAttrs.get(i).getChildElements("score").get(0).getValue(); pcConMod = pcAttrs.get(i).getChildElements("bonus").get(0).getValue(); } else if (pcAttrs.get(i).getLocalName().equals("intelligence")) { pcIntScore = pcAttrs.get(i).getChildElements("score").get(0).getValue(); pcIntMod = pcAttrs.get(i).getChildElements("bonus").get(0).getValue(); } else if (pcAttrs.get(i).getLocalName().equals("wisdom")) { pcWisScore = pcAttrs.get(i).getChildElements("score").get(0).getValue(); pcWisMod = pcAttrs.get(i).getChildElements("bonus").get(0).getValue(); } else if (pcAttrs.get(i).getLocalName().equals("charisma")) { pcChaScore = pcAttrs.get(i).getChildElements("score").get(0).getValue(); pcChaMod = pcAttrs.get(i).getChildElements("bonus").get(0).getValue(); } } for (int i = 0; i < pcClasses.size(); i++) { // Gets the list of classes //System.out.println(pcClasses.get(i).getLocalName()); String tempClass = pcClasses.get(i).getChildElements("name").get(0).getValue(); String tempLevel = pcClasses.get(i).getChildElements("level").get(0).getValue(); pcClassLevel += tempClass + " " + tempLevel + " / "; } pcClassLevel = pcClassLevel.substring(0, pcClassLevel.length() - 2); //for(i = 0; i < numClasses; i++) { // System.out.println(charac); //} String inputTemplate = "resources/DandD5e-template.pdf"; String outputPDF = "resources/" + pcName + ".pdf"; PdfReader reader = new PdfReader(inputTemplate); PdfStamper stamper; stamper = new PdfStamper(reader, new FileOutputStream(outputPDF)); AcroFields form = reader.getAcroFields(); Set<String> fields = form.getFields().keySet(); for (String key : fields) { //System.out.println(key); switch (form.getFieldType(key)) { case AcroFields.FIELD_TYPE_CHECKBOX: //System.out.println(key + ": Checkbox"); break; case AcroFields.FIELD_TYPE_COMBO: //System.out.println(key + ": Combo"); break; case AcroFields.FIELD_TYPE_LIST: //System.out.println(key + ": List"); break; case AcroFields.FIELD_TYPE_NONE: //System.out.println(key + ": None"); break; case AcroFields.FIELD_TYPE_PUSHBUTTON: //System.out.println(key + ": Pushbutton"); break; case AcroFields.FIELD_TYPE_RADIOBUTTON: //System.out.println(key + ": Radio"); break; case AcroFields.FIELD_TYPE_SIGNATURE: //System.out.println(key + ": Signature"); break; case AcroFields.FIELD_TYPE_TEXT: //System.out.println(key + ": Text"); break; default: //System.out.println(key + ": ???"); } } stamper.getAcroFields().setField("Race ", pcRace); stamper.getAcroFields().setField("CharacterName", pcName); stamper.getAcroFields().setField("XP", pcExp); stamper.getAcroFields().setField("Alignment", pcAlign); stamper.getAcroFields().setField("Background", pcBackG); int tempPB = Integer.parseInt(pcProfBonus); if (tempPB > 0) { pcProfBonus = "+" + pcProfBonus; } stamper.getAcroFields().setField("ProfBonus", pcProfBonus); //Attributes stamper.getAcroFields().setField("STR", pcStrScore); stamper.getAcroFields().setField("STRmod", pcStrMod); stamper.getAcroFields().setField("DEX", pcDexScore); stamper.getAcroFields().setField("DEXmod ", pcDexMod); stamper.getAcroFields().setField("CON", pcConScore); stamper.getAcroFields().setField("CONmod", pcConMod); stamper.getAcroFields().setField("INT", pcIntScore); stamper.getAcroFields().setField("INTmod", pcIntMod); stamper.getAcroFields().setField("WIS", pcWisScore); stamper.getAcroFields().setField("WISmod", pcWisMod); stamper.getAcroFields().setField("CHA", pcChaScore); stamper.getAcroFields().setField("CHamod", pcChaMod); stamper.getAcroFields().setField("ClassLevel", pcClassLevel); stamper.getAcroFields().setField("Passive", pcPerc); stamper.close(); reader.close(); } catch (java.io.IOException | DocumentException e) { System.err.println("1st Catch, that didn't go well: " + e.getMessage()); } catch (ParsingException e) { System.err.println("2nd Catch, that didn't go well: " + e.getMessage()); } } }
From source file:org.alfresco.extension.countersign.behavior.SignableDocumentBehavior.java
License:Open Source License
/** * When the "signable" aspect is applied, extract the signature fields and add them * to the multivalue property/*from w w w.ja va2s. com*/ */ public void onAddAspect(NodeRef nodeRef, QName aspectTypeQName) { try { // when the aspect is added, extract the signature fields from the PDF ArrayList<String> signatureFields = new ArrayList<String>(); ContentReader pdfReader = serviceRegistry.getContentService().getReader(nodeRef, ContentModel.PROP_CONTENT); PdfReader reader = new PdfReader(pdfReader.getContentInputStream()); AcroFields form = reader.getAcroFields(); Map<String, Item> fields = form.getFields(); Iterator<String> it = fields.keySet().iterator(); while (it.hasNext()) { String fieldName = it.next(); if (form.getFieldType(fieldName) == AcroFields.FIELD_TYPE_SIGNATURE) { // add this signature field to the list of available fields signatureFields.add(fieldName); } } serviceRegistry.getNodeService().setProperty(nodeRef, CounterSignSignatureModel.PROP_SIGNATUREFIELDS, signatureFields); } catch (IOException ex) { logger.error("Error extracting PDF signature fields from document: " + ex); } }
From source file:org.dihedron.crypto.operations.verify.pdf.PDFVerifier.java
License:Open Source License
@Override public boolean verify(byte[] signed, byte[] data) throws CryptoException { boolean verified = false; try {/*from w w w .ja va 2 s. c o m*/ PdfReader reader = new PdfReader(signed); AcroFields af = reader.getAcroFields(); ArrayList<String> names = af.getSignatureNames(); for (String name : names) { logger.debug("signature name: {}", name); logger.debug("signature covers whole document: {}", af.signatureCoversWholeDocument(name)); logger.debug("document revision: {} of {}", af.getRevision(name), af.getTotalRevisions()); PdfPKCS7 pk = af.verifySignature(name); Calendar cal = pk.getSignDate(); Certificate[] pkc = pk.getCertificates(); logger.debug("subject: {}", PdfPKCS7.getSubjectFields(pk.getSigningCertificate())); logger.debug("revision modified: {}", !pk.verify()); Object fails[] = PdfPKCS7.verifyCertificates(pkc, keyring.getKeyStore(), null, cal); if (fails == null) { logger.debug("certificates verified against the KeyStoreHelper"); verified = true; } else { logger.warn("certificate failed: {}", fails[1]); verified = false; } } } catch (IOException e) { throw new CryptoException("I/O exception while verifying the signature", e); } catch (SignatureException e) { throw new CryptoException("Signature exception while verifying the signature", e); } return verified; }
From source file:org.opencps.pki.PdfVerifier.java
License:Open Source License
/** * (non-Javadoc)//from w w w .jav a 2 s .co m * @see org.opencps.pki.Verifier#getSignatureInfo() */ public List<SignatureInfo> getSignatureInfo(InputStream inputStream) { List<SignatureInfo> list = new ArrayList<SignatureInfo>(); try { PdfReader reader = new PdfReader(inputStream); AcroFields fields = reader.getAcroFields(); ArrayList<String> names = fields.getSignatureNames(); for (String name : names) { PdfPKCS7 pkcs7 = fields.verifySignature(name); list.add(new PdfSignatureInfo(pkcs7)); } } catch (Exception e) { throw new RuntimeException(e.getMessage(), e); } return list; }
From source file:org.opencps.pki.PdfVerifier.java
License:Open Source License
/** * (non-Javadoc)/*from w ww . j av a 2 s . co m*/ * @throws SignatureException * @see org.opencps.pki.Verifier#verifySignature() */ public Boolean verifySignature(InputStream inputStream, KeyStore ks) throws SignatureException { Boolean verified = false; try { PdfReader reader = new PdfReader(inputStream); AcroFields fields = reader.getAcroFields(); ArrayList<String> names = fields.getSignatureNames(); for (String name : names) { PdfPKCS7 pkcs7 = fields.verifySignature(name); if (pkcs7.verify()) { Certificate[] certs = pkcs7.getSignCertificateChain(); Calendar cal = pkcs7.getSignDate(); List<VerificationException> errors = CertificateVerification.verifyCertificates(certs, ks, cal); if (errors.size() == 0) { X509Certificate signCert = (X509Certificate) certs[0]; X509Certificate issuerCert = (certs.length > 1 ? (X509Certificate) certs[1] : null); verified = checkSignatureRevocation(pkcs7, signCert, issuerCert, cal.getTime()) && checkSignatureRevocation(pkcs7, signCert, issuerCert, new Date()); } } } reader.close(); } catch (Exception e) { throw new SignatureException(e.getMessage(), e); } return verified; }