aboutsummaryrefslogtreecommitdiff
path: root/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api
diff options
context:
space:
mode:
authorAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2016-03-14 16:29:03 +0100
committerAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2016-03-14 16:29:03 +0100
commit84293bd12f63b59852026cab02035fc9ebee626a (patch)
tree6a118418f618af68f5d884e2eb7eac2fb660a136 /moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api
parent7510ab5173001711ecb5d6c8834878e7cce63ff9 (diff)
downloadmoa-sig-84293bd12f63b59852026cab02035fc9ebee626a.tar.gz
moa-sig-84293bd12f63b59852026cab02035fc9ebee626a.tar.bz2
moa-sig-84293bd12f63b59852026cab02035fc9ebee626a.zip
A lot of moa sig stuff
Diffstat (limited to 'moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api')
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/Configurator.java2
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/SPSSFactory.java68
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/SignatureCreationService.java2
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/SignatureVerificationService.java2
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/cmsverify/VerifyCMSSignatureRequest.java1
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/common/CanonicalizationTransform.java2
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/common/ExclusiveCanonicalizationTransform.java2
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/SPSSFactoryImpl.java1041
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/VerifyCMSSignatureRequestImpl.java9
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/VerifyXMLSignatureRequestImpl.java204
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateCMSSignatureRequestParser.java10
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateCMSSignatureResponseBuilder.java4
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateXMLSignatureRequestParser.java9
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateXMLSignatureResponseBuilder.java3
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/ProfileParser.java9
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/RequestParserUtils.java299
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/ResponseBuilderUtils.java6
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/TransformParser.java7
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyCMSSignatureRequestParser.java56
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyCMSSignatureResponseBuilder.java18
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyPDFSignatureResponseBuilder.java145
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureRequestParser.java415
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureResponseBuilder.java25
-rw-r--r--moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlverify/VerifyXMLSignatureRequest.java8
24 files changed, 1274 insertions, 1073 deletions
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/Configurator.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/Configurator.java
index 6cbdf7d..59db7b5 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/Configurator.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/Configurator.java
@@ -52,7 +52,7 @@ public abstract class Configurator {
(Configurator) discover.newInstance(
Configurator.class,
DEFAULT_IMPLEMENTATION);*/
- return new ConfiguratorImpl();
+ instance = new ConfiguratorImpl();
} catch (Exception e) {
// this can not happen since we provide a valid default
// implementation
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/SPSSFactory.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/SPSSFactory.java
index d216569..c6a750e 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/SPSSFactory.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/SPSSFactory.java
@@ -109,7 +109,7 @@ public abstract class SPSSFactory {
(SPSSFactory) discover.newInstance(
SPSSFactory.class,
DEFAULT_IMPLEMENTATION);*/
- return new SPSSFactoryImpl();
+ instance = new SPSSFactoryImpl();
} catch (Exception e) {
// this can not happen since we provide a valid default
// implementation
@@ -469,6 +469,37 @@ public abstract class SPSSFactory {
CMSDataObject dataObject,
String trustProfileID,
boolean pdf);
+
+ /**
+ * Create a new <code>VerifyCMSSignatureRequest</code> object.
+ *
+ * @param signatories The indexes of the signatories whose signature is to
+ * be verified.
+ * @param dateTime The date for which the verification is to be performed.
+ * May be <code>null</code>.
+ * @param cmsSignature The CMS signature.
+ * @param dataObject The signed data. May be <code>null</code>.
+ * @param trustProfileID The ID of the trust profile containing the trusted
+ * root certificates.
+ * @return The <code>VerifyCMSSignatureRequest</code> containing the above
+ * data.
+ *
+ * @pre signatories != null && signatories.length > 0
+ * @pre signaturies != VerifyCMSSignatureRequest.ALL_SIGNATORIES implies
+ * for (int i = 0; i < signatories.length; i++)
+ * signatories[i] >= 1
+ * @pre cmsSignature != null
+ * @pre trustProfileID != null && trustProfileID.length() > 0
+ * @post return != null
+ */
+ public abstract VerifyCMSSignatureRequest createVerifyCMSSignatureRequest(
+ int[] signatories,
+ Date dateTime,
+ InputStream cmsSignature,
+ CMSDataObject dataObject,
+ String trustProfileID,
+ boolean pdf,
+ boolean extended);
/**
* Create a new <code>CMSDataObject</code> object from data at a given URI.
@@ -583,6 +614,41 @@ public abstract class SPSSFactory {
SignatureManifestCheckParams signatureManifestParams,
boolean returnHashInputData,
String trustProfileID);
+
+ /**
+ * Create a new <code>VerifyXMLSignatureRequest</code> object.
+ *
+ * @param dateTime The date for which the verification is to be performed.
+ * May be <code>null</code>.
+ * @param verifySignatureInfo Information about the signature environment and
+ * the location of the signature.
+ * @param supplementProfiles Supplemental information for the signature
+ * environment. May be <code>null</code>.
+ * @param signatureManifestParams Additional information for checking the
+ * signature manifest. May be <code>null</code>.
+ * @param returnHashInputData If <code>true</code>, hash input data will
+ * be returned in the response, otherwise not.
+ * @param trustProfileID The ID of the trust profile containing the trusted
+ * root certificates.
+ * @param extendedValidation Should the valdation result in forms
+ * @return The new <code>VerifyXMLSignatureRequest</code> containing the
+ * above data.
+ *
+ * @pre verifySignatureInfo != null
+ * @pre supplementProfiles != null implies
+ * forall Object o in supplementProfiles |
+ * o instanceof at.gv.egovernment.moa.spss.api.xmlverify.SupplementProfile
+ * @pre trustProfileID != null && trustProfileID.length() > 0
+ * @post return != null
+ */
+ public abstract VerifyXMLSignatureRequest createVerifyXMLSignatureRequest(
+ Date dateTime,
+ VerifySignatureInfo verifySignatureInfo,
+ List supplementProfiles,
+ SignatureManifestCheckParams signatureManifestParams,
+ boolean returnHashInputData,
+ String trustProfileID,
+ boolean extendedValidation);
/**
* Create a new <code>VerifySignatureInfo</code> object.
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/SignatureCreationService.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/SignatureCreationService.java
index dfdd13d..05271fb 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/SignatureCreationService.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/SignatureCreationService.java
@@ -59,7 +59,7 @@ public abstract class SignatureCreationService {
(SignatureCreationService) discover.newInstance(
SignatureCreationService.class,
DEFAULT_IMPLEMENTATION);*/
- return new SignatureCreationServiceImpl();
+ instance = new SignatureCreationServiceImpl();
} catch (Exception e) {
// this can not happen since we provide a valid default
// implementation
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/SignatureVerificationService.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/SignatureVerificationService.java
index 85e2a97..2433e20 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/SignatureVerificationService.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/SignatureVerificationService.java
@@ -60,7 +60,7 @@ public abstract class SignatureVerificationService {
(SignatureVerificationService) discover.newInstance(
SignatureVerificationService.class,
DEFAULT_IMPLEMENTATION);*/
- return new SignatureVerificationServiceImpl();
+ instance = new SignatureVerificationServiceImpl();
} catch (Exception e) {
// this can not happen since we provide a valid default
// implementation
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/cmsverify/VerifyCMSSignatureRequest.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/cmsverify/VerifyCMSSignatureRequest.java
index 3adb381..6294fb1 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/cmsverify/VerifyCMSSignatureRequest.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/cmsverify/VerifyCMSSignatureRequest.java
@@ -75,4 +75,5 @@ public interface VerifyCMSSignatureRequest {
public String getTrustProfileId();
public boolean isPDF();
+ public boolean isExtended();
}
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/common/CanonicalizationTransform.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/common/CanonicalizationTransform.java
index 988c5bc..05977c5 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/common/CanonicalizationTransform.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/common/CanonicalizationTransform.java
@@ -24,7 +24,7 @@
package at.gv.egovernment.moa.spss.api.common;
-import at.gv.egovernment.moa.util.Constants;
+import at.gv.egovernment.moaspss.util.Constants;
/**
* A canonicalization type of <code>Transform</code>.
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/common/ExclusiveCanonicalizationTransform.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/common/ExclusiveCanonicalizationTransform.java
index 5c2b633..557ff21 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/common/ExclusiveCanonicalizationTransform.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/common/ExclusiveCanonicalizationTransform.java
@@ -26,7 +26,7 @@ package at.gv.egovernment.moa.spss.api.common;
import java.util.List;
-import at.gv.egovernment.moa.util.Constants;
+import at.gv.egovernment.moaspss.util.Constants;
/**
* An exclusive canonicalization type of <code>Transform</code>.
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/SPSSFactoryImpl.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/SPSSFactoryImpl.java
index 478dcb4..9719c29 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/SPSSFactoryImpl.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/SPSSFactoryImpl.java
@@ -21,7 +21,6 @@
* that you distribute must include a readable copy of the "NOTICE" text file.
*/
-
package at.gv.egovernment.moa.spss.api.impl;
import java.io.InputStream;
@@ -85,576 +84,474 @@ import at.gv.egovernment.moa.spss.api.xmlverify.VerifyXMLSignatureResponse;
*/
public class SPSSFactoryImpl extends SPSSFactory {
- public CreateXMLSignatureRequest createCreateXMLSignatureRequest(
- String keyIdentifier,
- List singleSignatureInfos) {
- CreateXMLSignatureRequestImpl createXMLSignatureRequest =
- new CreateXMLSignatureRequestImpl();
- createXMLSignatureRequest.setKeyIdentifier(keyIdentifier);
- createXMLSignatureRequest.setSingleSignatureInfos(singleSignatureInfos);
- return createXMLSignatureRequest;
- }
-
- public CreateCMSSignatureRequest createCreateCMSSignatureRequest(
- String keyIdentifier,
- List singleSignatureInfos) {
- CreateCMSSignatureRequestImpl createCMSSignatureRequest =
- new CreateCMSSignatureRequestImpl();
- createCMSSignatureRequest.setKeyIdentifier(keyIdentifier);
- createCMSSignatureRequest.setSingleSignatureInfos(singleSignatureInfos);
- return createCMSSignatureRequest;
-
- }
-
- public CreateCMSSignatureResponse createCreateCMSSignatureResponse(List responseElements) {
- CreateCMSSignatureResponseImpl createCMSSignatureResponse = new CreateCMSSignatureResponseImpl();
- createCMSSignatureResponse.setResponseElements(responseElements);
- return createCMSSignatureResponse;
- }
-
-
- public CMSSignatureResponse createCMSSignatureResponse(String base64value) {
- CMSSignatureResponseImpl cmsSignatureResponse = new CMSSignatureResponseImpl();
- cmsSignatureResponse.setCMSSignature(base64value);
-
- return cmsSignatureResponse;
- }
-
-
- public SingleSignatureInfo createSingleSignatureInfo(
- List dataObjectInfos,
- CreateSignatureInfo createSignatureInfo,
- boolean securityLayerConform) {
- SingleSignatureInfoImpl singleSignatureInfo = new SingleSignatureInfoImpl();
- singleSignatureInfo.setDataObjectInfos(dataObjectInfos);
- singleSignatureInfo.setCreateSignatureInfo(createSignatureInfo);
- singleSignatureInfo.setSecurityLayerConform(securityLayerConform);
- return singleSignatureInfo;
- }
-
- public at.gv.egovernment.moa.spss.api.cmssign.SingleSignatureInfo createSingleSignatureInfoCMS(
- at.gv.egovernment.moa.spss.api.cmssign.DataObjectInfo dataObjectInfo,
- boolean securityLayerConform) {
- SingleSignatureInfoCMSImpl singleSignatureInfo = new SingleSignatureInfoCMSImpl();
- singleSignatureInfo.setDataObjectInfo(dataObjectInfo);
- singleSignatureInfo.setSecurityLayerConform(securityLayerConform);
- return singleSignatureInfo;
- }
-
- public DataObjectInfo createDataObjectInfo(
- String structure,
- boolean childOfManifest,
- Content dataObject,
- CreateTransformsInfoProfile createTransformsInfoProfile) {
- DataObjectInfoImpl dataObjectInfo = new DataObjectInfoImpl();
- dataObjectInfo.setStructure(structure);
- dataObjectInfo.setChildOfManifest(childOfManifest);
- dataObjectInfo.setDataObject(dataObject);
- dataObjectInfo.setCreateTransformsInfoProfile(createTransformsInfoProfile);
- return dataObjectInfo;
- }
-
- public at.gv.egovernment.moa.spss.api.cmssign.DataObjectInfo createDataObjectInfo(
- String structure,
- CMSDataObject dataObject) {
- DataObjectInfoCMSImpl dataObjectInfo = new DataObjectInfoCMSImpl();
- dataObjectInfo.setStructure(structure);
- dataObjectInfo.setDataObject(dataObject);
- return dataObjectInfo;
- }
-
- public CreateTransformsInfoProfile createCreateTransformsInfoProfile(String profileID) {
-
- CreateTransformsInfoProfileIDImpl createTransformsInfoProfile =
- new CreateTransformsInfoProfileIDImpl();
- createTransformsInfoProfile.setCreateTransformsInfoProfileID(profileID);
- return createTransformsInfoProfile;
- }
-
- public CreateTransformsInfoProfile createCreateTransformsInfoProfile(
- CreateTransformsInfo transformsInfo,
- List supplements) {
- CreateTransformsInfoProfileExplicitImpl createTransformsInfoProfile =
- new CreateTransformsInfoProfileExplicitImpl();
- createTransformsInfoProfile.setCreateTransformsInfo(transformsInfo);
- createTransformsInfoProfile.setSupplements(supplements);
- return createTransformsInfoProfile;
- }
-
- public CreateTransformsInfo createCreateTransformsInfo(
- List transforms,
- MetaInfo finalDataMetaInfo) {
- CreateTransformsInfoImpl createTransformsInfo =
- new CreateTransformsInfoImpl();
-
- createTransformsInfo.setTransforms(transforms);
- createTransformsInfo.setFinalDataMetaInfo(finalDataMetaInfo);
- return createTransformsInfo;
- }
-
- public CreateSignatureInfo createCreateSignatureInfo(
- Content createSignatureEnvironment,
- CreateSignatureEnvironmentProfile createSignatureEnvironmentProfile) {
- CreateSignatureInfoImpl createSignatureInfo = new CreateSignatureInfoImpl();
- createSignatureInfo.setCreateSignatureEnvironment(
- createSignatureEnvironment);
- createSignatureInfo.setCreateSignatureEnvironmentProfile(
- createSignatureEnvironmentProfile);
- return createSignatureInfo;
- }
-
- public CreateSignatureEnvironmentProfile createCreateSignatureEnvironmentProfile(
- CreateSignatureLocation createSignatureLocation,
- List supplements) {
- CreateSignatureEnvironmentProfileExplicitImpl createSignatureEnvironmentProfile =
- new CreateSignatureEnvironmentProfileExplicitImpl();
- createSignatureEnvironmentProfile.setCreateSignatureLocation(
- createSignatureLocation);
- createSignatureEnvironmentProfile.setSupplements(supplements);
- return createSignatureEnvironmentProfile;
- }
-
- public CreateSignatureLocation createCreateSignatureLocation(
- String signatureLocationXPath,
- int signatureLocationIndex,
- Map namespaceDeclarations) {
- CreateSignatureLocationImpl createSignatureLocation =
- new CreateSignatureLocationImpl();
- createSignatureLocation.setIndex(signatureLocationIndex);
- createSignatureLocation.setNamespaceDeclarations(namespaceDeclarations);
- createSignatureLocation.setXPathExpression(signatureLocationXPath);
- return createSignatureLocation;
- }
-
- public CreateSignatureEnvironmentProfile createCreateSignatureEnvironmentProfile(String profileID) {
- CreateSignatureEnvironmentProfileIDImpl createSignatureEnvironmentProfile =
- new CreateSignatureEnvironmentProfileIDImpl();
- createSignatureEnvironmentProfile.setCreateSignatureEnvironmentProfileID(
- profileID);
- return createSignatureEnvironmentProfile;
- }
-
- public CreateXMLSignatureResponse createCreateXMLSignatureResponse(List responseElements) {
- CreateXMLSignatureResponseImpl createXMLSignatureResponse =
- new CreateXMLSignatureResponseImpl();
- createXMLSignatureResponse.setResponseElements(responseElements);
- return createXMLSignatureResponse;
- }
-
- public SignatureEnvironmentResponse createSignatureEnvironmentResponse(Element signatureEnvironment) {
- SignatureEnvironmentResponseImpl signatureEnvironmentResponse =
- new SignatureEnvironmentResponseImpl();
- signatureEnvironmentResponse.setSignatureEnvironment(signatureEnvironment);
- return signatureEnvironmentResponse;
- }
-
- public ErrorResponse createErrorResponse(int code, String info) {
- ErrorResponseImpl errorResponse = new ErrorResponseImpl();
- errorResponse.setErrorCode(code);
- errorResponse.setInfo(info);
- return errorResponse;
- }
-
- public VerifyCMSSignatureRequest createVerifyCMSSignatureRequest(
- int[] signatories,
- Date dateTime,
- InputStream cmsSignature,
- CMSDataObject dataObject,
- String trustProfileID,
- boolean pdf) {
- VerifyCMSSignatureRequestImpl verifyCMSSignatureRequest =
- new VerifyCMSSignatureRequestImpl();
- verifyCMSSignatureRequest.setDateTime(dateTime);
- verifyCMSSignatureRequest.setCMSSignature(cmsSignature);
- verifyCMSSignatureRequest.setDataObject(dataObject);
- verifyCMSSignatureRequest.setTrustProfileId(trustProfileID);
- verifyCMSSignatureRequest.setSignatories(signatories);
- verifyCMSSignatureRequest.setPDF(pdf);
- return verifyCMSSignatureRequest;
- }
-
- public CMSDataObject createCMSDataObject(
- MetaInfo metaInfo,
- CMSContent content,
- BigDecimal excludeByteRangeFrom,
- BigDecimal excludeByteRangeTo) {
-
- CMSDataObjectImpl cmsDataObject = new CMSDataObjectImpl();
- cmsDataObject.setMetaInfo(metaInfo);
- cmsDataObject.setContent(content);
- cmsDataObject.setExcludeByteRangeFrom(excludeByteRangeFrom);
- cmsDataObject.setExcludeByteRangeTo(excludeByteRangeTo);
-
- return cmsDataObject;
- }
-
- public CMSContent createCMSContent(InputStream binaryContent) {
- CMSContentExplicitImpl cmsContent = new CMSContentExplicitImpl();
-
- cmsContent.setBinaryContent(binaryContent);
- return cmsContent;
- }
-
- public CMSContent createCMSContent(String referenceURI) {
- CMSContentReferenceImpl cmsContent = new CMSContentReferenceImpl();
-
- cmsContent.setReference(referenceURI);
- return cmsContent;
- }
-
-
- public CMSDataObject createCMSDataObject(
- MetaInfo metaInfo,
- String referenceURI) {
- CMSDataObjectImpl cmsDataObject = new CMSDataObjectImpl();
- CMSContentReferenceImpl cmsContent = new CMSContentReferenceImpl();
- cmsDataObject.setMetaInfo(metaInfo);
- cmsContent.setReference(referenceURI);
- return cmsDataObject;
- }
-
- public VerifyCMSSignatureResponse createVerifyCMSSignatureResponse(List responseElements) {
- VerifyCMSSinatureResponseImpl verifyCMSSignatureResponse =
- new VerifyCMSSinatureResponseImpl();
- verifyCMSSignatureResponse.setResponseElements(responseElements);
- return verifyCMSSignatureResponse;
- }
-
- public VerifyCMSSignatureResponseElement createVerifyCMSSignatureResponseElement(
- SignerInfo signerInfo,
- CheckResult signatureCheck,
- CheckResult certificateCheck,
- List adesResult) {
- VerifyCMSSignatureResponseElementImpl verifyCMSSignatureResponseElement =
- new VerifyCMSSignatureResponseElementImpl();
- verifyCMSSignatureResponseElement.setSignerInfo(signerInfo);
- verifyCMSSignatureResponseElement.setSignatureCheck(signatureCheck);
- verifyCMSSignatureResponseElement.setCertificateCheck(certificateCheck);
- verifyCMSSignatureResponseElement.setAdESFormResults(adesResult);
- return verifyCMSSignatureResponseElement;
- }
-
- public VerifyXMLSignatureRequest createVerifyXMLSignatureRequest(
- Date dateTime,
- VerifySignatureInfo verifySignatureInfo,
- List supplementProfiles,
- SignatureManifestCheckParams signatureManifestParams,
- boolean returnHashInputData,
- String trustProfileID) {
- VerifyXMLSignatureRequestImpl verifyXMLSignatureRequest =
- new VerifyXMLSignatureRequestImpl();
- verifyXMLSignatureRequest.setDateTime(dateTime);
- verifyXMLSignatureRequest.setSignatureInfo(verifySignatureInfo);
- verifyXMLSignatureRequest.setSupplementProfiles(supplementProfiles);
- verifyXMLSignatureRequest.setSignatureManifestCheckParams(
- signatureManifestParams);
- verifyXMLSignatureRequest.setReturnHashInputData(returnHashInputData);
- verifyXMLSignatureRequest.setTrustProfileId(trustProfileID);
- return verifyXMLSignatureRequest;
- }
-
- public VerifySignatureInfo createVerifySignatureInfo(
- Content verifySignatureEnvironment,
- VerifySignatureLocation verifySignatureLocation) {
- VerifySignatureInfoImpl verifySignatureInfo = new VerifySignatureInfoImpl();
- verifySignatureInfo.setVerifySignatureEnvironment(
- verifySignatureEnvironment);
- verifySignatureInfo.setVerifySignatureLocation(verifySignatureLocation);
- return verifySignatureInfo;
- }
-
- public VerifySignatureLocation createVerifySignatureLocation(
- String xPathExpression,
- Map namespaceDeclarations) {
- VerifySignatureLocationImpl verifySignatureLocation =
- new VerifySignatureLocationImpl();
- verifySignatureLocation.setXPathExpression(xPathExpression);
- verifySignatureLocation.setNamespaceDeclarations(namespaceDeclarations);
- return verifySignatureLocation;
- }
-
- public SupplementProfile createSupplementProfile(String profileID) {
- SupplementProfileIDImpl supplementProfileID = new SupplementProfileIDImpl();
- supplementProfileID.setSupplementProfileID(profileID);
- return supplementProfileID;
- }
-
- public SupplementProfile createSupplementProfile(XMLDataObjectAssociation supplementProfile) {
- SupplementProfileExplicitImpl supplementProfileExplicit =
- new SupplementProfileExplicitImpl();
- supplementProfileExplicit.setSupplementProfile(supplementProfile);
- return supplementProfileExplicit;
- }
-
- public SignatureManifestCheckParams createSignatureManifestCheckParams(
- List referenceInfos,
- boolean returnReferenceInputData) {
- SignatureManifestCheckParamsImpl signatureManifestCheckParams =
- new SignatureManifestCheckParamsImpl();
- signatureManifestCheckParams.setReferenceInfos(referenceInfos);
- signatureManifestCheckParams.setReturnReferenceInputData(
- returnReferenceInputData);
- return signatureManifestCheckParams;
- }
-
- public ReferenceInfo createReferenceInfo(List verifyTransformsInfoProfiles) {
- ReferenceInfoImpl referenceInfo = new ReferenceInfoImpl();
- referenceInfo.setVerifyTransformsInfoProfiles(verifyTransformsInfoProfiles);
- return referenceInfo;
- }
-
- public VerifyTransformsInfoProfile createVerifyTransformsInfoProfile(
- List transforms,
- List transformParameters) {
- VerifyTransformsInfoProfileExplicitImpl verifyTransformsInfoProfile =
- new VerifyTransformsInfoProfileExplicitImpl();
-
- verifyTransformsInfoProfile.setTransforms(transforms);
- verifyTransformsInfoProfile.setTransformParameters(transformParameters);
-
- return verifyTransformsInfoProfile;
- }
-
- public VerifyTransformsInfoProfile createVerifyTransformsInfoProfile(String profileID) {
- VerifyTransformsInfoProfileIDImpl verifyTransformsInfoProfile =
- new VerifyTransformsInfoProfileIDImpl();
- verifyTransformsInfoProfile.setVerifyTransformsInfoProfileID(profileID);
- return verifyTransformsInfoProfile;
- }
-
-
- public TransformParameter createTransformParameter(String URI, String digestMethod, byte[] digestValue) {
- TransformPatameterHashImpl transformParameter =
- new TransformPatameterHashImpl();
- transformParameter.setURI(URI);
- transformParameter.setDigestMethod(digestMethod);
- transformParameter.setDigestValue(digestValue);
- return transformParameter;
- }
-
- public TransformParameter createTransformParameter(
- String URI,
- InputStream binaryData) {
- TransformParameterBinaryImpl transformParameter =
- new TransformParameterBinaryImpl();
- transformParameter.setURI(URI);
- transformParameter.setBinaryContent(binaryData);
- return transformParameter;
- }
-
- public TransformParameter createTransformParameter(String URI) {
- TransformParameterURIImpl transformParameter =
- new TransformParameterURIImpl();
- transformParameter.setURI(URI);
- return transformParameter;
- }
-
- public VerifyXMLSignatureResponse createVerifyXMLSignatureResponse(
- SignerInfo signerInfo,
- List hashInputDatas,
- List referenceInputDatas,
- ReferencesCheckResult signatureCheck,
- ReferencesCheckResult signatureManifestCheck,
- List xmlDsigManifestChecks,
- CheckResult certificateCheck,
- List adesFormResults) {
- VerifyXMLSignatureResponseImpl verifyXMLSignatureResponse =
- new VerifyXMLSignatureResponseImpl();
- verifyXMLSignatureResponse.setSignerInfo(signerInfo);
- verifyXMLSignatureResponse.setHashInputDatas(hashInputDatas);
- verifyXMLSignatureResponse.setReferenceInputDatas(referenceInputDatas);
- verifyXMLSignatureResponse.setSignatureCheck(signatureCheck);
- verifyXMLSignatureResponse.setSignatureManifestCheck(
- signatureManifestCheck);
- verifyXMLSignatureResponse.setXMLDsigManifestChecks(xmlDsigManifestChecks);
- verifyXMLSignatureResponse.setCertificateCheck(certificateCheck);
- verifyXMLSignatureResponse.setAdESFormResults(adesFormResults);
- return verifyXMLSignatureResponse;
- }
-
- public ReferencesCheckResult createReferencesCheckResult(
- int code,
- ReferencesCheckResultInfo info) {
- ReferencesCheckResultImpl referencesCheckResult =
- new ReferencesCheckResultImpl();
- referencesCheckResult.setCode(code);
- referencesCheckResult.setInfo(info);
- return referencesCheckResult;
- }
-
- public ReferencesCheckResultInfo createReferencesCheckResultInfo(
- NodeList anyOtherInfo,
- int[] failedReferences) {
- ReferencesCheckResultInfoImpl referencesCheckResultInfo =
- new ReferencesCheckResultInfoImpl();
- referencesCheckResultInfo.setAnyOtherInfo(anyOtherInfo);
- referencesCheckResultInfo.setFailedReferences(failedReferences);
- return referencesCheckResultInfo;
- }
-
- public ManifestRefsCheckResult createManifestRefsCheckResult(
- int code,
- ManifestRefsCheckResultInfo info) {
- ManifestRefsCheckResultImpl manifestRefsCheckResult =
- new ManifestRefsCheckResultImpl();
- manifestRefsCheckResult.setCode(code);
- manifestRefsCheckResult.setInfo(info);
- return manifestRefsCheckResult;
- }
-
- public ManifestRefsCheckResultInfo createManifestRefsCheckResultInfo(
- NodeList anyOtherInfo,
- int[] failedReferences,
- int referringSigReference) {
- ManifestRefsCheckResultInfoImpl manifestRefsCheckResultInfo =
- new ManifestRefsCheckResultInfoImpl();
- manifestRefsCheckResultInfo.setAnyOtherInfo(anyOtherInfo);
- manifestRefsCheckResultInfo.setReferringSignatureReference(
- referringSigReference);
- manifestRefsCheckResultInfo.setFailedReferences(failedReferences);
- return manifestRefsCheckResultInfo;
- }
-
- public Content createContent(InputStream binaryData, String referenceURI) {
- ContentBinaryImpl content = new ContentBinaryImpl();
- content.setBinaryContent(binaryData);
- content.setReference(referenceURI);
- return content;
- }
-
- public Content createContent(String locationReferenceURI, String referenceURI) {
- ContentLocRefImpl content = new ContentLocRefImpl();
- content.setLocationReferenceURI(locationReferenceURI);
- content.setReference(referenceURI);
- return content;
- }
-
- public Content createContent(String referenceURI) {
- ContentReferenceImpl content = new ContentReferenceImpl();
- content.setReference(referenceURI);
- return content;
- }
-
- public Content createContent(NodeList xmlData, String referenceURI) {
- ContentXMLImpl content = new ContentXMLImpl();
- content.setXMLContent(xmlData);
- content.setReference(referenceURI);
- return content;
- }
-
- public XMLDataObjectAssociation createXMLDataObjectAssociation(
- MetaInfo metaInfo,
- Content xmlContent) {
- XMLDataObjectAssociationImpl xmlDataObjectAssociation =
- new XMLDataObjectAssociationImpl();
- xmlDataObjectAssociation.setMetaInfo(metaInfo);
- xmlDataObjectAssociation.setContent(xmlContent);
- return xmlDataObjectAssociation;
- }
-
- public MetaInfo createMetaInfo(
- String mimeType,
- String description,
- NodeList otherInfo,
- String type) {
- MetaInfoImpl metaInfo = new MetaInfoImpl();
- metaInfo.setMimeType(mimeType);
- metaInfo.setDescription(description);
- metaInfo.setAnyElements(otherInfo);
- metaInfo.setType(type);
- return metaInfo;
- }
-
- public Transform createCanonicalizationTransform(String algorithmURI) {
- CanonicalizationTransformImpl transform = new CanonicalizationTransformImpl(algorithmURI);
- return transform;
- }
-
- public Transform createExclusiveCanonicalizationTransform(String algorithmURI, List inclusiveNamespacePrefixes) {
- ExclusiveCanonicalizationTransformImpl transform = new ExclusiveCanonicalizationTransformImpl(algorithmURI);
- transform.setInclusiveNamespacePrefixes(inclusiveNamespacePrefixes);
- return transform;
- }
-
- public Transform createBase64Transform() {
- Base64TransformImpl transform = new Base64TransformImpl();
- return transform;
- }
-
- public Transform createEnvelopedSignatureTransform() {
- EnvelopedSignatureTransformImpl transform =
- new EnvelopedSignatureTransformImpl();
- return transform;
- }
-
- public Transform createXSLTTransform(Element styleSheet) {
- XSLTransformImpl transform = new XSLTransformImpl();
- transform.setStylesheet(styleSheet);
- return transform;
- }
-
- public Transform createXPathTransform(
- String xPathExpression,
- Map namespaceDeclarations) {
- XPathTransformImpl transform = new XPathTransformImpl();
- transform.setXPathExpression(xPathExpression);
- transform.setNamespaceDelcarations(namespaceDeclarations);
- return transform;
- }
-
- public Transform createXPathFilter2Transform(List xPathFilters) {
- XPathFilter2TransformImpl transform = new XPathFilter2TransformImpl();
- transform.setFilters(xPathFilters);
- return transform;
- }
-
- public XPathFilter createXPathFilter(
- String filterType,
- String xPathExpression,
- Map namespaceDeclarations) {
- XPathFilterImpl xPathFilter = new XPathFilterImpl();
- xPathFilter.setFilterType(filterType);
- xPathFilter.setXPathExpression(xPathExpression);
- xPathFilter.setNamespaceDelcarations(namespaceDeclarations);
- return xPathFilter;
- }
-
- public CheckResult createCheckResult(int code, NodeList info) {
- CheckResultImpl checkResult = new CheckResultImpl();
- checkResult.setCode(code);
- checkResult.setInfo(info);
- return checkResult;
- }
-
-
- public SignerInfo createSignerInfo(
- X509Certificate signerCertificate,
- boolean qualifiedCertificate,
- boolean qcSourceTSL,
- boolean publicAuthority,
- String publicAuthorityID,
- boolean sscd,
- boolean sscdSourceTSL,
- String issuerCountryCode) {
- SignerInfoImpl signerInfo = new SignerInfoImpl();
- signerInfo.setSignerCertificate(signerCertificate);
- signerInfo.setQualifiedCertificate(qualifiedCertificate);
- signerInfo.setQCSourceTSL(qcSourceTSL);
- signerInfo.setPublicAuthority(publicAuthority);
- signerInfo.setPublicAuhtorityID(publicAuthorityID);
- signerInfo.setSSCD(sscd);
- signerInfo.setSSCDSourceTSL(sscdSourceTSL);
- signerInfo.setIssuerCountryCode(issuerCountryCode);
- return signerInfo;
- }
-
- public X509IssuerSerial createX509IssuerSerial(
- String issuerName,
- BigInteger serialNumber) {
- X509IssuerSerialImpl x509IssuerSerial = new X509IssuerSerialImpl();
- x509IssuerSerial.setX509IssuerName(issuerName);
- x509IssuerSerial.setX509SerialNumber(serialNumber);
- return x509IssuerSerial;
- }
+ public CreateXMLSignatureRequest createCreateXMLSignatureRequest(String keyIdentifier, List singleSignatureInfos) {
+ CreateXMLSignatureRequestImpl createXMLSignatureRequest = new CreateXMLSignatureRequestImpl();
+ createXMLSignatureRequest.setKeyIdentifier(keyIdentifier);
+ createXMLSignatureRequest.setSingleSignatureInfos(singleSignatureInfos);
+ return createXMLSignatureRequest;
+ }
+
+ public CreateCMSSignatureRequest createCreateCMSSignatureRequest(String keyIdentifier, List singleSignatureInfos) {
+ CreateCMSSignatureRequestImpl createCMSSignatureRequest = new CreateCMSSignatureRequestImpl();
+ createCMSSignatureRequest.setKeyIdentifier(keyIdentifier);
+ createCMSSignatureRequest.setSingleSignatureInfos(singleSignatureInfos);
+ return createCMSSignatureRequest;
+
+ }
+
+ public CreateCMSSignatureResponse createCreateCMSSignatureResponse(List responseElements) {
+ CreateCMSSignatureResponseImpl createCMSSignatureResponse = new CreateCMSSignatureResponseImpl();
+ createCMSSignatureResponse.setResponseElements(responseElements);
+ return createCMSSignatureResponse;
+ }
+
+ public CMSSignatureResponse createCMSSignatureResponse(String base64value) {
+ CMSSignatureResponseImpl cmsSignatureResponse = new CMSSignatureResponseImpl();
+ cmsSignatureResponse.setCMSSignature(base64value);
+
+ return cmsSignatureResponse;
+ }
+
+ public SingleSignatureInfo createSingleSignatureInfo(List dataObjectInfos, CreateSignatureInfo createSignatureInfo,
+ boolean securityLayerConform) {
+ SingleSignatureInfoImpl singleSignatureInfo = new SingleSignatureInfoImpl();
+ singleSignatureInfo.setDataObjectInfos(dataObjectInfos);
+ singleSignatureInfo.setCreateSignatureInfo(createSignatureInfo);
+ singleSignatureInfo.setSecurityLayerConform(securityLayerConform);
+ return singleSignatureInfo;
+ }
+
+ public at.gv.egovernment.moa.spss.api.cmssign.SingleSignatureInfo createSingleSignatureInfoCMS(
+ at.gv.egovernment.moa.spss.api.cmssign.DataObjectInfo dataObjectInfo, boolean securityLayerConform) {
+ SingleSignatureInfoCMSImpl singleSignatureInfo = new SingleSignatureInfoCMSImpl();
+ singleSignatureInfo.setDataObjectInfo(dataObjectInfo);
+ singleSignatureInfo.setSecurityLayerConform(securityLayerConform);
+ return singleSignatureInfo;
+ }
+
+ public DataObjectInfo createDataObjectInfo(String structure, boolean childOfManifest, Content dataObject,
+ CreateTransformsInfoProfile createTransformsInfoProfile) {
+ DataObjectInfoImpl dataObjectInfo = new DataObjectInfoImpl();
+ dataObjectInfo.setStructure(structure);
+ dataObjectInfo.setChildOfManifest(childOfManifest);
+ dataObjectInfo.setDataObject(dataObject);
+ dataObjectInfo.setCreateTransformsInfoProfile(createTransformsInfoProfile);
+ return dataObjectInfo;
+ }
+
+ public at.gv.egovernment.moa.spss.api.cmssign.DataObjectInfo createDataObjectInfo(String structure,
+ CMSDataObject dataObject) {
+ DataObjectInfoCMSImpl dataObjectInfo = new DataObjectInfoCMSImpl();
+ dataObjectInfo.setStructure(structure);
+ dataObjectInfo.setDataObject(dataObject);
+ return dataObjectInfo;
+ }
+
+ public CreateTransformsInfoProfile createCreateTransformsInfoProfile(String profileID) {
+
+ CreateTransformsInfoProfileIDImpl createTransformsInfoProfile = new CreateTransformsInfoProfileIDImpl();
+ createTransformsInfoProfile.setCreateTransformsInfoProfileID(profileID);
+ return createTransformsInfoProfile;
+ }
+
+ public CreateTransformsInfoProfile createCreateTransformsInfoProfile(CreateTransformsInfo transformsInfo,
+ List supplements) {
+ CreateTransformsInfoProfileExplicitImpl createTransformsInfoProfile = new CreateTransformsInfoProfileExplicitImpl();
+ createTransformsInfoProfile.setCreateTransformsInfo(transformsInfo);
+ createTransformsInfoProfile.setSupplements(supplements);
+ return createTransformsInfoProfile;
+ }
+
+ public CreateTransformsInfo createCreateTransformsInfo(List transforms, MetaInfo finalDataMetaInfo) {
+ CreateTransformsInfoImpl createTransformsInfo = new CreateTransformsInfoImpl();
+
+ createTransformsInfo.setTransforms(transforms);
+ createTransformsInfo.setFinalDataMetaInfo(finalDataMetaInfo);
+ return createTransformsInfo;
+ }
+
+ public CreateSignatureInfo createCreateSignatureInfo(Content createSignatureEnvironment,
+ CreateSignatureEnvironmentProfile createSignatureEnvironmentProfile) {
+ CreateSignatureInfoImpl createSignatureInfo = new CreateSignatureInfoImpl();
+ createSignatureInfo.setCreateSignatureEnvironment(createSignatureEnvironment);
+ createSignatureInfo.setCreateSignatureEnvironmentProfile(createSignatureEnvironmentProfile);
+ return createSignatureInfo;
+ }
+
+ public CreateSignatureEnvironmentProfile createCreateSignatureEnvironmentProfile(
+ CreateSignatureLocation createSignatureLocation, List supplements) {
+ CreateSignatureEnvironmentProfileExplicitImpl createSignatureEnvironmentProfile = new CreateSignatureEnvironmentProfileExplicitImpl();
+ createSignatureEnvironmentProfile.setCreateSignatureLocation(createSignatureLocation);
+ createSignatureEnvironmentProfile.setSupplements(supplements);
+ return createSignatureEnvironmentProfile;
+ }
+
+ public CreateSignatureLocation createCreateSignatureLocation(String signatureLocationXPath,
+ int signatureLocationIndex, Map namespaceDeclarations) {
+ CreateSignatureLocationImpl createSignatureLocation = new CreateSignatureLocationImpl();
+ createSignatureLocation.setIndex(signatureLocationIndex);
+ createSignatureLocation.setNamespaceDeclarations(namespaceDeclarations);
+ createSignatureLocation.setXPathExpression(signatureLocationXPath);
+ return createSignatureLocation;
+ }
+
+ public CreateSignatureEnvironmentProfile createCreateSignatureEnvironmentProfile(String profileID) {
+ CreateSignatureEnvironmentProfileIDImpl createSignatureEnvironmentProfile = new CreateSignatureEnvironmentProfileIDImpl();
+ createSignatureEnvironmentProfile.setCreateSignatureEnvironmentProfileID(profileID);
+ return createSignatureEnvironmentProfile;
+ }
+
+ public CreateXMLSignatureResponse createCreateXMLSignatureResponse(List responseElements) {
+ CreateXMLSignatureResponseImpl createXMLSignatureResponse = new CreateXMLSignatureResponseImpl();
+ createXMLSignatureResponse.setResponseElements(responseElements);
+ return createXMLSignatureResponse;
+ }
+
+ public SignatureEnvironmentResponse createSignatureEnvironmentResponse(Element signatureEnvironment) {
+ SignatureEnvironmentResponseImpl signatureEnvironmentResponse = new SignatureEnvironmentResponseImpl();
+ signatureEnvironmentResponse.setSignatureEnvironment(signatureEnvironment);
+ return signatureEnvironmentResponse;
+ }
+
+ public ErrorResponse createErrorResponse(int code, String info) {
+ ErrorResponseImpl errorResponse = new ErrorResponseImpl();
+ errorResponse.setErrorCode(code);
+ errorResponse.setInfo(info);
+ return errorResponse;
+ }
+
+ public VerifyCMSSignatureRequest createVerifyCMSSignatureRequest(int[] signatories, Date dateTime,
+ InputStream cmsSignature, CMSDataObject dataObject, String trustProfileID, boolean pdf) {
+ return this.createVerifyCMSSignatureRequest(signatories, dateTime, cmsSignature, dataObject, trustProfileID, pdf, false);
+ }
+
+ public VerifyCMSSignatureRequest createVerifyCMSSignatureRequest(int[] signatories, Date dateTime,
+ InputStream cmsSignature, CMSDataObject dataObject, String trustProfileID, boolean pdf, boolean extended) {
+ VerifyCMSSignatureRequestImpl verifyCMSSignatureRequest = new VerifyCMSSignatureRequestImpl();
+ verifyCMSSignatureRequest.setDateTime(dateTime);
+ verifyCMSSignatureRequest.setCMSSignature(cmsSignature);
+ verifyCMSSignatureRequest.setDataObject(dataObject);
+ verifyCMSSignatureRequest.setTrustProfileId(trustProfileID);
+ verifyCMSSignatureRequest.setSignatories(signatories);
+ verifyCMSSignatureRequest.setPDF(pdf);
+ verifyCMSSignatureRequest.setExtended(extended);
+ return verifyCMSSignatureRequest;
+ }
+
+ public CMSDataObject createCMSDataObject(MetaInfo metaInfo, CMSContent content, BigDecimal excludeByteRangeFrom,
+ BigDecimal excludeByteRangeTo) {
+
+ CMSDataObjectImpl cmsDataObject = new CMSDataObjectImpl();
+ cmsDataObject.setMetaInfo(metaInfo);
+ cmsDataObject.setContent(content);
+ cmsDataObject.setExcludeByteRangeFrom(excludeByteRangeFrom);
+ cmsDataObject.setExcludeByteRangeTo(excludeByteRangeTo);
+
+ return cmsDataObject;
+ }
+
+ public CMSContent createCMSContent(InputStream binaryContent) {
+ CMSContentExplicitImpl cmsContent = new CMSContentExplicitImpl();
+
+ cmsContent.setBinaryContent(binaryContent);
+ return cmsContent;
+ }
+
+ public CMSContent createCMSContent(String referenceURI) {
+ CMSContentReferenceImpl cmsContent = new CMSContentReferenceImpl();
+
+ cmsContent.setReference(referenceURI);
+ return cmsContent;
+ }
+
+ public CMSDataObject createCMSDataObject(MetaInfo metaInfo, String referenceURI) {
+ CMSDataObjectImpl cmsDataObject = new CMSDataObjectImpl();
+ CMSContentReferenceImpl cmsContent = new CMSContentReferenceImpl();
+ cmsDataObject.setMetaInfo(metaInfo);
+ cmsContent.setReference(referenceURI);
+ return cmsDataObject;
+ }
+
+ public VerifyCMSSignatureResponse createVerifyCMSSignatureResponse(List responseElements) {
+ VerifyCMSSinatureResponseImpl verifyCMSSignatureResponse = new VerifyCMSSinatureResponseImpl();
+ verifyCMSSignatureResponse.setResponseElements(responseElements);
+ return verifyCMSSignatureResponse;
+ }
+
+ public VerifyCMSSignatureResponseElement createVerifyCMSSignatureResponseElement(SignerInfo signerInfo,
+ CheckResult signatureCheck, CheckResult certificateCheck, List adesResult) {
+ VerifyCMSSignatureResponseElementImpl verifyCMSSignatureResponseElement = new VerifyCMSSignatureResponseElementImpl();
+ verifyCMSSignatureResponseElement.setSignerInfo(signerInfo);
+ verifyCMSSignatureResponseElement.setSignatureCheck(signatureCheck);
+ verifyCMSSignatureResponseElement.setCertificateCheck(certificateCheck);
+ verifyCMSSignatureResponseElement.setAdESFormResults(adesResult);
+ return verifyCMSSignatureResponseElement;
+ }
+
+ public VerifyXMLSignatureRequest createVerifyXMLSignatureRequest(Date dateTime,
+ VerifySignatureInfo verifySignatureInfo, List supplementProfiles,
+ SignatureManifestCheckParams signatureManifestParams, boolean returnHashInputData, String trustProfileID) {
+ return this.createVerifyXMLSignatureRequest(dateTime, verifySignatureInfo, supplementProfiles,
+ signatureManifestParams, returnHashInputData, trustProfileID, false);
+ }
+
+ public VerifySignatureInfo createVerifySignatureInfo(Content verifySignatureEnvironment,
+ VerifySignatureLocation verifySignatureLocation) {
+ VerifySignatureInfoImpl verifySignatureInfo = new VerifySignatureInfoImpl();
+ verifySignatureInfo.setVerifySignatureEnvironment(verifySignatureEnvironment);
+ verifySignatureInfo.setVerifySignatureLocation(verifySignatureLocation);
+ return verifySignatureInfo;
+ }
+
+ public VerifySignatureLocation createVerifySignatureLocation(String xPathExpression, Map namespaceDeclarations) {
+ VerifySignatureLocationImpl verifySignatureLocation = new VerifySignatureLocationImpl();
+ verifySignatureLocation.setXPathExpression(xPathExpression);
+ verifySignatureLocation.setNamespaceDeclarations(namespaceDeclarations);
+ return verifySignatureLocation;
+ }
+
+ public SupplementProfile createSupplementProfile(String profileID) {
+ SupplementProfileIDImpl supplementProfileID = new SupplementProfileIDImpl();
+ supplementProfileID.setSupplementProfileID(profileID);
+ return supplementProfileID;
+ }
+
+ public SupplementProfile createSupplementProfile(XMLDataObjectAssociation supplementProfile) {
+ SupplementProfileExplicitImpl supplementProfileExplicit = new SupplementProfileExplicitImpl();
+ supplementProfileExplicit.setSupplementProfile(supplementProfile);
+ return supplementProfileExplicit;
+ }
+
+ public SignatureManifestCheckParams createSignatureManifestCheckParams(List referenceInfos,
+ boolean returnReferenceInputData) {
+ SignatureManifestCheckParamsImpl signatureManifestCheckParams = new SignatureManifestCheckParamsImpl();
+ signatureManifestCheckParams.setReferenceInfos(referenceInfos);
+ signatureManifestCheckParams.setReturnReferenceInputData(returnReferenceInputData);
+ return signatureManifestCheckParams;
+ }
+
+ public ReferenceInfo createReferenceInfo(List verifyTransformsInfoProfiles) {
+ ReferenceInfoImpl referenceInfo = new ReferenceInfoImpl();
+ referenceInfo.setVerifyTransformsInfoProfiles(verifyTransformsInfoProfiles);
+ return referenceInfo;
+ }
+
+ public VerifyTransformsInfoProfile createVerifyTransformsInfoProfile(List transforms, List transformParameters) {
+ VerifyTransformsInfoProfileExplicitImpl verifyTransformsInfoProfile = new VerifyTransformsInfoProfileExplicitImpl();
+
+ verifyTransformsInfoProfile.setTransforms(transforms);
+ verifyTransformsInfoProfile.setTransformParameters(transformParameters);
+
+ return verifyTransformsInfoProfile;
+ }
+
+ public VerifyTransformsInfoProfile createVerifyTransformsInfoProfile(String profileID) {
+ VerifyTransformsInfoProfileIDImpl verifyTransformsInfoProfile = new VerifyTransformsInfoProfileIDImpl();
+ verifyTransformsInfoProfile.setVerifyTransformsInfoProfileID(profileID);
+ return verifyTransformsInfoProfile;
+ }
+
+ public TransformParameter createTransformParameter(String URI, String digestMethod, byte[] digestValue) {
+ TransformPatameterHashImpl transformParameter = new TransformPatameterHashImpl();
+ transformParameter.setURI(URI);
+ transformParameter.setDigestMethod(digestMethod);
+ transformParameter.setDigestValue(digestValue);
+ return transformParameter;
+ }
+
+ public TransformParameter createTransformParameter(String URI, InputStream binaryData) {
+ TransformParameterBinaryImpl transformParameter = new TransformParameterBinaryImpl();
+ transformParameter.setURI(URI);
+ transformParameter.setBinaryContent(binaryData);
+ return transformParameter;
+ }
+
+ public TransformParameter createTransformParameter(String URI) {
+ TransformParameterURIImpl transformParameter = new TransformParameterURIImpl();
+ transformParameter.setURI(URI);
+ return transformParameter;
+ }
+
+ public VerifyXMLSignatureResponse createVerifyXMLSignatureResponse(SignerInfo signerInfo, List hashInputDatas,
+ List referenceInputDatas, ReferencesCheckResult signatureCheck,
+ ReferencesCheckResult signatureManifestCheck, List xmlDsigManifestChecks, CheckResult certificateCheck,
+ List adesFormResults) {
+ VerifyXMLSignatureResponseImpl verifyXMLSignatureResponse = new VerifyXMLSignatureResponseImpl();
+ verifyXMLSignatureResponse.setSignerInfo(signerInfo);
+ verifyXMLSignatureResponse.setHashInputDatas(hashInputDatas);
+ verifyXMLSignatureResponse.setReferenceInputDatas(referenceInputDatas);
+ verifyXMLSignatureResponse.setSignatureCheck(signatureCheck);
+ verifyXMLSignatureResponse.setSignatureManifestCheck(signatureManifestCheck);
+ verifyXMLSignatureResponse.setXMLDsigManifestChecks(xmlDsigManifestChecks);
+ verifyXMLSignatureResponse.setCertificateCheck(certificateCheck);
+ verifyXMLSignatureResponse.setAdESFormResults(adesFormResults);
+ return verifyXMLSignatureResponse;
+ }
+
+ public ReferencesCheckResult createReferencesCheckResult(int code, ReferencesCheckResultInfo info) {
+ ReferencesCheckResultImpl referencesCheckResult = new ReferencesCheckResultImpl();
+ referencesCheckResult.setCode(code);
+ referencesCheckResult.setInfo(info);
+ return referencesCheckResult;
+ }
+
+ public ReferencesCheckResultInfo createReferencesCheckResultInfo(NodeList anyOtherInfo, int[] failedReferences) {
+ ReferencesCheckResultInfoImpl referencesCheckResultInfo = new ReferencesCheckResultInfoImpl();
+ referencesCheckResultInfo.setAnyOtherInfo(anyOtherInfo);
+ referencesCheckResultInfo.setFailedReferences(failedReferences);
+ return referencesCheckResultInfo;
+ }
+
+ public ManifestRefsCheckResult createManifestRefsCheckResult(int code, ManifestRefsCheckResultInfo info) {
+ ManifestRefsCheckResultImpl manifestRefsCheckResult = new ManifestRefsCheckResultImpl();
+ manifestRefsCheckResult.setCode(code);
+ manifestRefsCheckResult.setInfo(info);
+ return manifestRefsCheckResult;
+ }
+
+ public ManifestRefsCheckResultInfo createManifestRefsCheckResultInfo(NodeList anyOtherInfo, int[] failedReferences,
+ int referringSigReference) {
+ ManifestRefsCheckResultInfoImpl manifestRefsCheckResultInfo = new ManifestRefsCheckResultInfoImpl();
+ manifestRefsCheckResultInfo.setAnyOtherInfo(anyOtherInfo);
+ manifestRefsCheckResultInfo.setReferringSignatureReference(referringSigReference);
+ manifestRefsCheckResultInfo.setFailedReferences(failedReferences);
+ return manifestRefsCheckResultInfo;
+ }
+
+ public Content createContent(InputStream binaryData, String referenceURI) {
+ ContentBinaryImpl content = new ContentBinaryImpl();
+ content.setBinaryContent(binaryData);
+ content.setReference(referenceURI);
+ return content;
+ }
+
+ public Content createContent(String locationReferenceURI, String referenceURI) {
+ ContentLocRefImpl content = new ContentLocRefImpl();
+ content.setLocationReferenceURI(locationReferenceURI);
+ content.setReference(referenceURI);
+ return content;
+ }
+
+ public Content createContent(String referenceURI) {
+ ContentReferenceImpl content = new ContentReferenceImpl();
+ content.setReference(referenceURI);
+ return content;
+ }
+
+ public Content createContent(NodeList xmlData, String referenceURI) {
+ ContentXMLImpl content = new ContentXMLImpl();
+ content.setXMLContent(xmlData);
+ content.setReference(referenceURI);
+ return content;
+ }
+
+ public XMLDataObjectAssociation createXMLDataObjectAssociation(MetaInfo metaInfo, Content xmlContent) {
+ XMLDataObjectAssociationImpl xmlDataObjectAssociation = new XMLDataObjectAssociationImpl();
+ xmlDataObjectAssociation.setMetaInfo(metaInfo);
+ xmlDataObjectAssociation.setContent(xmlContent);
+ return xmlDataObjectAssociation;
+ }
+
+ public MetaInfo createMetaInfo(String mimeType, String description, NodeList otherInfo, String type) {
+ MetaInfoImpl metaInfo = new MetaInfoImpl();
+ metaInfo.setMimeType(mimeType);
+ metaInfo.setDescription(description);
+ metaInfo.setAnyElements(otherInfo);
+ metaInfo.setType(type);
+ return metaInfo;
+ }
+
+ public Transform createCanonicalizationTransform(String algorithmURI) {
+ CanonicalizationTransformImpl transform = new CanonicalizationTransformImpl(algorithmURI);
+ return transform;
+ }
+
+ public Transform createExclusiveCanonicalizationTransform(String algorithmURI, List inclusiveNamespacePrefixes) {
+ ExclusiveCanonicalizationTransformImpl transform = new ExclusiveCanonicalizationTransformImpl(algorithmURI);
+ transform.setInclusiveNamespacePrefixes(inclusiveNamespacePrefixes);
+ return transform;
+ }
+
+ public Transform createBase64Transform() {
+ Base64TransformImpl transform = new Base64TransformImpl();
+ return transform;
+ }
+
+ public Transform createEnvelopedSignatureTransform() {
+ EnvelopedSignatureTransformImpl transform = new EnvelopedSignatureTransformImpl();
+ return transform;
+ }
+
+ public Transform createXSLTTransform(Element styleSheet) {
+ XSLTransformImpl transform = new XSLTransformImpl();
+ transform.setStylesheet(styleSheet);
+ return transform;
+ }
+
+ public Transform createXPathTransform(String xPathExpression, Map namespaceDeclarations) {
+ XPathTransformImpl transform = new XPathTransformImpl();
+ transform.setXPathExpression(xPathExpression);
+ transform.setNamespaceDelcarations(namespaceDeclarations);
+ return transform;
+ }
+
+ public Transform createXPathFilter2Transform(List xPathFilters) {
+ XPathFilter2TransformImpl transform = new XPathFilter2TransformImpl();
+ transform.setFilters(xPathFilters);
+ return transform;
+ }
+
+ public XPathFilter createXPathFilter(String filterType, String xPathExpression, Map namespaceDeclarations) {
+ XPathFilterImpl xPathFilter = new XPathFilterImpl();
+ xPathFilter.setFilterType(filterType);
+ xPathFilter.setXPathExpression(xPathExpression);
+ xPathFilter.setNamespaceDelcarations(namespaceDeclarations);
+ return xPathFilter;
+ }
+
+ public CheckResult createCheckResult(int code, NodeList info) {
+ CheckResultImpl checkResult = new CheckResultImpl();
+ checkResult.setCode(code);
+ checkResult.setInfo(info);
+ return checkResult;
+ }
+
+ public SignerInfo createSignerInfo(X509Certificate signerCertificate, boolean qualifiedCertificate,
+ boolean qcSourceTSL, boolean publicAuthority, String publicAuthorityID, boolean sscd, boolean sscdSourceTSL,
+ String issuerCountryCode) {
+ SignerInfoImpl signerInfo = new SignerInfoImpl();
+ signerInfo.setSignerCertificate(signerCertificate);
+ signerInfo.setQualifiedCertificate(qualifiedCertificate);
+ signerInfo.setQCSourceTSL(qcSourceTSL);
+ signerInfo.setPublicAuthority(publicAuthority);
+ signerInfo.setPublicAuhtorityID(publicAuthorityID);
+ signerInfo.setSSCD(sscd);
+ signerInfo.setSSCDSourceTSL(sscdSourceTSL);
+ signerInfo.setIssuerCountryCode(issuerCountryCode);
+ return signerInfo;
+ }
+
+ public X509IssuerSerial createX509IssuerSerial(String issuerName, BigInteger serialNumber) {
+ X509IssuerSerialImpl x509IssuerSerial = new X509IssuerSerialImpl();
+ x509IssuerSerial.setX509IssuerName(issuerName);
+ x509IssuerSerial.setX509SerialNumber(serialNumber);
+ return x509IssuerSerial;
+ }
+
+ @Override
+ public VerifyXMLSignatureRequest createVerifyXMLSignatureRequest(Date dateTime,
+ VerifySignatureInfo verifySignatureInfo, List supplementProfiles,
+ SignatureManifestCheckParams signatureManifestParams, boolean returnHashInputData, String trustProfileID,
+ boolean extendedValidation) {
+ VerifyXMLSignatureRequestImpl verifyXMLSignatureRequest = new VerifyXMLSignatureRequestImpl();
+ verifyXMLSignatureRequest.setDateTime(dateTime);
+ verifyXMLSignatureRequest.setSignatureInfo(verifySignatureInfo);
+ verifyXMLSignatureRequest.setSupplementProfiles(supplementProfiles);
+ verifyXMLSignatureRequest.setSignatureManifestCheckParams(signatureManifestParams);
+ verifyXMLSignatureRequest.setReturnHashInputData(returnHashInputData);
+ verifyXMLSignatureRequest.setTrustProfileId(trustProfileID);
+ verifyXMLSignatureRequest.setExtendedValidation(extendedValidation);
+ return verifyXMLSignatureRequest;
+ }
}
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/VerifyCMSSignatureRequestImpl.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/VerifyCMSSignatureRequestImpl.java
index 78d817b..e16717d 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/VerifyCMSSignatureRequestImpl.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/VerifyCMSSignatureRequestImpl.java
@@ -51,6 +51,7 @@ public class VerifyCMSSignatureRequestImpl
private Date dateTime;
private boolean pdf = false;
+ private boolean extended = false;
/**
* Sets the indexes of the signatories whose signature should be verified.
@@ -124,4 +125,12 @@ public class VerifyCMSSignatureRequestImpl
return this.pdf;
}
+public synchronized boolean isExtended() {
+ return extended;
+}
+
+public synchronized void setExtended(boolean extended) {
+ this.extended = extended;
+}
+
}
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/VerifyXMLSignatureRequestImpl.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/VerifyXMLSignatureRequestImpl.java
index 1b9be35..91d1917 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/VerifyXMLSignatureRequestImpl.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/VerifyXMLSignatureRequestImpl.java
@@ -21,7 +21,6 @@
* that you distribute must include a readable copy of the "NOTICE" text file.
*/
-
package at.gv.egovernment.moa.spss.api.impl;
import java.util.ArrayList;
@@ -39,99 +38,114 @@ import at.gv.egovernment.moa.spss.api.xmlverify.VerifyXMLSignatureRequest;
* @author Fatemeh Philippi
* @version $Id$
*/
-public class VerifyXMLSignatureRequestImpl
- implements VerifyXMLSignatureRequest {
- /** Date and time for signature verification. */
- private Date dateTime;
- /** The signature to be verified. */
- private VerifySignatureInfo verifySignatureInfo;
- /** Supplemental information about the singature. */
- private List supplementProfiles;
- /** Additional parameters for checking the signature manifest. */
- private SignatureManifestCheckParams signatureManifestCheckParams;
- /** Whether to return the hash input data. */
- private boolean returnHashInputData;
- /** The profile ID of the trust profile containing the trusted certificates.
- */
- private String trustProfileId;
-
- /**
- * Sets the date and time for signature verification.
- *
- * @param dateTime The date and time for signature verification.
- */
- public void setDateTime(Date dateTime) {
- this.dateTime = dateTime;
- }
-
- public Date getDateTime() {
- return dateTime;
- }
-
- /**
- * Sets the signature to be verified.
- *
- * @param signatureInfo The signature to be verified.
- */
- public void setSignatureInfo(VerifySignatureInfo signatureInfo) {
- this.verifySignatureInfo = signatureInfo;
- }
-
- public VerifySignatureInfo getSignatureInfo() {
- return verifySignatureInfo;
- }
-
- /**
- * Sets supplemental information about the singature.
- * @param supplementProfiles
- */
- public void setSupplementProfiles(List supplementProfiles) {
- this.supplementProfiles =
- supplementProfiles != null
- ? Collections.unmodifiableList(new ArrayList(supplementProfiles))
- : null;
- }
-
- public List getSupplementProfiles() {
- return supplementProfiles;
- }
-
- /**
- * Sets supplemental information about the singature.
- * @param params Supplemental information about the singature.
- */
- public void setSignatureManifestCheckParams(SignatureManifestCheckParams params) {
- this.signatureManifestCheckParams = params;
- }
-
- public SignatureManifestCheckParams getSignatureManifestCheckParams() {
- return signatureManifestCheckParams;
- }
-
- /**
- * Sets whether to return hash input data.
- *
- * @param returnSignedData Whether to return hash input data.
- */
- public void setReturnHashInputData(boolean returnSignedData) {
- this.returnHashInputData = returnSignedData;
- }
-
- public boolean getReturnHashInputData() {
- return returnHashInputData;
- }
-
- /**
- * Sets the profile ID of trusted certificates.
- *
- * @param trustProfileId The profile ID of trusted certificates.
- */
- public void setTrustProfileId(String trustProfileId) {
- this.trustProfileId = trustProfileId;
- }
-
- public String getTrustProfileId() {
- return trustProfileId;
- }
+public class VerifyXMLSignatureRequestImpl implements VerifyXMLSignatureRequest {
+ /** Date and time for signature verification. */
+ private Date dateTime;
+ /** The signature to be verified. */
+ private VerifySignatureInfo verifySignatureInfo;
+ /** Supplemental information about the singature. */
+ private List supplementProfiles;
+ /** Additional parameters for checking the signature manifest. */
+ private SignatureManifestCheckParams signatureManifestCheckParams;
+ /** Whether to return the hash input data. */
+ private boolean returnHashInputData;
+ private boolean extendedValidation;
+ /**
+ * The profile ID of the trust profile containing the trusted certificates.
+ */
+ private String trustProfileId;
+
+ /**
+ * Sets the date and time for signature verification.
+ *
+ * @param dateTime
+ * The date and time for signature verification.
+ */
+ public void setDateTime(Date dateTime) {
+ this.dateTime = dateTime;
+ }
+
+ public Date getDateTime() {
+ return dateTime;
+ }
+
+ /**
+ * Sets the signature to be verified.
+ *
+ * @param signatureInfo
+ * The signature to be verified.
+ */
+ public void setSignatureInfo(VerifySignatureInfo signatureInfo) {
+ this.verifySignatureInfo = signatureInfo;
+ }
+
+ public VerifySignatureInfo getSignatureInfo() {
+ return verifySignatureInfo;
+ }
+
+ /**
+ * Sets supplemental information about the singature.
+ *
+ * @param supplementProfiles
+ */
+ public void setSupplementProfiles(List supplementProfiles) {
+ this.supplementProfiles = supplementProfiles != null
+ ? Collections.unmodifiableList(new ArrayList(supplementProfiles)) : null;
+ }
+
+ public List getSupplementProfiles() {
+ return supplementProfiles;
+ }
+
+ /**
+ * Sets supplemental information about the singature.
+ *
+ * @param params
+ * Supplemental information about the singature.
+ */
+ public void setSignatureManifestCheckParams(SignatureManifestCheckParams params) {
+ this.signatureManifestCheckParams = params;
+ }
+
+ public SignatureManifestCheckParams getSignatureManifestCheckParams() {
+ return signatureManifestCheckParams;
+ }
+
+ /**
+ * Sets whether to return hash input data.
+ *
+ * @param returnSignedData
+ * Whether to return hash input data.
+ */
+ public void setReturnHashInputData(boolean returnSignedData) {
+ this.returnHashInputData = returnSignedData;
+ }
+
+ public boolean getReturnHashInputData() {
+ return returnHashInputData;
+ }
+
+ /**
+ * Sets the profile ID of trusted certificates.
+ *
+ * @param trustProfileId
+ * The profile ID of trusted certificates.
+ */
+ public void setTrustProfileId(String trustProfileId) {
+ this.trustProfileId = trustProfileId;
+ }
+
+ public String getTrustProfileId() {
+ return trustProfileId;
+ }
+
+ public synchronized void setExtendedValidation(boolean extendedValidation) {
+ this.extendedValidation = extendedValidation;
+ }
+
+ @Override
+ public boolean getExtendedValidaiton() {
+ return extendedValidation;
+ }
}
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateCMSSignatureRequestParser.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateCMSSignatureRequestParser.java
index a8cae9c..3550c27 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateCMSSignatureRequestParser.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateCMSSignatureRequestParser.java
@@ -40,11 +40,11 @@ import at.gv.egovernment.moa.spss.api.cmssign.SingleSignatureInfo;
import at.gv.egovernment.moa.spss.api.cmsverify.CMSContent;
import at.gv.egovernment.moa.spss.api.cmsverify.CMSDataObject;
import at.gv.egovernment.moa.spss.api.common.MetaInfo;
-import at.gv.egovernment.moa.util.Base64Utils;
-import at.gv.egovernment.moa.util.BoolUtils;
-import at.gv.egovernment.moa.util.Constants;
-import at.gv.egovernment.moa.util.DOMUtils;
-import at.gv.egovernment.moa.util.XPathUtils;
+import at.gv.egovernment.moaspss.util.Base64Utils;
+import at.gv.egovernment.moaspss.util.BoolUtils;
+import at.gv.egovernment.moaspss.util.Constants;
+import at.gv.egovernment.moaspss.util.DOMUtils;
+import at.gv.egovernment.moaspss.util.XPathUtils;
/**
* A parser to parse <code>CreateCMSSignatureRequest</code> DOM trees into
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateCMSSignatureResponseBuilder.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateCMSSignatureResponseBuilder.java
index 907f90d..d808f2b 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateCMSSignatureResponseBuilder.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateCMSSignatureResponseBuilder.java
@@ -38,8 +38,8 @@ import at.gv.egovernment.moa.spss.api.cmssign.CreateCMSSignatureResponse;
import at.gv.egovernment.moa.spss.api.cmssign.CreateCMSSignatureResponseElement;
import at.gv.egovernment.moa.spss.api.xmlsign.ErrorResponse;
import at.gv.egovernment.moa.spss.api.xmlsign.SignatureEnvironmentResponse;
-import at.gv.egovernment.moa.util.Constants;
-import at.gv.egovernment.moa.util.DOMUtils;
+import at.gv.egovernment.moaspss.util.Constants;
+import at.gv.egovernment.moaspss.util.DOMUtils;
/**
* Convert a <code>CreateCMSSignatureResponse</code> API object into its
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateXMLSignatureRequestParser.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateXMLSignatureRequestParser.java
index 9cea2fc..d677f88 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateXMLSignatureRequestParser.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateXMLSignatureRequestParser.java
@@ -30,11 +30,6 @@ import java.util.List;
import org.w3c.dom.Element;
import org.w3c.dom.traversal.NodeIterator;
-import at.gv.egovernment.moa.util.BoolUtils;
-import at.gv.egovernment.moa.util.Constants;
-import at.gv.egovernment.moa.util.DOMUtils;
-import at.gv.egovernment.moa.util.XPathUtils;
-
import at.gv.egovernment.moa.spss.MOAApplicationException;
import at.gv.egovernment.moa.spss.api.SPSSFactory;
import at.gv.egovernment.moa.spss.api.common.Content;
@@ -44,6 +39,10 @@ import at.gv.egovernment.moa.spss.api.xmlsign.CreateTransformsInfoProfile;
import at.gv.egovernment.moa.spss.api.xmlsign.CreateXMLSignatureRequest;
import at.gv.egovernment.moa.spss.api.xmlsign.DataObjectInfo;
import at.gv.egovernment.moa.spss.api.xmlsign.SingleSignatureInfo;
+import at.gv.egovernment.moaspss.util.BoolUtils;
+import at.gv.egovernment.moaspss.util.Constants;
+import at.gv.egovernment.moaspss.util.DOMUtils;
+import at.gv.egovernment.moaspss.util.XPathUtils;
/**
* A parser to parse <code>CreateXMLSignatureRequest</code> DOM trees into
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateXMLSignatureResponseBuilder.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateXMLSignatureResponseBuilder.java
index 0af1a67..3c93fce 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateXMLSignatureResponseBuilder.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/CreateXMLSignatureResponseBuilder.java
@@ -30,13 +30,12 @@ import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import at.gv.egovernment.moa.util.Constants;
-
import at.gv.egovernment.moa.spss.MOASystemException;
import at.gv.egovernment.moa.spss.api.xmlsign.CreateXMLSignatureResponse;
import at.gv.egovernment.moa.spss.api.xmlsign.CreateXMLSignatureResponseElement;
import at.gv.egovernment.moa.spss.api.xmlsign.ErrorResponse;
import at.gv.egovernment.moa.spss.api.xmlsign.SignatureEnvironmentResponse;
+import at.gv.egovernment.moaspss.util.Constants;
/**
* Convert a <code>CreateXMLSignatureResponse</code> API object into its
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/ProfileParser.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/ProfileParser.java
index 0705c0b..6b34922 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/ProfileParser.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/ProfileParser.java
@@ -33,11 +33,6 @@ import java.util.Map;
import org.w3c.dom.Element;
import org.w3c.dom.traversal.NodeIterator;
-import at.gv.egovernment.moa.util.Base64Utils;
-import at.gv.egovernment.moa.util.Constants;
-import at.gv.egovernment.moa.util.DOMUtils;
-import at.gv.egovernment.moa.util.XPathUtils;
-
import at.gv.egovernment.moa.spss.MOAApplicationException;
import at.gv.egovernment.moa.spss.api.SPSSFactory;
import at.gv.egovernment.moa.spss.api.common.MetaInfo;
@@ -49,6 +44,10 @@ import at.gv.egovernment.moa.spss.api.xmlsign.CreateTransformsInfoProfile;
import at.gv.egovernment.moa.spss.api.xmlverify.SupplementProfile;
import at.gv.egovernment.moa.spss.api.xmlverify.TransformParameter;
import at.gv.egovernment.moa.spss.api.xmlverify.VerifyTransformsInfoProfile;
+import at.gv.egovernment.moaspss.util.Base64Utils;
+import at.gv.egovernment.moaspss.util.Constants;
+import at.gv.egovernment.moaspss.util.DOMUtils;
+import at.gv.egovernment.moaspss.util.XPathUtils;
/**
* Parse the various profile elements contained in the MOA web service requests
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/RequestParserUtils.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/RequestParserUtils.java
index 743a17c..1d53a0c 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/RequestParserUtils.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/RequestParserUtils.java
@@ -21,7 +21,6 @@
* that you distribute must include a readable copy of the "NOTICE" text file.
*/
-
package at.gv.egovernment.moa.spss.api.xmlbind;
import java.text.ParseException;
@@ -30,17 +29,16 @@ import java.util.Date;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
-import at.gv.egovernment.moa.util.Base64Utils;
-import at.gv.egovernment.moa.util.Constants;
-import at.gv.egovernment.moa.util.DOMUtils;
-import at.gv.egovernment.moa.util.DateTimeUtils;
-import at.gv.egovernment.moa.util.XPathUtils;
-
import at.gv.egovernment.moa.spss.MOAApplicationException;
import at.gv.egovernment.moa.spss.api.SPSSFactory;
import at.gv.egovernment.moa.spss.api.common.Content;
import at.gv.egovernment.moa.spss.api.common.MetaInfo;
import at.gv.egovernment.moa.spss.api.common.XMLDataObjectAssociation;
+import at.gv.egovernment.moaspss.util.Base64Utils;
+import at.gv.egovernment.moaspss.util.Constants;
+import at.gv.egovernment.moaspss.util.DOMUtils;
+import at.gv.egovernment.moaspss.util.DateTimeUtils;
+import at.gv.egovernment.moaspss.util.XPathUtils;
/**
* Utility methods for parsing XML requests definied in the MOA XML schema.
@@ -49,133 +47,164 @@ import at.gv.egovernment.moa.spss.api.common.XMLDataObjectAssociation;
* @version $Id$
*/
public class RequestParserUtils {
- //
- // XPath expressions for parsing parts of a request
- //
- private static final String MOA = Constants.MOA_PREFIX + ":";
- private static final String REFERENCE_ATTR_NAME = "Reference";
- private static final String MIME_TYPE_XPATH = MOA + "MimeType";
- private static final String DESCRIPTION_XPATH = MOA + "Description";
- private static final String TYPE_XPATH = MOA + "Type";
- private static final String XML_ASSOC_CONTENT_XPATH = MOA + "Content";
- private static final String CONTENT_XPATH =
- MOA + "Base64Content | " + MOA + "XMLContent |" + MOA + "LocRefContent";
- private static final String ANY_OTHER_XPATH =
- "*[namespace-uri() != \"" + Constants.MOA_NS_URI + "\"]";
-
- /**
- * Parse a <code>XMLDataObjectAssociationType</code> kind of DOM element.
- *
- * @param assocElem The <code>XMLDataObjectAssociationType</code> kind of
- * DOM elmeent to parse.
- * @return The <code>XMLDataObjectAssociation</code> API object containing
- * the data from the <code>XMLDataObjectAssociationType</code> DOM element.
- */
- public static XMLDataObjectAssociation parseXMLDataObjectAssociation(Element assocElem) {
- SPSSFactory factory = SPSSFactory.getInstance();
- MetaInfo metaInfo = parseMetaInfo(assocElem);
- Element contentElem =
- (Element) XPathUtils.selectSingleNode(assocElem, XML_ASSOC_CONTENT_XPATH);
- Content content = parseContent(contentElem);
-
- return factory.createXMLDataObjectAssociation(metaInfo, content);
- }
-
- /**
- * Parse a <code>MetaInfoType</code> kind of DOM element.
- *
- * @param metaInfoElem The <code>MetaInfoType</code> kind of DOM element.
- * @return The <code>MetaInfo</code> API object containing the data from
- * the <code>metaInfoElem</code>.
- */
- public static MetaInfo parseMetaInfo(Element metaInfoElem) {
- SPSSFactory factory = SPSSFactory.getInstance();
- String mimeType =
- XPathUtils.getElementValue(metaInfoElem, MIME_TYPE_XPATH, null);
- String description =
- XPathUtils.getElementValue(metaInfoElem, DESCRIPTION_XPATH, null);
- NodeList anyOther =
- XPathUtils.selectNodeList(metaInfoElem, ANY_OTHER_XPATH);
- String type =
- XPathUtils.getElementValue(metaInfoElem, TYPE_XPATH, null);
-
- return factory.createMetaInfo(mimeType, description, anyOther, type);
- }
-
- /**
- * Parse a <code>ContentOptionalRefType</code> or
- * <code>ContentRequiredRefType</code> kind of DOM element.
- * @param contentParentElem The DOM element being the parent of the
- * content element.
- * @return The <code>Content</code> API object containing the data from
- * the given DOM element.
- */
- public static Content parseContent(Element contentParentElem) {
- SPSSFactory factory = SPSSFactory.getInstance();
- String referenceURI =
- contentParentElem.hasAttribute(REFERENCE_ATTR_NAME)
- ? contentParentElem.getAttribute(REFERENCE_ATTR_NAME)
- : null;
- Element contentElem =
- (Element) XPathUtils.selectSingleNode(contentParentElem, CONTENT_XPATH);
-
- if (contentElem == null) {
- return factory.createContent(referenceURI);
- }
-
- if ("Base64Content".equals(contentElem.getLocalName())) {
- String base64String = DOMUtils.getText(contentElem);
- return factory.createContent(
- Base64Utils.decodeToStream(base64String, true),
- referenceURI);
- } else if ("LocRefContent".equals(contentElem.getLocalName())) {
- String locationReferenceURI = DOMUtils.getText(contentElem);
- return factory.createContent(
- locationReferenceURI,
- referenceURI);
- } else { // "XMLContent".equals(contentElem.getLocalName())
- return factory.createContent(
- contentElem.getChildNodes(),
- referenceURI);
- }
- }
-
- /**
- * Get the signing time from a Verfiy(CMS|XML)SignatureRequest.
- *
- * @param requestElem A <code>Verify(CMS|XML)SignatureRequest</code> DOM
- * element.
- * @param dateTimeXPath The XPath to lookup the <code>DateTime</code> element
- * within the request.
- * @return Date The date and time corresponding to the <code>DateTime</code>
- * element in the request. If no <code>DateTime</code> element exists in the
- * request, <code>null</code> is returned.
- * @throws MOAApplicationException An error occurred during a parsing the
- * <code>DateTime</code> element or creating the return value.
- */
- public static Date parseDateTime(Element requestElem, String dateTimeXPath)
- throws MOAApplicationException {
-
- Element dateTimeElem;
- String dateTimeText;
-
- // select the DateTime element
- dateTimeElem =
- (Element) XPathUtils.selectSingleNode(requestElem, dateTimeXPath);
-
- // parse a date from the element value
- if (dateTimeElem != null) {
- dateTimeText = DOMUtils.getText(dateTimeElem);
- try {
- return DateTimeUtils.parseDateTime(dateTimeText);
- } catch (ParseException e) {
- throw new MOAApplicationException(
- "1104",
- new Object[] { dateTimeText });
- }
- } else {
- return null;
- }
- }
+ //
+ // XPath expressions for parsing parts of a request
+ //
+ private static final String MOA = Constants.MOA_PREFIX + ":";
+ private static final String REFERENCE_ATTR_NAME = "Reference";
+ private static final String MIME_TYPE_XPATH = MOA + "MimeType";
+ private static final String DESCRIPTION_XPATH = MOA + "Description";
+ private static final String TYPE_XPATH = MOA + "Type";
+ private static final String XML_ASSOC_CONTENT_XPATH = MOA + "Content";
+ private static final String CONTENT_XPATH = MOA + "Base64Content | " + MOA + "XMLContent |" + MOA + "LocRefContent";
+ private static final String ANY_OTHER_XPATH = "*[namespace-uri() != \"" + Constants.MOA_NS_URI + "\"]";
+
+ /**
+ * Parse a <code>XMLDataObjectAssociationType</code> kind of DOM element.
+ *
+ * @param assocElem
+ * The <code>XMLDataObjectAssociationType</code> kind of DOM
+ * elmeent to parse.
+ * @return The <code>XMLDataObjectAssociation</code> API object containing
+ * the data from the <code>XMLDataObjectAssociationType</code> DOM
+ * element.
+ */
+ public static XMLDataObjectAssociation parseXMLDataObjectAssociation(Element assocElem) {
+ SPSSFactory factory = SPSSFactory.getInstance();
+ MetaInfo metaInfo = parseMetaInfo(assocElem);
+ Element contentElem = (Element) XPathUtils.selectSingleNode(assocElem, XML_ASSOC_CONTENT_XPATH);
+ Content content = parseContent(contentElem);
+
+ return factory.createXMLDataObjectAssociation(metaInfo, content);
+ }
+
+ /**
+ * Parse a <code>MetaInfoType</code> kind of DOM element.
+ *
+ * @param metaInfoElem
+ * The <code>MetaInfoType</code> kind of DOM element.
+ * @return The <code>MetaInfo</code> API object containing the data from the
+ * <code>metaInfoElem</code>.
+ */
+ public static MetaInfo parseMetaInfo(Element metaInfoElem) {
+ SPSSFactory factory = SPSSFactory.getInstance();
+ String mimeType = XPathUtils.getElementValue(metaInfoElem, MIME_TYPE_XPATH, null);
+ String description = XPathUtils.getElementValue(metaInfoElem, DESCRIPTION_XPATH, null);
+ NodeList anyOther = XPathUtils.selectNodeList(metaInfoElem, ANY_OTHER_XPATH);
+ String type = XPathUtils.getElementValue(metaInfoElem, TYPE_XPATH, null);
+
+ return factory.createMetaInfo(mimeType, description, anyOther, type);
+ }
+
+ /**
+ * Parse a <code>ContentOptionalRefType</code> or
+ * <code>ContentRequiredRefType</code> kind of DOM element.
+ *
+ * @param contentParentElem
+ * The DOM element being the parent of the content element.
+ * @return The <code>Content</code> API object containing the data from the
+ * given DOM element.
+ */
+ public static Content parseContent(Element contentParentElem) {
+ SPSSFactory factory = SPSSFactory.getInstance();
+ String referenceURI = contentParentElem.hasAttribute(REFERENCE_ATTR_NAME)
+ ? contentParentElem.getAttribute(REFERENCE_ATTR_NAME) : null;
+ Element contentElem = (Element) XPathUtils.selectSingleNode(contentParentElem, CONTENT_XPATH);
+
+ if (contentElem == null) {
+ return factory.createContent(referenceURI);
+ }
+
+ if ("Base64Content".equals(contentElem.getLocalName())) {
+ String base64String = DOMUtils.getText(contentElem);
+ return factory.createContent(Base64Utils.decodeToStream(base64String, true), referenceURI);
+ } else if ("LocRefContent".equals(contentElem.getLocalName())) {
+ String locationReferenceURI = DOMUtils.getText(contentElem);
+ return factory.createContent(locationReferenceURI, referenceURI);
+ } else { // "XMLContent".equals(contentElem.getLocalName())
+ return factory.createContent(contentElem.getChildNodes(), referenceURI);
+ }
+ }
+
+ /**
+ * Get the signing time from a Verfiy(CMS|XML)SignatureRequest.
+ *
+ * @param requestElem
+ * A <code>Verify(CMS|XML)SignatureRequest</code> DOM element.
+ * @param dateTimeXPath
+ * The XPath to lookup the <code>DateTime</code> element within
+ * the request.
+ * @return Date The date and time corresponding to the <code>DateTime</code>
+ * element in the request. If no <code>DateTime</code> element
+ * exists in the request, <code>null</code> is returned.
+ * @throws MOAApplicationException
+ * An error occurred during a parsing the <code>DateTime</code>
+ * element or creating the return value.
+ */
+ public static Date parseDateTime(Element requestElem, String dateTimeXPath) throws MOAApplicationException {
+
+ Element dateTimeElem;
+ String dateTimeText;
+
+ // select the DateTime element
+ dateTimeElem = (Element) XPathUtils.selectSingleNode(requestElem, dateTimeXPath);
+
+ // parse a date from the element value
+ if (dateTimeElem != null) {
+ dateTimeText = DOMUtils.getText(dateTimeElem);
+ try {
+ return DateTimeUtils.parseDateTime(dateTimeText);
+ } catch (ParseException e) {
+ throw new MOAApplicationException("1104", new Object[] { dateTimeText });
+ }
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Get the signing time from a Verfiy(CMS|XML)SignatureRequest.
+ *
+ * @param requestElem
+ * A <code>Verify(CMS|XML)SignatureRequest</code> DOM element.
+ * @param dateTimeXPath
+ * The XPath to lookup the <code>DateTime</code> element within
+ * the request.
+ * @return Date The date and time corresponding to the <code>DateTime</code>
+ * element in the request. If no <code>DateTime</code> element
+ * exists in the request, <code>null</code> is returned.
+ * @throws MOAApplicationException
+ * An error occurred during a parsing the <code>DateTime</code>
+ * element or creating the return value.
+ */
+ public static boolean parseExtendedValidation(Element requestElem, String extendedValidationXPath,
+ boolean defaultValue) throws MOAApplicationException {
+
+ Element dateTimeElem;
+ String dateTimeText;
+
+ // select the DateTime element
+ dateTimeElem = (Element) XPathUtils.selectSingleNode(requestElem, extendedValidationXPath);
+
+ // parse a date from the element value
+ if (dateTimeElem != null) {
+ dateTimeText = DOMUtils.getText(dateTimeElem);
+ String xsdBoolean = dateTimeText.trim();
+ if ("".equals(xsdBoolean))
+ return defaultValue;
+ switch (xsdBoolean) {
+ case "true":
+ case "1":
+ return true;
+ case "false":
+ case "0":
+ return false;
+ default:
+ return false;
+ }
+ } else {
+ return defaultValue;
+ }
+ }
}
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/ResponseBuilderUtils.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/ResponseBuilderUtils.java
index eaafe00..a6ed83d 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/ResponseBuilderUtils.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/ResponseBuilderUtils.java
@@ -39,12 +39,10 @@ import org.w3c.dom.NodeList;
import iaik.utils.RFC2253NameParser;
import iaik.utils.RFC2253NameParserException;
-
-import at.gv.egovernment.moa.util.Base64Utils;
-import at.gv.egovernment.moa.util.Constants;
-
import at.gv.egovernment.moa.spss.MOAApplicationException;
import at.gv.egovernment.moa.spss.MOASystemException;
+import at.gv.egovernment.moaspss.util.Base64Utils;
+import at.gv.egovernment.moaspss.util.Constants;
/**
* Utility methods used by the verious <code>ResponseBuilder</code> classes.
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/TransformParser.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/TransformParser.java
index 687b0ae..6dc4803 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/TransformParser.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/TransformParser.java
@@ -32,10 +32,6 @@ import java.util.StringTokenizer;
import org.w3c.dom.Element;
import org.w3c.dom.traversal.NodeIterator;
-import at.gv.egovernment.moa.util.Constants;
-import at.gv.egovernment.moa.util.DOMUtils;
-import at.gv.egovernment.moa.util.XPathUtils;
-
import at.gv.egovernment.moa.spss.MOAApplicationException;
import at.gv.egovernment.moa.spss.api.SPSSFactory;
import at.gv.egovernment.moa.spss.api.common.Base64Transform;
@@ -47,6 +43,9 @@ import at.gv.egovernment.moa.spss.api.common.XPathFilter;
import at.gv.egovernment.moa.spss.api.common.XPathFilter2Transform;
import at.gv.egovernment.moa.spss.api.common.XPathTransform;
import at.gv.egovernment.moa.spss.api.common.XSLTTransform;
+import at.gv.egovernment.moaspss.util.Constants;
+import at.gv.egovernment.moaspss.util.DOMUtils;
+import at.gv.egovernment.moaspss.util.XPathUtils;
/**
* A parser to parse XMLDsig <code>Transform</code> DOM elements into their
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyCMSSignatureRequestParser.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyCMSSignatureRequestParser.java
index bc92b7a..97a2541 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyCMSSignatureRequestParser.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyCMSSignatureRequestParser.java
@@ -33,18 +33,17 @@ import java.util.StringTokenizer;
import org.w3c.dom.Element;
-import at.gv.egovernment.moa.util.Base64Utils;
-import at.gv.egovernment.moa.util.CollectionUtils;
-import at.gv.egovernment.moa.util.Constants;
-import at.gv.egovernment.moa.util.DOMUtils;
-import at.gv.egovernment.moa.util.XPathUtils;
-
import at.gv.egovernment.moa.spss.MOAApplicationException;
import at.gv.egovernment.moa.spss.api.SPSSFactory;
import at.gv.egovernment.moa.spss.api.cmsverify.CMSContent;
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.common.MetaInfo;
+import at.gv.egovernment.moaspss.util.Base64Utils;
+import at.gv.egovernment.moaspss.util.CollectionUtils;
+import at.gv.egovernment.moaspss.util.Constants;
+import at.gv.egovernment.moaspss.util.DOMUtils;
+import at.gv.egovernment.moaspss.util.XPathUtils;
/**
* A parser to parse <code>VerifyCMSSignatureRequest</code> DOM trees into
@@ -60,6 +59,7 @@ public class VerifyCMSSignatureRequestParser {
//
private static final String MOA = Constants.MOA_PREFIX + ":";
private static final String DATE_TIME_XPATH = MOA + "DateTime";
+ private static final String EXTENDED_VALIDATION_XPATH = MOA + "ExtendedValidation";
private static final String CMS_SIGNATURE_XPATH = MOA + "CMSSignature";
private static final String TRUST_PROFILE_ID_XPATH = MOA + "TrustProfileID";
private static final String DATA_OBJECT_XPATH = MOA + "DataObject";
@@ -84,12 +84,53 @@ public class VerifyCMSSignatureRequestParser {
* the data from the DOM element.
* @throws MOAApplicationException An error occurred parsing the request.
*/
+ public VerifyCMSSignatureRequest parsePDF(Element requestElem)
+ throws MOAApplicationException {
+
+ int[] signatories = parseSignatories(requestElem);
+ Date dateTime =
+ RequestParserUtils.parseDateTime(requestElem, DATE_TIME_XPATH);
+ boolean extendedValidation =
+ RequestParserUtils.parseExtendedValidation(requestElem, EXTENDED_VALIDATION_XPATH, false);
+
+ String cmsSignatureStr =
+ XPathUtils.getElementValue(requestElem, CMS_SIGNATURE_XPATH, "");
+ CMSDataObject dataObject = parseDataObject(requestElem);
+ String trustProfileID =
+ XPathUtils.getElementValue(requestElem, TRUST_PROFILE_ID_XPATH, null);
+ InputStream cmsSignature =
+ Base64Utils.decodeToStream(cmsSignatureStr, true);
+
+ return factory.createVerifyCMSSignatureRequest(
+ signatories,
+ dateTime,
+ cmsSignature,
+ dataObject,
+ trustProfileID,
+ true,
+ extendedValidation);
+ }
+
+ /**
+ * Parse a <code>VerifyCMSSignatureRequest</code> DOM element, as defined
+ * by the MOA schema.
+ *
+ * @param requestElem The <code>VerifyCMSSignatureRequest</code> to parse. The
+ * request must have been successfully parsed against the schema for this
+ * method to succeed.
+ * @return A <code>VerifyCMSSignatureRequest</code> API objects containing
+ * the data from the DOM element.
+ * @throws MOAApplicationException An error occurred parsing the request.
+ */
public VerifyCMSSignatureRequest parse(Element requestElem)
throws MOAApplicationException {
int[] signatories = parseSignatories(requestElem);
Date dateTime =
RequestParserUtils.parseDateTime(requestElem, DATE_TIME_XPATH);
+ boolean extendedValidation =
+ RequestParserUtils.parseExtendedValidation(requestElem, EXTENDED_VALIDATION_XPATH, false);
+
String cmsSignatureStr =
XPathUtils.getElementValue(requestElem, CMS_SIGNATURE_XPATH, "");
CMSDataObject dataObject = parseDataObject(requestElem);
@@ -104,7 +145,8 @@ public class VerifyCMSSignatureRequestParser {
cmsSignature,
dataObject,
trustProfileID,
- false);
+ false,
+ extendedValidation);
}
/**
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyCMSSignatureResponseBuilder.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyCMSSignatureResponseBuilder.java
index b11560b..cefecac 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyCMSSignatureResponseBuilder.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyCMSSignatureResponseBuilder.java
@@ -35,6 +35,7 @@ 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;
/**
* Convert a <code>VerifyCMSSignatureResponse</code> API object into its
@@ -60,7 +61,7 @@ public class VerifyCMSSignatureResponseBuilder {
ResponseBuilderUtils.createResponse("VerifyCMSSignatureResponse");
responseElem = responseDoc.getDocumentElement();
}
-
+
/**
* Build a document containing a <code>VerifyCMSSignatureResponse</code>
* DOM element being the XML representation of the given
@@ -82,7 +83,7 @@ public class VerifyCMSSignatureResponseBuilder {
(VerifyCMSSignatureResponseElement) iter.next();
addResponseElement(responseElement);
}
-
+
return responseDoc;
}
@@ -125,6 +126,19 @@ public class VerifyCMSSignatureResponseBuilder {
certCheck.getCode(),
certCheck.getInfo());
+
+ if (responseElement.getAdESFormResults() != null) {
+
+ Iterator formIterator = responseElement.getAdESFormResults().iterator();
+
+ while (formIterator.hasNext()) {
+ AdESFormResults adESFormResult = (AdESFormResults) formIterator.next();
+ // add the CertificateCheck
+ ResponseBuilderUtils.addFormCheckElement(responseDoc, responseElem, "FormCheckResult",
+ adESFormResult.getCode().intValue(), adESFormResult.getName());
+
+ }
+ }
}
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyPDFSignatureResponseBuilder.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyPDFSignatureResponseBuilder.java
new file mode 100644
index 0000000..cc44c29
--- /dev/null
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyPDFSignatureResponseBuilder.java
@@ -0,0 +1,145 @@
+/*
+ * Copyright 2003 Federal Chancellery Austria
+ * MOA-SPSS has been developed in a cooperation between BRZ, the Federal
+ * Chancellery Austria - ICT staff unit, and Graz University of Technology.
+ *
+ * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
+ * the European Commission - subsequent versions of the EUPL (the "Licence");
+ * You may not use this work except in compliance with the Licence.
+ * You may obtain a copy of the Licence at:
+ * http://www.osor.eu/eupl/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the Licence is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the Licence for the specific language governing permissions and
+ * limitations under the Licence.
+ *
+ * This product combines work with different licenses. See the "NOTICE" text
+ * file for details on the various modules and licenses.
+ * The "NOTICE" text file is part of the distribution. Any derivative works
+ * that you distribute must include a readable copy of the "NOTICE" text file.
+ */
+
+
+package at.gv.egovernment.moa.spss.api.xmlbind;
+
+import java.util.Iterator;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+import at.gv.egovernment.moa.spss.MOAApplicationException;
+import at.gv.egovernment.moa.spss.MOASystemException;
+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;
+
+/**
+ * Convert a <code>VerifyCMSSignatureResponse</code> API object into its
+ * XML representation, according to the MOA XML schema.
+ *
+ * @author Patrick Peck
+ * @version $Id$
+ */
+public class VerifyPDFSignatureResponseBuilder {
+ /** The XML document containing the response element. */
+ private Document responseDoc;
+ /** The response <code>VerifyCMSSignatureResponse</code> DOM element. */
+ private Element responseElem;
+
+ /**
+ * Create a new <code>VerifyCMSSignatureResponseBuilder</code>:
+ *
+ * @throws MOASystemException An error occurred setting up the resulting
+ * XML document.
+ */
+ public VerifyPDFSignatureResponseBuilder() throws MOASystemException {
+ responseDoc =
+ ResponseBuilderUtils.createResponse("VerifyPDFSignatureResponse");
+ responseElem = responseDoc.getDocumentElement();
+ }
+
+ /**
+ * Build a document containing a <code>VerifyCMSSignatureResponse</code>
+ * DOM element being the XML representation of the given
+ * <code>VerifyCMSSignatureResponse</code> API object.
+ *
+ * @param response The <code>VerifyCMSSignatureResponse</code> to convert
+ * to XML.
+ * @return A document containing the <code>VerifyCMSSignatureResponse</code>
+ * DOM element.
+ * @throws MOAApplicationException An error occurred building the response.
+ */
+ public Document build(VerifyCMSSignatureResponse response)
+ throws MOAApplicationException {
+
+ Iterator iter;
+
+ for (iter = response.getResponseElements().iterator(); iter.hasNext();) {
+ VerifyCMSSignatureResponseElement responseElement =
+ (VerifyCMSSignatureResponseElement) iter.next();
+ addResponseElement(responseElement);
+ }
+
+ return responseDoc;
+ }
+
+ /**
+ * 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(VerifyCMSSignatureResponseElement responseElement)
+ throws MOAApplicationException {
+
+ SignerInfo signerInfo = responseElement.getSignerInfo();
+ CheckResult signatureCheck = responseElement.getSignatureCheck();
+ CheckResult certCheck = responseElement.getCertificateCheck();
+
+ ResponseBuilderUtils.addSignerInfo(
+ responseDoc,
+ responseElem,
+ signerInfo.getSignerCertificate(),
+ signerInfo.isQualifiedCertificate(),
+ signerInfo.getQCSource(),
+ signerInfo.isPublicAuthority(),
+ signerInfo.getPublicAuhtorityID(),
+ signerInfo.isSSCD(),
+ signerInfo.getSSCDSource(),
+ signerInfo.getIssuerCountryCode());
+
+ ResponseBuilderUtils.addCodeInfoElement(
+ responseDoc,
+ responseElem,
+ "SignatureCheck",
+ signatureCheck.getCode(),
+ signatureCheck.getInfo());
+
+ ResponseBuilderUtils.addCodeInfoElement(
+ responseDoc,
+ responseElem,
+ "CertificateCheck",
+ certCheck.getCode(),
+ certCheck.getInfo());
+
+
+ if (responseElement.getAdESFormResults() != null) {
+
+ Iterator formIterator = responseElement.getAdESFormResults().iterator();
+
+ while (formIterator.hasNext()) {
+ AdESFormResults adESFormResult = (AdESFormResults) formIterator.next();
+ // add the CertificateCheck
+ ResponseBuilderUtils.addFormCheckElement(responseDoc, responseElem, "FormCheckResult",
+ adESFormResult.getCode().intValue(), adESFormResult.getName());
+
+ }
+ }
+
+ }
+
+}
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureRequestParser.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureRequestParser.java
index 7bd0b9e..f1bb1d7 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureRequestParser.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureRequestParser.java
@@ -21,7 +21,6 @@
* that you distribute must include a readable copy of the "NOTICE" text file.
*/
-
package at.gv.egovernment.moa.spss.api.xmlbind;
import java.util.ArrayList;
@@ -32,11 +31,6 @@ import java.util.Map;
import org.w3c.dom.Element;
import org.w3c.dom.traversal.NodeIterator;
-import at.gv.egovernment.moa.util.BoolUtils;
-import at.gv.egovernment.moa.util.Constants;
-import at.gv.egovernment.moa.util.DOMUtils;
-import at.gv.egovernment.moa.util.XPathUtils;
-
import at.gv.egovernment.moa.spss.MOAApplicationException;
import at.gv.egovernment.moa.spss.api.SPSSFactory;
import at.gv.egovernment.moa.spss.api.common.Content;
@@ -46,6 +40,10 @@ import at.gv.egovernment.moa.spss.api.xmlverify.SupplementProfile;
import at.gv.egovernment.moa.spss.api.xmlverify.VerifySignatureInfo;
import at.gv.egovernment.moa.spss.api.xmlverify.VerifySignatureLocation;
import at.gv.egovernment.moa.spss.api.xmlverify.VerifyXMLSignatureRequest;
+import at.gv.egovernment.moaspss.util.BoolUtils;
+import at.gv.egovernment.moaspss.util.Constants;
+import at.gv.egovernment.moaspss.util.DOMUtils;
+import at.gv.egovernment.moaspss.util.XPathUtils;
/**
* @author Patrick Peck
@@ -53,32 +51,28 @@ import at.gv.egovernment.moa.spss.api.xmlverify.VerifyXMLSignatureRequest;
*/
public class VerifyXMLSignatureRequestParser {
- //
- // XPath expressions for parsing parts of the request
- //
- private static final String MOA = Constants.MOA_PREFIX + ":";
- private static final String DATE_TIME_XPATH = MOA + "DateTime";
- private static final String RETURN_HASH_INPUT_DATA_XPATH =
- MOA + "ReturnHashInputData";
- private static final String TRUST_PROFILE_ID_XPATH = MOA + "TrustProfileID";
- private static final String VERIFY_SIGNATURE_ENVIRONMENT_XPATH =
- MOA + "VerifySignatureInfo/" + MOA + "VerifySignatureEnvironment";
- private static final String VERIFY_SIGNATURE_LOCATION_XPATH =
- MOA + "VerifySignatureInfo/" + MOA + "VerifySignatureLocation";
- private static final String SUPPLEMENT_PROFILE_XPATH =
- MOA + "SupplementProfile | " + MOA + "SupplementProfileID";
- private static final String SIGNATURE_MANIFEST_CHECK_PARAMS_XPATH =
- MOA + "SignatureManifestCheckParams";
- private static final String VERIFY_TRANSFORMS_INFO_PROFILE_XPATH =
- (MOA + "VerifyTransformsInfoProfile | ")
- + (MOA + "VerifyTransformsInfoProfileID");
- private static final String REFERENCE_INFO_XPATH = MOA + "ReferenceInfo";
-
- /** The <code>SPSSFactory</code> for creating new API objects. */
- private SPSSFactory factory = SPSSFactory.getInstance();
-
-
- /**
+ //
+ // XPath expressions for parsing parts of the request
+ //
+ private static final String MOA = Constants.MOA_PREFIX + ":";
+ private static final String DATE_TIME_XPATH = MOA + "DateTime";
+ private static final String EXTENDED_VALIDATION_XPATH = MOA + "ExtendedValidation";
+ private static final String RETURN_HASH_INPUT_DATA_XPATH = MOA + "ReturnHashInputData";
+ private static final String TRUST_PROFILE_ID_XPATH = MOA + "TrustProfileID";
+ private static final String VERIFY_SIGNATURE_ENVIRONMENT_XPATH = MOA + "VerifySignatureInfo/" + MOA
+ + "VerifySignatureEnvironment";
+ private static final String VERIFY_SIGNATURE_LOCATION_XPATH = MOA + "VerifySignatureInfo/" + MOA
+ + "VerifySignatureLocation";
+ private static final String SUPPLEMENT_PROFILE_XPATH = MOA + "SupplementProfile | " + MOA + "SupplementProfileID";
+ private static final String SIGNATURE_MANIFEST_CHECK_PARAMS_XPATH = MOA + "SignatureManifestCheckParams";
+ private static final String VERIFY_TRANSFORMS_INFO_PROFILE_XPATH = (MOA + "VerifyTransformsInfoProfile | ")
+ + (MOA + "VerifyTransformsInfoProfileID");
+ private static final String REFERENCE_INFO_XPATH = MOA + "ReferenceInfo";
+
+ /** The <code>SPSSFactory</code> for creating new API objects. */
+ private SPSSFactory factory = SPSSFactory.getInstance();
+
+ /**
* Parse a <code>VerifyXMLSignatureRequest</code> DOM element, as defined
* by the MOA schema.
*
@@ -94,6 +88,10 @@ public class VerifyXMLSignatureRequestParser {
Date dateTime =
RequestParserUtils.parseDateTime(requestElem, DATE_TIME_XPATH);
+
+ boolean extendedValidation =
+ RequestParserUtils.parseExtendedValidation(requestElem, EXTENDED_VALIDATION_XPATH, false);
+
VerifySignatureInfo verifySignatureInfo =
parseVerifySignatureInfo(requestElem);
List supplementProfiles = parseSupplementProfiles(requestElem);
@@ -111,189 +109,178 @@ public class VerifyXMLSignatureRequestParser {
supplementProfiles,
signatureManifestCheckParams,
returnHashInputData,
- trustProfileID);
- }
-
- /**
- * Parse the <code>VerifySignatureInfo</code> DOM element contained in
- * the <code>VerifyXMLSignatureRequest</code> DOM element.
- *
- * @param requestElem The <code>VerifyXMLSignatureRequest</code> DOM element
- * containing the <code>VerifySignatureInfo</code> DOM element.
- * @return The <code>VerifySignatureInfo</code> API object containing the
- * data from the DOM element.
- */
- private VerifySignatureInfo parseVerifySignatureInfo(Element requestElem) {
- Element verifySignatureEnvironmentElem =
- (Element) XPathUtils.selectSingleNode(
- requestElem,
- VERIFY_SIGNATURE_ENVIRONMENT_XPATH);
- Content verifySignatureEnvironment =
- RequestParserUtils.parseContent(verifySignatureEnvironmentElem);
- VerifySignatureLocation verifySignatureLocation =
- parseVerifySignatureLocation(requestElem);
-
- return factory.createVerifySignatureInfo(
- verifySignatureEnvironment,
- verifySignatureLocation);
- }
-
- /**
- * Parse the <code>VerifySignatureLocation</code> DOM element contained
- * in the given <code>VerifyXMLSignatureRequest</code> DOM element.
- *
- * @param requestElem The <code>VerifyXMLSignatureRequst</code> DOM element.
- * @return The <code>VerifySignatureLocation</code> API object containing the
- * data from the DOM element.
- */
- private VerifySignatureLocation parseVerifySignatureLocation(Element requestElem) {
- Element locationElem =
- (Element) XPathUtils.selectSingleNode(
- requestElem,
- VERIFY_SIGNATURE_LOCATION_XPATH);
- String xPathExpression = DOMUtils.getText(locationElem);
- Map namespaceDeclarations = DOMUtils.getNamespaceDeclarations(locationElem);
-
- return factory.createVerifySignatureLocation(
- xPathExpression,
- namespaceDeclarations);
- }
-
- /**
- * Parse the supplement profiles contained in the given
- * <code>VerifyXMLSignatureRequest</code> DOM element.
- *
- * @param requestElem The <code>VerifyXMLSignatureRequest</code> DOM element.
- * @return A <code>List</code> of <code>SupplementProfile</code> API objects
- * containing the data from the <code>SupplementProfile</code> DOM elements.
- */
- private List parseSupplementProfiles(Element requestElem) {
- List supplementProfiles = new ArrayList();
- NodeIterator profileElems =
- XPathUtils.selectNodeIterator(requestElem, SUPPLEMENT_PROFILE_XPATH);
- Element profileElem;
-
- while ((profileElem = (Element) profileElems.nextNode()) != null) {
- SupplementProfile profile;
-
- if ("SupplementProfile".equals(profileElem.getLocalName())) {
- ProfileParser profileParser = new ProfileParser();
- profile = profileParser.parseSupplementProfile(profileElem);
- } else {
- String profileID = DOMUtils.getText(profileElem);
- profile = factory.createSupplementProfile(profileID);
- }
- supplementProfiles.add(profile);
- }
- return supplementProfiles;
- }
-
- /**
- * Parse the <code>SignatureManifestCheckParams</code> DOM element contained
- * in the given <code>VerifyXMLSignatureRequest</code> DOM element.
- * @param requestElem The <code>VerifyXMLSignatureRequest</code> DOM element.
- * @return The <code>SignatureManifestCheckParams</code> API object containing
- * the data from the <code>SignatureManifestCheckParams</code> DOM element.
- * @throws MOAApplicationException An error occurred parsing the
- * <code>SignatureManifestCheckParams</code> DOM element.
- */
- private SignatureManifestCheckParams parseSignatureManifestCheckParams(Element requestElem)
- throws MOAApplicationException {
- Element paramsElem =
- (Element) XPathUtils.selectSingleNode(
- requestElem,
- SIGNATURE_MANIFEST_CHECK_PARAMS_XPATH);
-
- if (paramsElem != null) {
- String returnReferenceInputDataStr =
- paramsElem.getAttribute("ReturnReferenceInputData");
- boolean returnReferencInputData =
- BoolUtils.valueOf(returnReferenceInputDataStr);
- List referenceInfos = parseReferenceInfos(paramsElem);
-
- return factory.createSignatureManifestCheckParams(
- referenceInfos,
- returnReferencInputData);
- } else {
- return null;
- }
+ trustProfileID,
+ extendedValidation);
}
- /**
- * Parse the <code>ReferenceInfo</code> DOM elements contained in a
- * <code>SignatureManifestCheckParams</code> DOM element.
- *
- * @param paramsElem The <code>SignatureManifestCheckParams</code> DOM element
- * containing the <code>ReferenceInfo</code> DOM elements.
- * @return A <code>List</code> of <code>RefernceInfo</code> API objects
- * containing the data from the <code>ReferenceInfo</code> DOM elements.
- * @throws MOAApplicationException An error occurred parsing the
- * <code>ReferenceInfo</code> DOM elements.
- */
- private List parseReferenceInfos(Element paramsElem)
- throws MOAApplicationException {
-
- List referenceInfos = new ArrayList();
- NodeIterator refInfoElems =
- XPathUtils.selectNodeIterator(paramsElem, REFERENCE_INFO_XPATH);
- Element refInfoElem;
-
- while ((refInfoElem = (Element) refInfoElems.nextNode()) != null) {
- ReferenceInfo referenceInfo = parseReferenceInfo(refInfoElem);
-
- referenceInfos.add(referenceInfo);
- }
-
- return referenceInfos;
- }
-
- /**
- * Parse a <code>ReferenceInfo</code> DOM element.
- *
- * @param refInfoElem The <code>ReferenceInfo</code> DOM element to parse.
- * @return The <code>ReferenceInfo</code> API object containing the data
- * from the given <code>ReferenceInfo</code> DOM element.
- * @throws MOAApplicationException An error occurred parsing the
- * <code>ReferenceInfo</code> DOM element.
- */
- private ReferenceInfo parseReferenceInfo(Element refInfoElem)
- throws MOAApplicationException {
- List profiles = parseVerifyTransformsInfoProfiles(refInfoElem);
- return factory.createReferenceInfo(profiles);
- }
-
- /**
- * Parse the <code>VerifyTransformsInfoProfile</code> DOM elements contained
- * in a <code>ReferenceInfo</code> DOM element.
- *
- * @param refInfoElem <code>ReferenceInfo</code> DOM element containing
- * the <code>VerifyTransformsInfoProfile</code> DOM elements.
- * @return A <code>List</code> of <code>VerifyTransformsInfoProfile</code>
- * API objects containing the profile data.
- * @throws MOAApplicationException An error occurred building the
- * <code>VerifyTransformsInfoProfile</code>s.
- */
- private List parseVerifyTransformsInfoProfiles(Element refInfoElem)
- throws MOAApplicationException {
-
- List profiles = new ArrayList();
- NodeIterator profileElems =
- XPathUtils.selectNodeIterator(
- refInfoElem,
- VERIFY_TRANSFORMS_INFO_PROFILE_XPATH);
- Element profileElem;
-
- while ((profileElem = (Element) profileElems.nextNode()) != null) {
- if ("VerifyTransformsInfoProfile".equals(profileElem.getLocalName())) {
- ProfileParser profileParser = new ProfileParser();
- profiles.add(
- profileParser.parseVerifyTransformsInfoProfile(profileElem));
- } else {
- String profileID = DOMUtils.getText(profileElem);
- profiles.add(factory.createVerifyTransformsInfoProfile(profileID));
- }
- }
- return profiles;
- }
+ /**
+ * Parse the <code>VerifySignatureInfo</code> DOM element contained in the
+ * <code>VerifyXMLSignatureRequest</code> DOM element.
+ *
+ * @param requestElem
+ * The <code>VerifyXMLSignatureRequest</code> DOM element
+ * containing the <code>VerifySignatureInfo</code> DOM element.
+ * @return The <code>VerifySignatureInfo</code> API object containing the
+ * data from the DOM element.
+ */
+ private VerifySignatureInfo parseVerifySignatureInfo(Element requestElem) {
+ Element verifySignatureEnvironmentElem = (Element) XPathUtils.selectSingleNode(requestElem,
+ VERIFY_SIGNATURE_ENVIRONMENT_XPATH);
+ Content verifySignatureEnvironment = RequestParserUtils.parseContent(verifySignatureEnvironmentElem);
+ VerifySignatureLocation verifySignatureLocation = parseVerifySignatureLocation(requestElem);
+
+ return factory.createVerifySignatureInfo(verifySignatureEnvironment, verifySignatureLocation);
+ }
+
+ /**
+ * Parse the <code>VerifySignatureLocation</code> DOM element contained in
+ * the given <code>VerifyXMLSignatureRequest</code> DOM element.
+ *
+ * @param requestElem
+ * The <code>VerifyXMLSignatureRequst</code> DOM element.
+ * @return The <code>VerifySignatureLocation</code> API object containing
+ * the data from the DOM element.
+ */
+ private VerifySignatureLocation parseVerifySignatureLocation(Element requestElem) {
+ Element locationElem = (Element) XPathUtils.selectSingleNode(requestElem, VERIFY_SIGNATURE_LOCATION_XPATH);
+ String xPathExpression = DOMUtils.getText(locationElem);
+ Map namespaceDeclarations = DOMUtils.getNamespaceDeclarations(locationElem);
+
+ return factory.createVerifySignatureLocation(xPathExpression, namespaceDeclarations);
+ }
+
+ /**
+ * Parse the supplement profiles contained in the given
+ * <code>VerifyXMLSignatureRequest</code> DOM element.
+ *
+ * @param requestElem
+ * The <code>VerifyXMLSignatureRequest</code> DOM element.
+ * @return A <code>List</code> of <code>SupplementProfile</code> API objects
+ * containing the data from the <code>SupplementProfile</code> DOM
+ * elements.
+ */
+ private List parseSupplementProfiles(Element requestElem) {
+ List supplementProfiles = new ArrayList();
+ NodeIterator profileElems = XPathUtils.selectNodeIterator(requestElem, SUPPLEMENT_PROFILE_XPATH);
+ Element profileElem;
+
+ while ((profileElem = (Element) profileElems.nextNode()) != null) {
+ SupplementProfile profile;
+
+ if ("SupplementProfile".equals(profileElem.getLocalName())) {
+ ProfileParser profileParser = new ProfileParser();
+ profile = profileParser.parseSupplementProfile(profileElem);
+ } else {
+ String profileID = DOMUtils.getText(profileElem);
+ profile = factory.createSupplementProfile(profileID);
+ }
+ supplementProfiles.add(profile);
+ }
+ return supplementProfiles;
+ }
+
+ /**
+ * Parse the <code>SignatureManifestCheckParams</code> DOM element contained
+ * in the given <code>VerifyXMLSignatureRequest</code> DOM element.
+ *
+ * @param requestElem
+ * The <code>VerifyXMLSignatureRequest</code> DOM element.
+ * @return The <code>SignatureManifestCheckParams</code> API object
+ * containing the data from the
+ * <code>SignatureManifestCheckParams</code> DOM element.
+ * @throws MOAApplicationException
+ * An error occurred parsing the
+ * <code>SignatureManifestCheckParams</code> DOM element.
+ */
+ private SignatureManifestCheckParams parseSignatureManifestCheckParams(Element requestElem)
+ throws MOAApplicationException {
+ Element paramsElem = (Element) XPathUtils.selectSingleNode(requestElem, SIGNATURE_MANIFEST_CHECK_PARAMS_XPATH);
+
+ if (paramsElem != null) {
+ String returnReferenceInputDataStr = paramsElem.getAttribute("ReturnReferenceInputData");
+ boolean returnReferencInputData = BoolUtils.valueOf(returnReferenceInputDataStr);
+ List referenceInfos = parseReferenceInfos(paramsElem);
+
+ return factory.createSignatureManifestCheckParams(referenceInfos, returnReferencInputData);
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Parse the <code>ReferenceInfo</code> DOM elements contained in a
+ * <code>SignatureManifestCheckParams</code> DOM element.
+ *
+ * @param paramsElem
+ * The <code>SignatureManifestCheckParams</code> DOM element
+ * containing the <code>ReferenceInfo</code> DOM elements.
+ * @return A <code>List</code> of <code>RefernceInfo</code> API objects
+ * containing the data from the <code>ReferenceInfo</code> DOM
+ * elements.
+ * @throws MOAApplicationException
+ * An error occurred parsing the <code>ReferenceInfo</code> DOM
+ * elements.
+ */
+ private List parseReferenceInfos(Element paramsElem) throws MOAApplicationException {
+
+ List referenceInfos = new ArrayList();
+ NodeIterator refInfoElems = XPathUtils.selectNodeIterator(paramsElem, REFERENCE_INFO_XPATH);
+ Element refInfoElem;
+
+ while ((refInfoElem = (Element) refInfoElems.nextNode()) != null) {
+ ReferenceInfo referenceInfo = parseReferenceInfo(refInfoElem);
+
+ referenceInfos.add(referenceInfo);
+ }
+
+ return referenceInfos;
+ }
+
+ /**
+ * Parse a <code>ReferenceInfo</code> DOM element.
+ *
+ * @param refInfoElem
+ * The <code>ReferenceInfo</code> DOM element to parse.
+ * @return The <code>ReferenceInfo</code> API object containing the data
+ * from the given <code>ReferenceInfo</code> DOM element.
+ * @throws MOAApplicationException
+ * An error occurred parsing the <code>ReferenceInfo</code> DOM
+ * element.
+ */
+ private ReferenceInfo parseReferenceInfo(Element refInfoElem) throws MOAApplicationException {
+ List profiles = parseVerifyTransformsInfoProfiles(refInfoElem);
+ return factory.createReferenceInfo(profiles);
+ }
+
+ /**
+ * Parse the <code>VerifyTransformsInfoProfile</code> DOM elements contained
+ * in a <code>ReferenceInfo</code> DOM element.
+ *
+ * @param refInfoElem
+ * <code>ReferenceInfo</code> DOM element containing the
+ * <code>VerifyTransformsInfoProfile</code> DOM elements.
+ * @return A <code>List</code> of <code>VerifyTransformsInfoProfile</code>
+ * API objects containing the profile data.
+ * @throws MOAApplicationException
+ * An error occurred building the
+ * <code>VerifyTransformsInfoProfile</code>s.
+ */
+ private List parseVerifyTransformsInfoProfiles(Element refInfoElem) throws MOAApplicationException {
+
+ List profiles = new ArrayList();
+ NodeIterator profileElems = XPathUtils.selectNodeIterator(refInfoElem, VERIFY_TRANSFORMS_INFO_PROFILE_XPATH);
+ Element profileElem;
+
+ while ((profileElem = (Element) profileElems.nextNode()) != null) {
+ if ("VerifyTransformsInfoProfile".equals(profileElem.getLocalName())) {
+ ProfileParser profileParser = new ProfileParser();
+ profiles.add(profileParser.parseVerifyTransformsInfoProfile(profileElem));
+ } else {
+ String profileID = DOMUtils.getText(profileElem);
+ profiles.add(factory.createVerifyTransformsInfoProfile(profileID));
+ }
+ }
+ return profiles;
+ }
}
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureResponseBuilder.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureResponseBuilder.java
index bc949fa..2109b35 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureResponseBuilder.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlbind/VerifyXMLSignatureResponseBuilder.java
@@ -32,9 +32,9 @@ import org.w3c.dom.DocumentFragment;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
-import at.gv.egovernment.moa.util.Base64Utils;
-import at.gv.egovernment.moa.util.Constants;
-import at.gv.egovernment.moa.logging.Logger;
+import at.gv.egovernment.moaspss.logging.Logger;
+import at.gv.egovernment.moaspss.util.Base64Utils;
+import at.gv.egovernment.moaspss.util.Constants;
import at.gv.egovernment.moa.spss.MOAApplicationException;
import at.gv.egovernment.moa.spss.MOASystemException;
import at.gv.egovernment.moa.spss.api.common.Content;
@@ -137,23 +137,18 @@ public class VerifyXMLSignatureResponseBuilder {
ResponseBuilderUtils.addCodeInfoElement(responseDoc, responseElem, "CertificateCheck",
response.getCertificateCheck().getCode(), response.getCertificateCheck().getInfo());
- try {
- if (ConfigurationProvider.getInstance().getAdesFormResults() && response.getAdESFormResults() != null) {
+ if (response.getAdESFormResults() != null) {
- Iterator formIterator = response.getAdESFormResults().iterator();
+ Iterator formIterator = response.getAdESFormResults().iterator();
- while (formIterator.hasNext()) {
- AdESFormResults adESFormResult = (AdESFormResults) formIterator.next();
- // add the CertificateCheck
- ResponseBuilderUtils.addFormCheckElement(responseDoc, responseElem, "FormCheckResult",
- adESFormResult.getCode().intValue(), adESFormResult.getName());
+ while (formIterator.hasNext()) {
+ AdESFormResults adESFormResult = (AdESFormResults) formIterator.next();
+ // add the CertificateCheck
+ ResponseBuilderUtils.addFormCheckElement(responseDoc, responseElem, "FormCheckResult",
+ adESFormResult.getCode().intValue(), adESFormResult.getName());
- }
}
- } catch (ConfigurationException e) {
- Logger.warn("Failed to access configuration to determine if we should return AdES Form Results");
}
-
return responseDoc;
}
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlverify/VerifyXMLSignatureRequest.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlverify/VerifyXMLSignatureRequest.java
index a6272d5..c4a0fd1 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlverify/VerifyXMLSignatureRequest.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/xmlverify/VerifyXMLSignatureRequest.java
@@ -76,4 +76,12 @@ public interface VerifyXMLSignatureRequest {
* @return The id of the trusted certificates.
*/
public String getTrustProfileId();
+
+ /**
+ * Should perform extended validation
+ *
+ * @return <code>true</code>, if signed data will be returned,
+ * otherwise <code>false</code>.
+ */
+ public boolean getExtendedValidaiton();
}