package at.gv.egovernment.moa.spss.server.pdfas; public class InternalMoaVerifier { /* * implements IVerifier { * * public static final String MOA_TRUSTPROFILE = * "internal.moa.trustprofile"; * * private String trustProfile; * * private static final Logger logger = * LoggerFactory.getLogger(InternalMoaVerifier.class); * * @Override public List verify(byte[] signature, byte[] * signatureContent, Date verificationTime) throws PdfAsException { * * List verificationResultList = new * ArrayList(); * * VerifyCMSSignatureRequestImpl verifyCMSSignatureRequest = new * VerifyCMSSignatureRequestImpl(); * verifyCMSSignatureRequest.setDateTime(verificationTime); * verifyCMSSignatureRequest.setTrustProfileId(this.trustProfile); * verifyCMSSignatureRequest.setCMSSignature(new * ByteArrayInputStream(signature)); * * CMSContentExplicitImpl cmsContentExplicitImpl = new * CMSContentExplicitImpl(); cmsContentExplicitImpl.setBinaryContent(new * ByteArrayInputStream(signatureContent)); * * CMSDataObjectImpl cmsDataObjectImpl = new CMSDataObjectImpl(); * cmsDataObjectImpl.setContent(cmsContentExplicitImpl); * * MetaInfoImpl metaInfo = new MetaInfoImpl(); * metaInfo.setMimeType("application/pdf"); * metaInfo.setDescription("PDF Document"); * cmsDataObjectImpl.setMetaInfo(metaInfo); * * verifyCMSSignatureRequest.setDataObject(cmsDataObjectImpl); * * verifyCMSSignatureRequest.setSignatories(VerifyCMSSignatureRequest. * ALL_SIGNATORIES); * * try { VerifyCMSSignatureResponse verifyCMSSignatureResponse = * CMSSignatureVerificationInvoker.getInstance() * .verifyCMSSignature(verifyCMSSignatureRequest); * * @SuppressWarnings("rawtypes") Iterator iter; for (iter = * verifyCMSSignatureResponse.getResponseElements().iterator(); * iter.hasNext();) { VerifyCMSSignatureResponseElement responseElement = * (VerifyCMSSignatureResponseElement) iter.next(); ExtendedVerifyResult * verifyResult = new ExtendedVerifyResult(); * * verifyResult.setCertificateCheck(convertCheck(responseElement. * getCertificateCheck())); * verifyResult.setValueCheckCode(convertCheck(responseElement. * getSignatureCheck())); verifyResult.setManifestCheckCode(new * SignatureCheckImpl(99, null)); * verifyResult.setQualifiedCertificate(responseElement.getSignerInfo(). * isQualifiedCertificate()); verifyResult.setVerificationDone(true); * * if (responseElement.getSignerInfo().getSignerCertificate() instanceof * X509Certificate) { verifyResult.setSignerCertificate( (X509Certificate) * responseElement.getSignerInfo().getSignerCertificate()); } else { * verifyResult.setSignerCertificate( new * X509Certificate(responseElement.getSignerInfo().getSignerCertificate(). * getEncoded())); } * * verifyResult.setQcSource(responseElement.getSignerInfo().getQCSource()); * * verifyResult.setPublicAuthority(responseElement.getSignerInfo(). * isPublicAuthority()); * verifyResult.setPublicAuthorityID(responseElement.getSignerInfo(). * getPublicAuhtorityID()); * verifyResult.setSSCD(responseElement.getSignerInfo().isSSCD()); * verifyResult.setSscdSource(responseElement.getSignerInfo().getSSCDSource * ()); verifyResult.setIssureCountryCode(responseElement.getSignerInfo(). * getIssuerCountryCode()); * * verificationResultList.add(verifyResult); } } catch (MOAException e) { * logger.error("Failed to verify CMS Signature with MOA", e); throw new * PdfAsException("Failed to verify CMS Signature with MOA", e); } catch * (CertificateEncodingException e) { * logger.error("Failed to verify CMS Signature with MOA", e); throw new * PdfAsException("Failed to verify CMS Signature with MOA", e); } catch * (CertificateException e) { * logger.error("Failed to verify CMS Signature with MOA", e); throw new * PdfAsException("Failed to verify CMS Signature with MOA", e); } * * return verificationResultList; } * * private SignatureCheck convertCheck(CheckResult checkResult) { return * new SignatureCheckImpl(checkResult.getCode(), null); } * * @Override public void setConfiguration(Configuration config) { * this.trustProfile = config.getValue(MOA_TRUSTPROFILE); } * * @Override public SignatureVerificationLevel getLevel() { return * SignatureVerificationLevel.FULL_VERIFICATION; } */ }