From 3286713dfe8f1a63178a5f6f9ff68ebd4d3ada4f Mon Sep 17 00:00:00 2001 From: ferbas Date: Mon, 2 Nov 2009 09:20:14 +0000 Subject: dynamic algorithm support, compatibility mode git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@378 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c --- .../wag/egov/egiz/sig/connectors/bku/BKUHelper.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/bku/BKUHelper.java') diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/bku/BKUHelper.java b/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/bku/BKUHelper.java index b5d7cc3..3b262c3 100644 --- a/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/bku/BKUHelper.java +++ b/src/main/java/at/knowcenter/wag/egov/egiz/sig/connectors/bku/BKUHelper.java @@ -22,6 +22,7 @@ import org.apache.commons.logging.LogFactory; import at.gv.egiz.pdfas.algorithmSuite.AlgorithmMapper; +import at.gv.egiz.pdfas.algorithmSuite.AlgorithmSuiteObject; import at.gv.egiz.pdfas.algorithmSuite.AlgorithmSuiteUtil; import at.gv.egiz.pdfas.api.commons.Constants; import at.gv.egiz.pdfas.exceptions.external.ExternalErrorException; @@ -31,6 +32,7 @@ import at.knowcenter.wag.egov.egiz.sig.SignatureData; import at.knowcenter.wag.egov.egiz.sig.SignatureObject; import at.knowcenter.wag.egov.egiz.sig.SignatureResponse; import at.knowcenter.wag.egov.egiz.sig.X509Cert; +import at.knowcenter.wag.egov.egiz.sig.connectors.ConnectorEnvironment; import at.knowcenter.wag.egov.egiz.sig.sigid.IdFormatter; import at.knowcenter.wag.egov.egiz.tools.CodingHelper; @@ -162,7 +164,7 @@ public final class BKUHelper * @see X509Cert */ public static SignSignatureObject parseCreateXMLResponse(String xmlResponse, - IdFormatter id_formatter) throws ConnectorException + IdFormatter id_formatter, ConnectorEnvironment environment) throws ConnectorException { if (log.isDebugEnabled()) { log.debug("xmlResponse = " + xmlResponse); @@ -326,6 +328,16 @@ public final class BKUHelper so.issuer = iss_nam; so.signatureValue = sig_val; so.x509Certificate = cert; + + AlgorithmSuiteObject suite = new AlgorithmSuiteObject(algs, false); + so.sigAlgorithm = AlgorithmMapper.getUri(suite.getSignatureMethod()); + + String defaultCertAlg = environment.getDefaultAlgForCert(cert); + + if (AlgorithmSuiteUtil.isDefaultCertAlg(algs, defaultCertAlg)) { + // do not embed default alg + algs = null; + } String final_ids = id_formatter.formatIds(ids, algs); so.id = final_ids; -- cgit v1.2.3