List of usage examples for com.lowagie.text.pdf PdfName equals
public boolean equals(Object obj)
From source file:eu.europa.ec.markt.dss.signature.pdf.itext.ITextPdfDict.java
License:Open Source License
@Override public boolean hasANameWithValue(String name, String value) { PdfName asName = wrapped.getAsName(new PdfName(name)); if (asName == null) { LOGGER.info("No value with name " + name); return false; }//from www. j a v a 2 s . co m PdfName asValue = new PdfName(value); boolean r = asName.equals(asValue); LOGGER.info("Comparison of " + asName + "(" + asName.getClass() + ")" + " and " + asValue + " : " + r); return r; }
From source file:eu.europa.ec.markt.dss.validation.pades.PDFDocumentValidator.java
License:Open Source License
@Override protected SignatureLevelBES verifyLevelBES(AdvancedSignature signature, Date referenceTime, ValidationContext ctx) {/* ww w . ja v a 2 s . c o m*/ SignatureLevelBES superchecks = super.verifyLevelBES(signature, referenceTime, ctx); PAdESSignature pades = (PAdESSignature) signature; PdfName subfilter = pades.getSignatureDictionary().getAsName(PdfName.SUBFILTER); if (subfilter == null || (!subfilter.equals(new PdfName("ETSI.CAdES.detached")) && !subfilter.equals(new PdfName("ETSI.RFC3161")))) { LOG.warning( "Invalid or missing SubFilter value in the signature dictionary; should be either ETSI.CAdES.detached or ETSI.RFC3161"); } return superchecks; }
From source file:eu.europa.ec.markt.dss.validation.pades.PDFDocumentValidator.java
License:Open Source License
@Override protected SignatureLevelLTV verifyLevelLTV(AdvancedSignature signature, Date referenceTime, ValidationContext ctx) {//from ww w . j a v a2s . co m try { PAdESSignature pades = (PAdESSignature) signature; LOG.info("Starting LTV validation of signature: " + pades.getPdfPkcs7().getSignName() + " / " + PdfPKCS7.getSubjectFields(pades.getPdfPkcs7().getSigningCertificate())); PdfDictionary catalog = pades.getOuterCatalog(); if (catalog == null) { catalog = pades.getPdfReader().getCatalog(); } PdfDictionary dss = catalog.getAsDict(new PdfName("DSS")); if (dss == null) { LOG.info("No DSS dictionary!"); return new SignatureLevelLTV(new Result(ResultStatus.INVALID, "no.dss.dictionary"), null, null); } LOG.info("DSS dictionary found"); PdfName sigType = pades.getSignatureDictionary().getAsName(PdfName.TYPE); // PdfName subfilter = pades.getSignatureDictionary().getAsName(PdfName.SUBFILTER); TimestampVerificationResult docTimestampCheck = null; boolean dssCertsVerificationResult = everyCertificateValueAreThere(ctx, pades.getExtendedCertificateSource().getCertificates(), pades.getSigningCertificate()); boolean dssRevocationVerificationResult = true; dssRevocationVerificationResult &= everyCRLValueOrRefAreThere(ctx, pades.getCRLs()); dssRevocationVerificationResult &= everyOCSPValueOrRefAreThere(ctx, pades.getOCSPs()); boolean vriVerificationresult = true; if (sigType != null) { if (sigType.equals(new PdfName("Sig"))) { // Standard signature PdfDictionary vri = dss.getAsDict(new PdfName("VRI")); if (vri == null) { LOG.info("No VRI dictionary, this is optional but required by Adobe Acrobat"); return new SignatureLevelLTV(new Result(ResultStatus.INVALID, "no.vri.dictionary"), null, null); } // Verify the VRI MessageDigest _md = MessageDigest.getInstance("SHA1"); String hexHash = Hex .encodeHexString( _md.digest(pades.getSignatureDictionary().get(PdfName.CONTENTS).getBytes())) .toUpperCase(); } else if (sigType.equals(new PdfName("DocTimeStamp"))) { } else { throw new RuntimeException("Unknown signature dictionary type"); } } Result levelReached = null; if (dssCertsVerificationResult && dssRevocationVerificationResult) { levelReached = new Result(ResultStatus.VALID, null); } else { levelReached = new Result(); if (!dssCertsVerificationResult) { levelReached.setStatus(ResultStatus.INVALID, "dss.certs.verification.result.error"); } else if (!dssRevocationVerificationResult) { levelReached.setStatus(ResultStatus.INVALID, "dss.revocation.verification.result.error"); } else if (!vriVerificationresult) { levelReached.setStatus(ResultStatus.INVALID, "vri.verification.result.error"); } } return new SignatureLevelLTV(levelReached, new Result((dssCertsVerificationResult) ? ResultStatus.VALID : ResultStatus.INVALID, null), new Result((dssRevocationVerificationResult) ? ResultStatus.VALID : ResultStatus.INVALID, null)); } catch (NoSuchAlgorithmException e) { throw new RuntimeException(e); } }