diff options
Diffstat (limited to 'moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/CMSVerifySignatureBindingImpl.java')
-rw-r--r-- | moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/CMSVerifySignatureBindingImpl.java | 244 |
1 files changed, 0 insertions, 244 deletions
diff --git a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/CMSVerifySignatureBindingImpl.java b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/CMSVerifySignatureBindingImpl.java deleted file mode 100644 index 1cfa806..0000000 --- a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/webservice/binding/CMSVerifySignatureBindingImpl.java +++ /dev/null @@ -1,244 +0,0 @@ -package at.gv.egovernment.moa.spss.server.webservice.binding; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.math.BigInteger; -import java.util.ArrayList; -import java.util.Date; -import java.util.Iterator; -import java.util.List; -import java.util.StringTokenizer; - -import at.gv.egiz.moasig.FormResultType; -import at.gv.egiz.moasig.ObjectFactory; -import at.gv.egiz.moasig.PDFSignatureResultType; -import at.gv.egiz.moasig.VerifyCMSSignatureResponseType; -import at.gv.egiz.moasig.VerifyPDFSignatureRequest; -import at.gv.egiz.moasig.VerifyPDFSignatureResponseType; -import at.gv.egovernment.moa.spss.MOAApplicationException; -import at.gv.egovernment.moa.spss.api.SPSSFactory; -import at.gv.egovernment.moa.spss.api.cmsverify.CMSDataObject; -import at.gv.egovernment.moa.spss.api.cmsverify.VerifyCMSSignatureRequest; -import at.gv.egovernment.moa.spss.api.cmsverify.VerifyCMSSignatureResponse; -import at.gv.egovernment.moa.spss.api.cmsverify.VerifyCMSSignatureResponseElement; -import at.gv.egovernment.moa.spss.api.common.CheckResult; -import at.gv.egovernment.moa.spss.api.common.SignerInfo; -import at.gv.egovernment.moa.spss.api.xmlverify.AdESFormResults; -import at.gv.egovernment.moa.spss.server.webservice.CMSVerifySignatureBinding; -import at.gv.egovernment.moaspss.util.CollectionUtils; - -public class CMSVerifySignatureBindingImpl implements CMSVerifySignatureBinding { - - private TransformerUtils transformerUtils = new TransformerUtils(); - - /** The factory to create API objects. */ - private SPSSFactory factory = SPSSFactory.getInstance(); - - @Override - public VerifyCMSSignatureRequest buildCMSRequest( - at.gv.egiz.moasig.VerifyCMSSignatureRequest verifyCMSSignatureRequest) throws MOAApplicationException { - - Date dateTime = null; - if (verifyCMSSignatureRequest.getDateTime() != null) { - dateTime = verifyCMSSignatureRequest.getDateTime().toGregorianCalendar().getTime(); - } - - int[] signatories = parseSignatories(verifyCMSSignatureRequest); - - CMSDataObject dataObject = this.transformerUtils.parseDataObject(verifyCMSSignatureRequest.getDataObject()); - - String trustProfileID = null; - - if (verifyCMSSignatureRequest.getTrustProfileID() != null) { - trustProfileID = verifyCMSSignatureRequest.getTrustProfileID(); - } - - InputStream cmsSignature = new ByteArrayInputStream(verifyCMSSignatureRequest.getCMSSignature()); - - return factory.createVerifyCMSSignatureRequest(signatories, dateTime, cmsSignature, dataObject, trustProfileID, false); - } - - /** - * Parse the <code>Signatories</code> attribute contained in the - * <code>VerifyCMSSignatureRequest</code> DOM element. - * - * @param requestElem - * The <code>VerifyCMSSignatureRequest</code> DOM element. - * @return The signatories contained in the given - * <code>VerifyCMSSignatureRequest</code> DOM element. - */ - private int[] parseSignatories(at.gv.egiz.moasig.VerifyCMSSignatureRequest verifyCMSSignatureRequest) { - if(verifyCMSSignatureRequest.getSignatories().isEmpty()) { - return VerifyCMSSignatureRequest.ALL_SIGNATORIES; - } - - Iterator<String> signatoriesIterator = verifyCMSSignatureRequest.getSignatories().iterator(); - List signatoriesList = new ArrayList(); - - int[] signatories; - while (signatoriesIterator.hasNext()) { - String signatorie = signatoriesIterator.next(); - - if ("all".equals(signatorie)) { - return VerifyCMSSignatureRequest.ALL_SIGNATORIES; - } else { - StringTokenizer tokenizer = new StringTokenizer(signatorie); - // put the signatories into a List - while (tokenizer.hasMoreTokens()) { - try { - signatoriesList.add(new Integer(tokenizer.nextToken())); - } catch (NumberFormatException e) { - // this cannot occur if the request has been validated - } - } - } - - } - - // convert the List into an int array - signatories = CollectionUtils.toIntArray(signatoriesList); - - return signatories; - } - - @Override - public VerifyCMSSignatureResponseType buildCMSResponse(VerifyCMSSignatureResponse response) - throws MOAApplicationException { - - VerifyCMSSignatureResponseType verifyCMSSignatureResponseType = new VerifyCMSSignatureResponseType(); - - Iterator iter; - - for (iter = response.getResponseElements().iterator(); iter.hasNext();) { - VerifyCMSSignatureResponseElement responseElement = (VerifyCMSSignatureResponseElement) iter.next(); - addResponseElement(verifyCMSSignatureResponseType, responseElement); - } - - return verifyCMSSignatureResponseType; - } - - /** - * Add an element to the response. - * - * @param responseElement - * The element to add to the response. - * @throws MOAApplicationException - * An error occurred adding the element. - */ - private void addResponseElement(VerifyCMSSignatureResponseType verifyCMSSignatureResponseType, - VerifyCMSSignatureResponseElement responseElement) throws MOAApplicationException { - - ObjectFactory of = new ObjectFactory(); - SignerInfo signerInfo = responseElement.getSignerInfo(); - CheckResult signatureCheck = responseElement.getSignatureCheck(); - CheckResult certCheck = responseElement.getCertificateCheck(); - - verifyCMSSignatureResponseType.getSignerInfoAndSignatureCheckAndCertificateCheck().add( - of.createVerifyCMSSignatureResponseTypeSignerInfo(this.transformerUtils.buildSignerInfo(signerInfo))); - verifyCMSSignatureResponseType.getSignerInfoAndSignatureCheckAndCertificateCheck() - .add(of.createVerifyCMSSignatureResponseTypeSignatureCheck( - this.transformerUtils.buildCheckResult(signatureCheck))); - - verifyCMSSignatureResponseType.getSignerInfoAndSignatureCheckAndCertificateCheck() - .add(of.createVerifyCMSSignatureResponseTypeCertificateCheck( - this.transformerUtils.buildCheckResult(certCheck))); - - if (responseElement.getAdESFormResults() != null) { - Iterator adesIterator = responseElement.getAdESFormResults().iterator(); - while (adesIterator.hasNext()) { - AdESFormResults adesResult = (AdESFormResults) adesIterator.next(); - FormResultType formResultType = new FormResultType(); - formResultType.setCode(BigInteger.valueOf(adesResult.getCode())); - formResultType.setName(adesResult.getName()); - - verifyCMSSignatureResponseType.getSignerInfoAndSignatureCheckAndCertificateCheck().add( - of.createVerifyCMSSignatureResponseTypeFormCheckResult(formResultType)); - } - } - } - - /** - * Add an element to the response. - * - * @param responseElement - * The element to add to the response. - * @throws MOAApplicationException - * An error occurred adding the element. - */ - private void addResponseElement(VerifyPDFSignatureResponseType verifyPDFSignatureResponseType, - VerifyCMSSignatureResponseElement responseElement) throws MOAApplicationException { - - SignerInfo signerInfo = responseElement.getSignerInfo(); - CheckResult signatureCheck = responseElement.getSignatureCheck(); - CheckResult certCheck = responseElement.getCertificateCheck(); - - PDFSignatureResultType resultType = new PDFSignatureResultType(); - - if (responseElement.getAdESFormResults() != null) { - Iterator adesIterator = responseElement.getAdESFormResults().iterator(); - while (adesIterator.hasNext()) { - AdESFormResults adesResult = (AdESFormResults) adesIterator.next(); - FormResultType formResultType = new FormResultType(); - formResultType.setCode(BigInteger.valueOf(adesResult.getCode())); - formResultType.setName(adesResult.getName()); - resultType.getFormCheckResult().add(formResultType); - } - } - - resultType.setSignerInfo(this.transformerUtils.buildSignerInfo(signerInfo)); - resultType.setSignatureCheck(this.transformerUtils.buildCheckResult(signatureCheck)); - resultType.setCertificateCheck(this.transformerUtils.buildCheckResult(certCheck)); - - verifyPDFSignatureResponseType.getSignatureResult().add(resultType); - } - - /** - * Parse the <code>Signatories</code> attribute contained in the - * <code>VerifyCMSSignatureRequest</code> DOM element. - * - * @param requestElem - * The <code>VerifyCMSSignatureRequest</code> DOM element. - * @return The signatories contained in the given - * <code>VerifyCMSSignatureRequest</code> DOM element. - */ - private int[] parseSignatories(VerifyPDFSignatureRequest verifyPDFSignatureRequest) { - return VerifyCMSSignatureRequest.ALL_SIGNATORIES; - } - - @Override - public VerifyCMSSignatureRequest buildPDFRequest(VerifyPDFSignatureRequest verifyPDFSignatureRequest) - throws MOAApplicationException { - Date dateTime = null; - if (verifyPDFSignatureRequest.getDateTime() != null) { - dateTime = verifyPDFSignatureRequest.getDateTime().toGregorianCalendar().getTime(); - } - - int[] signatories = parseSignatories(verifyPDFSignatureRequest); - - String trustProfileID = null; - - if (verifyPDFSignatureRequest.getTrustProfileID() != null) { - trustProfileID = verifyPDFSignatureRequest.getTrustProfileID(); - } - - InputStream cmsSignature = new ByteArrayInputStream(verifyPDFSignatureRequest.getPDFSignature()); - - return factory.createVerifyCMSSignatureRequest(signatories, dateTime, cmsSignature, null, trustProfileID, true); - } - - @Override - public VerifyPDFSignatureResponseType buildPDFResponse(VerifyCMSSignatureResponse response) - throws MOAApplicationException { - VerifyPDFSignatureResponseType verifyPDFSignatureResponseType = new VerifyPDFSignatureResponseType(); - - Iterator iter; - - for (iter = response.getResponseElements().iterator(); iter.hasNext();) { - VerifyCMSSignatureResponseElement responseElement = (VerifyCMSSignatureResponseElement) iter.next(); - addResponseElement(verifyPDFSignatureResponseType, responseElement); - } - - return verifyPDFSignatureResponseType; - } - -} |