From 8911eecba03b45e95579c6ed76deb1867c6c609b Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Wed, 28 Jun 2017 12:32:53 +0200 Subject: fix wrong package name --- .../common/src/main/java/at/gv/egovernment/moaspss/util/DOMUtils.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/moaSig/common/src/main/java/at/gv/egovernment/moaspss/util/DOMUtils.java b/moaSig/common/src/main/java/at/gv/egovernment/moaspss/util/DOMUtils.java index 2a907e7..44eba5a 100644 --- a/moaSig/common/src/main/java/at/gv/egovernment/moaspss/util/DOMUtils.java +++ b/moaSig/common/src/main/java/at/gv/egovernment/moaspss/util/DOMUtils.java @@ -48,7 +48,6 @@ import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; -import org.apache.xerces.impl.Constants; import org.apache.xerces.parsers.DOMParser; import org.apache.xerces.parsers.SAXParser; import org.apache.xerces.parsers.XMLGrammarPreparser; @@ -122,7 +121,7 @@ public class DOMUtils { //Security Manager feature for XERCES XML parser private static final String SECURITY_MANAGER = - Constants.XERCES_PROPERTY_PREFIX + Constants.SECURITY_MANAGER_PROPERTY; + org.apache.xerces.impl.Constants.XERCES_PROPERTY_PREFIX + org.apache.xerces.impl.Constants.SECURITY_MANAGER_PROPERTY; /** Property URI for the Xerces grammar pool. */ -- cgit v1.2.3 From ae378f2293528188235be596af8d68504803e082 Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Wed, 28 Jun 2017 12:33:25 +0200 Subject: fix problem in CMS response builder --- .../xmlbind/CreateCMSSignatureResponseBuilder.java | 39 ++++++++++++++-------- 1 file changed, 26 insertions(+), 13 deletions(-) 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 d808f2b..7ce0871 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 @@ -80,22 +80,35 @@ public class CreateCMSSignatureResponseBuilder { public Document build(CreateCMSSignatureResponse response) { Iterator iter; - + + + for (iter = response.getResponseElements().iterator(); iter.hasNext();) { - CreateCMSSignatureResponseElement responseElement = - (CreateCMSSignatureResponseElement) iter.next(); - switch (responseElement.getResponseType()) { - case CreateCMSSignatureResponseElement.CMS_SIGNATURE : - CMSSignatureResponse cmsSignatureResponse = (CMSSignatureResponse) responseElement; + Object responseObj = iter.next(); + + if (responseObj instanceof ErrorResponse) { + ErrorResponse errorResponse = (ErrorResponse) responseObj; + addErrorResponse(errorResponse); + + } else if (responseObj instanceof CreateCMSSignatureResponseElement) { + CMSSignatureResponse cmsSignatureResponse = (CMSSignatureResponse) responseObj; addCMSSignature(cmsSignatureResponse); - break; - - case CreateCMSSignatureResponseElement.ERROR_RESPONSE : - ErrorResponse errorResponse = (ErrorResponse) responseElement; - addErrorResponse(errorResponse); - break; - } + + } + +// CreateCMSSignatureResponseElement responseElement = +// (CreateCMSSignatureResponseElement) iter.next(); +// +// switch (responseElement.getResponseType()) { +// case CreateCMSSignatureResponseElement.CMS_SIGNATURE : +// +// break; +// +// case CreateCMSSignatureResponseElement.ERROR_RESPONSE : +// +// break; +// } } -- cgit v1.2.3 From e1535be7c97e86e40e04258cbdaf47f60e6292bf Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Mon, 7 Aug 2017 16:30:58 +0200 Subject: add PAdES conformity flag to CAdES SOAP interface. Info: additional work is required when IAIK-MOA is updated --- .../at/gv/egovernment/moaspss/util/Constants.java | 2 +- .../resources/resources/schemas/MOA-SPSS-3.1.0.xsd | 814 +++++++++++++++++++++ moaSig/handbook/handbook/usage/usage.html | 4 +- .../gv/egovernment/moa/spss/api/SPSSFactory.java | 3 +- .../moa/spss/api/cmssign/SingleSignatureInfo.java | 8 + .../moa/spss/api/impl/SPSSFactoryImpl.java | 3 +- .../spss/api/impl/SingleSignatureInfoCMSImpl.java | 9 +- .../xmlbind/CreateCMSSignatureRequestParser.java | 9 +- .../server/invoke/CMSSignatureCreationInvoker.java | 64 +- .../resources/resources/wsdl/MOA-SPSS-2.0.0.wsdl | 2 +- .../resources/resources/wsdl/MOA-SPSS-3.1.0.xsd | 814 +++++++++++++++++++++ .../resources/schemas/MOA-SPSS-2.0.0.wsdl | 2 +- .../src/main/webapp/schemas/MOA-SPSS-3.1.0.xsd | 814 +++++++++++++++++++++ 13 files changed, 2498 insertions(+), 50 deletions(-) create mode 100644 moaSig/common/src/main/resources/resources/schemas/MOA-SPSS-3.1.0.xsd create mode 100644 moaSig/moa-sig-lib/src/main/resources/resources/wsdl/MOA-SPSS-3.1.0.xsd create mode 100644 moaSig/moa-sig/src/main/webapp/schemas/MOA-SPSS-3.1.0.xsd diff --git a/moaSig/common/src/main/java/at/gv/egovernment/moaspss/util/Constants.java b/moaSig/common/src/main/java/at/gv/egovernment/moaspss/util/Constants.java index 549f8e3..4640a90 100644 --- a/moaSig/common/src/main/java/at/gv/egovernment/moaspss/util/Constants.java +++ b/moaSig/common/src/main/java/at/gv/egovernment/moaspss/util/Constants.java @@ -83,7 +83,7 @@ public interface Constants { /** Local location of the MOA XML schema definition. */ public static final String MOA_SCHEMA_LOCATION = - SCHEMA_ROOT + "MOA-SPSS-3.0.0.xsd"; + SCHEMA_ROOT + "MOA-SPSS-3.1.0.xsd"; /** URI of the MOA configuration XML namespace. */ public static final String MOA_CONFIG_NS_URI = diff --git a/moaSig/common/src/main/resources/resources/schemas/MOA-SPSS-3.1.0.xsd b/moaSig/common/src/main/resources/resources/schemas/MOA-SPSS-3.1.0.xsd new file mode 100644 index 0000000..9a2836e --- /dev/null +++ b/moaSig/common/src/main/resources/resources/schemas/MOA-SPSS-3.1.0.xsd @@ -0,0 +1,814 @@ + + + + + + + + + + + + + + + + + + + + Ermöglichung der Stapelsignatur durch + wiederholte Angabe dieses Elements + + + + + + + + + + + + + + + + + + + + + + + Kardinalität 1..oo erlaubt die Antwort auf eine + Stapelsignatur-Anfrage + + + + Resultat, falls die Signaturerstellung + erfolgreich war + + + + + + + + + + + + + + + + + + + + Ermöglichung der Stapelsignatur durch + wiederholte Angabe dieses Elements + + + + + + + + + + + + + + + + + + + Auswahl: Entweder explizite Angabe des + Signaturorts sowie ggf. sinnvoller Supplements im Zshg. mit + der Signaturumgebung, oder Verweis auf ein benanntes Profil + + + + + + + + + + + + + + + + + + + Kardinalität 1..oo erlaubt die Antwort auf eine + Stapelsignatur-Anfrage + + + + Resultat, falls die Signaturerstellung + erfolgreich war + + + + + + + + + + + + + + + + + + + + + + + + + + Ermöglichung der Stapelsignatur durch + wiederholte Angabe dieses Elements + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + mit diesem Profil wird eine Menge von + vertrauenswürdigen Wurzelzertifikaten spezifiziert + + + + + + + + + + + + only ds:X509Data and RetrievalMethod is + supported; QualifiedCertificate is included as + X509Data/any;publicAuthority is included as X509Data/any; + SecureSignatureCreationDevice is included as X509Data/any, + IssuingCountry is included as X509Data/any + + + + + + + + + + + + + only ds:X509Data and RetrievalMethod is + supported; QualifiedCertificate is included as + X509Data/any;publicAuthority is included as X509Data/any; + SecureSignatureCreationDevice is included as X509Data/any, + IssuingCountry is included as X509Data/any, + TSLInformation is included as X509Data/any + + + + + + + + + + + + + + + + + + + + + + + + + + + + mit diesem Profil wird eine Menge von + vertrauenswürdigen Wurzelzertifikaten spezifiziert + + + + + + + + + + + + + + + + + + + + + + asics or asice + + + + + mit diesem Profil wird eine Menge von + vertrauenswürdigen Wurzelzertifikaten spezifiziert + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + only ds:X509Data and RetrievalMethod is + supported; QualifiedCertificate is included as + X509Data/any;publicAuthority is included as X509Data/any; + SecureSignatureCreationDevice is included as X509Data/any, + IssuingCountry is included as X509Data/any + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Pro dsig:Reference-Element in der zu + überprüfenden XML-Signatur muss hier ein + ReferenceInfo-Element erscheinen. Die Reihenfolge der einzelnen + ReferenceInfo Elemente entspricht jener der dsig:Reference + Elemente in der XML-Signatur. + + + + + + + + + + mit diesem Profil wird eine Menge von + vertrauenswürdigen Wurzelzertifikaten spezifiziert + + + + + + + + + + + + only ds:X509Data and ds:RetrievalMethod is + supported; QualifiedCertificate is included as X509Data/any; + PublicAuthority is included as X509Data/any; + SecureSignatureCreationDevice is included as X509Data/any, + IssuingCountry is included as X509Data/any + + + + + + + + + + + + + + + + + only ds:X509Data and ds:RetrievalMethod is + supported; QualifiedCertificate is included as X509Data/any; + PublicAuthority is included as X509Data/any; + SecureSignatureCreationDevice is included as X509Data/any, + IssuingCountry is included as X509Data/any + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Auswahl: Entweder explizite Angabe EINER + Transformationskette inklusive ggf. sinnvoller Supplements oder + Verweis auf ein benanntes Profil + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Resultat, falls die Signaturerstellung + erfolgreich war + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Resultat, falls die Signaturerstellung gescheitert + ist + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ein oder mehrere Transformationswege können von + der Applikation an MOA mitgeteilt werden. Die zu prüfende Signatur + hat zumindest einem dieser Transformationswege zu entsprechen. Die + Angabe kann explizit oder als Profilbezeichner erfolgen. + + + + + + Profilbezeichner für einen Transformationsweg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Die Angabe des Transformationsparameters + (explizit oder als Hashwert) kann unterlassen werden, wenn die + Applikation von der Unveränderlichkeit des Inhalts der in + "Transformationsparamter", Attribut "URI" angegebenen URI ausgehen + kann. + + + + Der Transformationsparameter explizit angegeben. + + + + + + Der Hashwert des Transformationsparameters. + + + + + + + + + + + + + + + + + + + + + + + Explizite Angabe des Transformationswegs + + + + + + + + Alle impliziten Transformationsparameter, die + zum Durchlaufen der oben angeführten Transformationskette + bekannt sein müssen, müssen hier angeführt werden. Das + Attribut "URI" bezeichnet den Transformationsparameter in exakt + jener Weise, wie er in der zu überprüfenden Signatur gebraucht + wird. + + + + + + + + + + + + + + + + diff --git a/moaSig/handbook/handbook/usage/usage.html b/moaSig/handbook/handbook/usage/usage.html index df8caea..6e42d4a 100644 --- a/moaSig/handbook/handbook/usage/usage.html +++ b/moaSig/handbook/handbook/usage/usage.html @@ -98,8 +98,8 @@

CreateCMSSignatureRequest.Base64Content.xml ist ein einfacher XML-Request zur Erzeugung einer CAdES-Signatur. Sein Aufbau wird nachfolgend analysiert:

  <KeyIdentifier>KG_allgemein</KeyIdentifier> 

KG_allgemein bezeichnet eine Schlüsselgruppe, aus der SS einen Signaturschlüssel selektieren soll und muss einer in der SP/SS-Konfigurationsdatei definierten Schlüsselgruppe entsprechen.

-
  <SingleSignatureInfo SecurityLayerConformity="true">
-

Für jedes SingleSignatureInfoElement wird eine eigene CMS/CAdES-Signatur erzeugt. Wird das Attribut SecurityLayerConformity auf true gesetzt, dann wird eine CAdES-Signatur gemäß Security-Layer Spezifikation erzeugt; d.h. es werden signierte Properties (Zeitpunkt der Signaturerstellung, das für die Signaturüberprüfung zu verwendende Zertifikat, Metainformationen zu den signierten Datenobjekten).

+
  <SingleSignatureInfo SecurityLayerConformity="true" PAdESConformity="true">
+

Für jedes SingleSignatureInfoElement wird eine eigene CMS/CAdES-Signatur erzeugt. Wird das Attribut SecurityLayerConformity auf true gesetzt, dann wird eine CAdES-Signatur gemäß Security-Layer Spezifikation erzeugt; d.h. es werden signierte Properties (Zeitpunkt der Signaturerstellung, das für die Signaturüberprüfung zu verwendende Zertifikat, Metainformationen zu den signierten Datenobjekten). Wird das Attribut PAdESConformity auf true gesetzt, dann wird eine CAdES-Signature entsprechend dem PAdES Standard erzeugt (die CAdES Signatur enthält in diesem Fall keinen Signaturzeitpunkt und keinen MimeType da diese Informationen im PDF eingebettet sind oder durch das PDF vorgegeben werden).

  <DataObjectInfo Structure="enveloping">
 	  <DataObject>
 	    <MetaInfo>
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 aadaefb..a39edf4 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
@@ -190,13 +190,14 @@ public abstract class SPSSFactory {
    * @param dataObjectInfo The data object that will be signed.
    * @param securityLayerConform If true, a Security Layer conform
    * signature manifest is created, otherwise not.
+ * @param isPAdESSignature 
    * @return The SingleSignatureInfo containing the above data.
    * 
    * @post return != null
    */
   public abstract at.gv.egovernment.moa.spss.api.cmssign.SingleSignatureInfo createSingleSignatureInfoCMS(	
     at.gv.egovernment.moa.spss.api.cmssign.DataObjectInfo dataObjectInfo,
-    boolean securityLayerConform);
+    boolean securityLayerConform, boolean isPAdESSignature);
   
 
   
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/cmssign/SingleSignatureInfo.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/cmssign/SingleSignatureInfo.java
index 1f87a50..4d56cf3 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/cmssign/SingleSignatureInfo.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/cmssign/SingleSignatureInfo.java
@@ -48,4 +48,12 @@ public interface SingleSignatureInfo {
    * will be created, false otherwise.
    */
   public boolean isSecurityLayerConform();
+  
+  /**
+   * Check whether a PAdES conform CAdES signature will be created 
+   * 
+   * @return true, if a PAdES conform CAdES signature 
+   * will be created, false otherwise.
+   */
+  public boolean isPAdESConform();
 }
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 ea8d295..b9fad4f 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
@@ -124,10 +124,11 @@ public class SPSSFactoryImpl extends SPSSFactory {
 	}
 
 	public at.gv.egovernment.moa.spss.api.cmssign.SingleSignatureInfo createSingleSignatureInfoCMS(
-			at.gv.egovernment.moa.spss.api.cmssign.DataObjectInfo dataObjectInfo, boolean securityLayerConform) {
+			at.gv.egovernment.moa.spss.api.cmssign.DataObjectInfo dataObjectInfo, boolean securityLayerConform, boolean isPAdESConform) {
 		SingleSignatureInfoCMSImpl singleSignatureInfo = new SingleSignatureInfoCMSImpl();
 		singleSignatureInfo.setDataObjectInfo(dataObjectInfo);
 		singleSignatureInfo.setSecurityLayerConform(securityLayerConform);
+		singleSignatureInfo.setPAdESConform(isPAdESConform);
 		return singleSignatureInfo;
 	}
 
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/SingleSignatureInfoCMSImpl.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/SingleSignatureInfoCMSImpl.java
index cb36515..c8558dc 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/SingleSignatureInfoCMSImpl.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/SingleSignatureInfoCMSImpl.java
@@ -40,6 +40,7 @@ public class SingleSignatureInfoCMSImpl implements SingleSignatureInfo {
 
 
   private boolean securityLayerConform = true;
+  private boolean padesConform = false;
 
   public void setDataObjectInfo(DataObjectInfo dataObjectInfo) {
     this.dataObjectInfo = dataObjectInfo;
@@ -49,9 +50,15 @@ public class SingleSignatureInfoCMSImpl implements SingleSignatureInfo {
     return dataObjectInfo;
   }
 
+  public boolean isPAdESConform() {
+	return padesConform;
+  }
 
+  public void setPAdESConform(boolean padesConform) {
+	this.padesConform = padesConform;
+  }
 
-  public void setSecurityLayerConform(boolean securityLayerConform) {
+public void setSecurityLayerConform(boolean securityLayerConform) {
     this.securityLayerConform = securityLayerConform;
   }
 
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 3550c27..a4c4d29 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
@@ -67,6 +67,7 @@ public class CreateCMSSignatureRequestParser {
   private static final String DATA_OBJECT_XPATH = MOA + "DataObject";
   
   private static final String SL_CONFORM_ATTR_NAME = "SecurityLayerConformity";
+  private static final String IS_PADES_SIGNATURE_ATTR_NAME = "PAdESConformity";
 
   private static final String META_INFO_XPATH = MOA + "MetaInfo";
   private static final String CONTENT_XPATH = MOA + "Content";
@@ -149,6 +150,7 @@ public class CreateCMSSignatureRequestParser {
 
     DataObjectInfo dataObjectInfo = parseDataObjectInfo(sigInfoElem);
     boolean securityLayerConform;
+    boolean isPAdESSignature = false;
 
     if (sigInfoElem.hasAttribute(SL_CONFORM_ATTR_NAME)) {
       securityLayerConform =
@@ -157,9 +159,14 @@ public class CreateCMSSignatureRequestParser {
       securityLayerConform = true;
     }
 
+    if (sigInfoElem.hasAttribute(IS_PADES_SIGNATURE_ATTR_NAME)) {
+    	isPAdESSignature = BoolUtils.valueOf(sigInfoElem.getAttribute(IS_PADES_SIGNATURE_ATTR_NAME));
+    }
+    
     return factory.createSingleSignatureInfoCMS(
       dataObjectInfo,
-      securityLayerConform);
+      securityLayerConform,
+      isPAdESSignature);
   }
 
   /**
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/CMSSignatureCreationInvoker.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/CMSSignatureCreationInvoker.java
index 8e9380e..753d769 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/CMSSignatureCreationInvoker.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/CMSSignatureCreationInvoker.java
@@ -154,6 +154,7 @@ public class CMSSignatureCreationInvoker {
 	  CreateCMSSignatureResponse response = new CreateCMSSignatureResponseImpl();
 
 	  boolean isSecurityLayerConform = false;
+	  boolean isPAdESConformRequired = false;
 	  String structure = null;
 	  String mimetype = null;
 	  
@@ -164,6 +165,14 @@ public class CMSSignatureCreationInvoker {
 	  while (singleSignatureInfoIter.hasNext()) {
 		  SingleSignatureInfo singleSignatureInfo = (SingleSignatureInfo) singleSignatureInfoIter.next();
 		  isSecurityLayerConform = singleSignatureInfo.isSecurityLayerConform();
+		  isPAdESConformRequired = singleSignatureInfo.isPAdESConform();
+		  
+		  //PAdES conformity always requires SecurityLayer conformity, because certificates must be included
+		  if (isPAdESConformRequired && !isSecurityLayerConform) {
+			  isSecurityLayerConform = isPAdESConformRequired;
+			  Logger.debug("Set SecurityLayerConformity to 'true' because PAdES conformity is requested");
+			  
+		  }
 		  
 		  
 		  DataObjectInfo dataObjectInfo = singleSignatureInfo.getDataObjectInfo();
@@ -171,7 +180,17 @@ public class CMSSignatureCreationInvoker {
 		  
 		  CMSDataObject dataobject = dataObjectInfo.getDataObject();
 		  MetaInfo metainfo = dataobject.getMetaInfo();
-		  mimetype = metainfo.getMimeType();
+		  
+		  /*TODO: does not set SigningTime in IAIK-MOA request or any other
+		   * API method/parameter when IAIK-MOA API is updated.
+		   * Maybe also update mimetype solution below
+		   */
+		  //does not set mimetype if PAdES conformity is requested
+		  if (!isPAdESConformRequired) {
+			  mimetype = metainfo.getMimeType();
+			  
+		  } else
+			  Logger.debug("PAdES conformity requested. Does not set mimetype into CAdES signature");
 			  
 		  CMSContent content = dataobject.getContent();
 		  InputStream contentIs = null;
@@ -218,7 +237,7 @@ public class CMSSignatureCreationInvoker {
 			    
 		  // get digest algorithm
 		  String digestAlgorithm = getDigestAlgorithm(config, keyGroupID);
-			    
+	  
 		  // create CMSSignatureCreation profile:			    
 		  CMSSignatureCreationProfile profile = new CMSSignatureCreationProfileImpl(
 				  keySet,
@@ -239,39 +258,7 @@ public class CMSSignatureCreationInvoker {
 			  boolean base64 = true;
 			  OutputStream  signedDataStream = signature.getSignature(out, base64);
 					 
-			  // now write the data to be signed to the signedDataStream
-			  
-			  // 
-			  int byteRead;
-			  /*
-			  BigDecimal counter = new BigDecimal("0");
-			  BigDecimal one = new BigDecimal("1");
-			  
-			  ByteArrayOutputStream filteredStream = new ByteArrayOutputStream();
-			  
-			  while ((byteRead=contentIs.read()) >= 0) {
-				  //System.out.println("counterXX: " + counter);
-				  
-				  // Wrong behaviour < 3
-				  // excluded bytes should not be part of the signature as 0 bytes
-				  // they should be not part of the signature at all!
-				  
-//				  if (inRange(counter, dataobject))
-//					  filteredStream.write(0);
-//				  else
-//					  filteredStream.write(byteRead);
-//				  
-				  
-				  // correct behaviour
-				  if (!inRange(counter, dataobject)) {
-					  filteredStream.write(byteRead);
-				  }
-
-				  counter = counter.add(one);
-			  }
-			  byte[] data = filteredStream.toByteArray();
-			  signedDataStream.write(data, 0, data.length);
-			  */
+			  // now write the data to be signed to the signedDataStream			  
 			  // Stream based, this should have a better performance
 			  FilteredOutputStream filteredOuputStream = new FilteredOutputStream(
 					  signedDataStream, 4096, dataobject.getExcludeByteRangeFrom(),
@@ -279,12 +266,7 @@ public class CMSSignatureCreationInvoker {
 			  
 			  IOUtils.copyLarge(contentIs, filteredOuputStream);
 			  filteredOuputStream.flush();
-//			  byte[] buf = new byte[4096];
-//			  int bytesRead;
-//			  while ((bytesRead = contentIs.read(buf)) >= 0) {
-//				  signedDataStream.write(buf, 0, bytesRead);
-//			  } 
-//					 
+ 
 			  // finish SignedData processing by closing signedDataStream
 			  signedDataStream.close();
 			  String base64value = out.toString();
diff --git a/moaSig/moa-sig-lib/src/main/resources/resources/wsdl/MOA-SPSS-2.0.0.wsdl b/moaSig/moa-sig-lib/src/main/resources/resources/wsdl/MOA-SPSS-2.0.0.wsdl
index f11c669..338282e 100644
--- a/moaSig/moa-sig-lib/src/main/resources/resources/wsdl/MOA-SPSS-2.0.0.wsdl
+++ b/moaSig/moa-sig-lib/src/main/resources/resources/wsdl/MOA-SPSS-2.0.0.wsdl
@@ -3,7 +3,7 @@
   Web Service Description for MOA SP/SS 1.4
 -->
 
-	
+	
 	
 		
 	
diff --git a/moaSig/moa-sig-lib/src/main/resources/resources/wsdl/MOA-SPSS-3.1.0.xsd b/moaSig/moa-sig-lib/src/main/resources/resources/wsdl/MOA-SPSS-3.1.0.xsd
new file mode 100644
index 0000000..15f8a2c
--- /dev/null
+++ b/moaSig/moa-sig-lib/src/main/resources/resources/wsdl/MOA-SPSS-3.1.0.xsd
@@ -0,0 +1,814 @@
+
+
+
+	
+	
+	
+	
+	
+		
+			
+				
+			
+		
+	
+	
+		
+			
+			
+				
+					Ermöglichung der Stapelsignatur durch
+						wiederholte Angabe dieses Elements
+				
+				
+					
+						
+							
+								
+									
+								
+							
+						
+					
+					
+					
+				
+			
+		
+	
+	
+	
+	
+		
+			
+				Kardinalität 1..oo erlaubt die Antwort auf eine
+					Stapelsignatur-Anfrage
+			
+			
+				
+					Resultat, falls die Signaturerstellung
+						erfolgreich war
+				
+			
+			
+		
+	
+	
+	
+	
+		
+			
+				
+			
+		
+	
+	
+		
+			
+			
+				
+					Ermöglichung der Stapelsignatur durch
+						wiederholte Angabe dieses Elements
+				
+				
+					
+						
+							
+								
+									
+										
+									
+								
+							
+						
+						
+							
+								
+									
+									
+										
+											Auswahl: Entweder explizite Angabe des
+												Signaturorts sowie ggf. sinnvoller Supplements im Zshg. mit
+												der Signaturumgebung, oder Verweis auf ein benanntes Profil
+											
+										
+										
+										
+									
+								
+							
+						
+					
+					
+				
+			
+		
+	
+	
+	
+		
+			
+				Kardinalität 1..oo erlaubt die Antwort auf eine
+					Stapelsignatur-Anfrage
+			
+			
+				
+					Resultat, falls die Signaturerstellung
+						erfolgreich war
+				
+				
+					
+						
+					
+				
+			
+			
+		
+	
+	
+	
+	
+	
+		
+			
+				
+			
+		
+	
+	
+		
+			
+			
+				
+					Ermöglichung der Stapelsignatur durch
+						wiederholte Angabe dieses Elements
+				
+				
+					
+						
+						
+						
+						
+					
+				
+			
+		
+	
+	
+	
+	
+		
+			
+		
+	
+	
+	
+	
+		
+			
+				
+					
+				
+			
+		
+	
+	
+		
+			
+			
+			
+			
+			
+				
+					mit diesem Profil wird eine Menge von
+						vertrauenswürdigen Wurzelzertifikaten spezifiziert
+					
+				
+			
+		
+	
+	
+	
+	
+		
+			
+				
+					only ds:X509Data and RetrievalMethod is
+						supported; QualifiedCertificate is included as
+						X509Data/any;publicAuthority is included as X509Data/any;
+						SecureSignatureCreationDevice is included as X509Data/any,
+						IssuingCountry is included as X509Data/any
+				
+			
+			
+			
+			
+			
+		
+	
+	
+		
+			
+				
+					only ds:X509Data and RetrievalMethod is
+						supported; QualifiedCertificate is included as
+						X509Data/any;publicAuthority is included as X509Data/any;
+						SecureSignatureCreationDevice is included as X509Data/any,
+						IssuingCountry is included as X509Data/any,
+						TSLInformation is included as X509Data/any
+				
+			
+			
+			
+			
+			
+			
+		
+	
+	
+	
+	
+		
+			
+				
+					
+				
+			
+		
+	
+	
+		
+			
+			
+			
+			
+				
+					mit diesem Profil wird eine Menge von
+						vertrauenswürdigen Wurzelzertifikaten spezifiziert
+					
+				
+			
+		
+	
+	
+	
+	
+		
+			
+				
+			
+		
+	
+	
+		
+			
+			
+			
+			
+				
+					asics or asice
+				
+			
+			
+				
+					mit diesem Profil wird eine Menge von
+						vertrauenswürdigen Wurzelzertifikaten spezifiziert
+					
+				
+			
+		
+	
+	
+	
+	
+		
+			
+		
+	
+	
+		
+			
+			
+			
+		
+	
+	
+	
+	
+		
+			
+		
+	
+	
+		
+			
+				
+					only ds:X509Data and RetrievalMethod is
+						supported; QualifiedCertificate is included as
+						X509Data/any;publicAuthority is included as X509Data/any;
+						SecureSignatureCreationDevice is included as X509Data/any,
+						IssuingCountry is included as X509Data/any
+				
+			
+			
+			
+			
+			
+			
+		
+	
+	
+	
+	
+	
+		
+			
+			
+			
+				
+					
+						
+						
+					
+				
+			
+			
+				
+				
+			
+			
+				
+					
+						
+							
+								Pro dsig:Reference-Element in der zu
+									überprüfenden XML-Signatur muss hier ein
+									ReferenceInfo-Element erscheinen. Die Reihenfolge der einzelnen
+									ReferenceInfo Elemente entspricht jener der dsig:Reference
+									Elemente in der XML-Signatur.
+							
+						
+					
+					
+				
+			
+			
+			
+				
+					mit diesem Profil wird eine Menge von
+						vertrauenswürdigen Wurzelzertifikaten spezifiziert
+					
+				
+			
+		
+	
+	
+	
+	
+		
+			
+				
+					only ds:X509Data and ds:RetrievalMethod is
+						supported; QualifiedCertificate is included as X509Data/any;
+						PublicAuthority is included as X509Data/any;
+						SecureSignatureCreationDevice is included as X509Data/any,
+						IssuingCountry is included as X509Data/any
+				
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+	
+	
+		
+			
+				
+					only ds:X509Data and ds:RetrievalMethod is
+						supported; QualifiedCertificate is included as X509Data/any;
+						PublicAuthority is included as X509Data/any;
+						SecureSignatureCreationDevice is included as X509Data/any,
+						IssuingCountry is included as X509Data/any
+				
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+	
+	
+		
+	
+	
+		
+			
+				
+					
+						
+							
+							
+						
+					
+				
+				
+			
+		
+	
+	
+		
+			
+			
+			
+		
+	
+	
+		
+			
+				
+					
+				
+			
+		
+	
+	
+		
+			
+				
+					
+						
+					
+				
+			
+			
+				
+					Auswahl: Entweder explizite Angabe EINER
+						Transformationskette inklusive ggf. sinnvoller Supplements oder
+						Verweis auf ein benanntes Profil
+				
+				
+				
+			
+		
+		
+			
+				
+					
+					
+				
+			
+		
+	
+	
+		
+			
+				
+					
+						
+					
+				
+			
+		
+		
+			
+				
+					
+					
+				
+			
+		
+	
+	
+		
+			
+			
+		
+	
+	
+		
+			
+			
+		
+	
+	
+		
+			
+			
+				
+					
+						Resultat, falls die Signaturerstellung
+							erfolgreich war
+					
+				
+				
+			
+		
+	
+	
+		
+			
+			
+		
+	
+	
+		
+			
+			
+		
+	
+	
+		
+			
+				
+					
+				
+			
+		
+	
+	
+		
+			
+			
+		
+	
+	
+		
+			
+			
+		
+	
+	
+		
+			
+			
+		
+	
+	
+		
+			
+			
+		
+	
+	
+		
+			
+				
+					
+					
+				
+			
+		
+	
+	
+		
+			
+				
+					
+					
+				
+			
+		
+	
+	
+		
+			
+				
+					
+					
+				
+			
+		
+	
+	
+		
+			
+				
+					
+					
+					
+				
+			
+		
+	
+	
+	
+		
+			Resultat, falls die Signaturerstellung gescheitert
+				ist
+		
+	
+	
+		
+			
+			
+		
+	
+	
+	
+		
+	
+	
+		
+			
+			
+		
+	
+	
+		
+	
+	
+		
+			
+		
+	
+	
+		
+			
+				
+			
+		
+	
+	
+		
+			
+			
+			
+		
+	
+	
+		
+			
+				
+					
+					
+				
+			
+		
+	
+	
+		
+			
+				
+			
+		
+	
+	
+		
+			
+				
+					
+					
+					
+				
+				
+			
+		
+	
+	
+		
+			
+				Ein oder mehrere Transformationswege können von
+					der Applikation an MOA mitgeteilt werden. Die zu prüfende Signatur
+					hat zumindest einem dieser Transformationswege zu entsprechen. Die
+					Angabe kann explizit oder als Profilbezeichner erfolgen.
+				
+			
+			
+			
+				
+					Profilbezeichner für einen Transformationsweg
+					
+				
+			
+		
+	
+	
+		
+			
+				
+					
+						
+						
+					
+				
+			
+		
+	
+	
+		
+			
+				
+					
+						
+						
+					
+				
+			
+		
+	
+	
+	
+	
+		
+			
+		
+	
+	
+		
+			
+				
+			
+		
+	
+	
+		
+			
+		
+	
+	
+		
+			
+				
+			
+		
+	
+	
+		
+			
+				Die Angabe des Transformationsparameters
+					(explizit oder als Hashwert) kann unterlassen werden, wenn die
+					Applikation von der Unveränderlichkeit des Inhalts der in
+					"Transformationsparamter", Attribut "URI" angegebenen URI ausgehen
+					kann.
+			
+			
+				
+					Der Transformationsparameter explizit angegeben.
+					
+				
+			
+			
+				
+					Der Hashwert des Transformationsparameters.
+					
+				
+				
+					
+						
+						
+					
+				
+			
+		
+		
+	
+	
+		
+			
+				
+				
+			
+		
+	
+	
+		
+			Explizite Angabe des Transformationswegs
+			
+		
+		
+			
+				
+				
+					
+						Alle impliziten Transformationsparameter, die
+							zum Durchlaufen der oben angeführten Transformationskette
+							bekannt sein müssen, müssen hier angeführt werden. Das
+							Attribut "URI" bezeichnet den Transformationsparameter in exakt
+							jener Weise, wie er in der zu überprüfenden Signatur gebraucht
+							wird.
+					
+				
+			
+		
+	
+	
+	
+	
+		
+			
+				
+				
+			
+		
+	
+
diff --git a/moaSig/moa-sig/src/main/resources/resources/schemas/MOA-SPSS-2.0.0.wsdl b/moaSig/moa-sig/src/main/resources/resources/schemas/MOA-SPSS-2.0.0.wsdl
index f822a52..6e91a2d 100644
--- a/moaSig/moa-sig/src/main/resources/resources/schemas/MOA-SPSS-2.0.0.wsdl
+++ b/moaSig/moa-sig/src/main/resources/resources/schemas/MOA-SPSS-2.0.0.wsdl
@@ -1,7 +1,7 @@
 
 
 
-	
+	
 	
 		
 	
diff --git a/moaSig/moa-sig/src/main/webapp/schemas/MOA-SPSS-3.1.0.xsd b/moaSig/moa-sig/src/main/webapp/schemas/MOA-SPSS-3.1.0.xsd
new file mode 100644
index 0000000..15f8a2c
--- /dev/null
+++ b/moaSig/moa-sig/src/main/webapp/schemas/MOA-SPSS-3.1.0.xsd
@@ -0,0 +1,814 @@
+
+
+
+	
+	
+	
+	
+	
+		
+			
+				
+			
+		
+	
+	
+		
+			
+			
+				
+					Ermöglichung der Stapelsignatur durch
+						wiederholte Angabe dieses Elements
+				
+				
+					
+						
+							
+								
+									
+								
+							
+						
+					
+					
+					
+				
+			
+		
+	
+	
+	
+	
+		
+			
+				Kardinalität 1..oo erlaubt die Antwort auf eine
+					Stapelsignatur-Anfrage
+			
+			
+				
+					Resultat, falls die Signaturerstellung
+						erfolgreich war
+				
+			
+			
+		
+	
+	
+	
+	
+		
+			
+				
+			
+		
+	
+	
+		
+			
+			
+				
+					Ermöglichung der Stapelsignatur durch
+						wiederholte Angabe dieses Elements
+				
+				
+					
+						
+							
+								
+									
+										
+									
+								
+							
+						
+						
+							
+								
+									
+									
+										
+											Auswahl: Entweder explizite Angabe des
+												Signaturorts sowie ggf. sinnvoller Supplements im Zshg. mit
+												der Signaturumgebung, oder Verweis auf ein benanntes Profil
+											
+										
+										
+										
+									
+								
+							
+						
+					
+					
+				
+			
+		
+	
+	
+	
+		
+			
+				Kardinalität 1..oo erlaubt die Antwort auf eine
+					Stapelsignatur-Anfrage
+			
+			
+				
+					Resultat, falls die Signaturerstellung
+						erfolgreich war
+				
+				
+					
+						
+					
+				
+			
+			
+		
+	
+	
+	
+	
+	
+		
+			
+				
+			
+		
+	
+	
+		
+			
+			
+				
+					Ermöglichung der Stapelsignatur durch
+						wiederholte Angabe dieses Elements
+				
+				
+					
+						
+						
+						
+						
+					
+				
+			
+		
+	
+	
+	
+	
+		
+			
+		
+	
+	
+	
+	
+		
+			
+				
+					
+				
+			
+		
+	
+	
+		
+			
+			
+			
+			
+			
+				
+					mit diesem Profil wird eine Menge von
+						vertrauenswürdigen Wurzelzertifikaten spezifiziert
+					
+				
+			
+		
+	
+	
+	
+	
+		
+			
+				
+					only ds:X509Data and RetrievalMethod is
+						supported; QualifiedCertificate is included as
+						X509Data/any;publicAuthority is included as X509Data/any;
+						SecureSignatureCreationDevice is included as X509Data/any,
+						IssuingCountry is included as X509Data/any
+				
+			
+			
+			
+			
+			
+		
+	
+	
+		
+			
+				
+					only ds:X509Data and RetrievalMethod is
+						supported; QualifiedCertificate is included as
+						X509Data/any;publicAuthority is included as X509Data/any;
+						SecureSignatureCreationDevice is included as X509Data/any,
+						IssuingCountry is included as X509Data/any,
+						TSLInformation is included as X509Data/any
+				
+			
+			
+			
+			
+			
+			
+		
+	
+	
+	
+	
+		
+			
+				
+					
+				
+			
+		
+	
+	
+		
+			
+			
+			
+			
+				
+					mit diesem Profil wird eine Menge von
+						vertrauenswürdigen Wurzelzertifikaten spezifiziert
+					
+				
+			
+		
+	
+	
+	
+	
+		
+			
+				
+			
+		
+	
+	
+		
+			
+			
+			
+			
+				
+					asics or asice
+				
+			
+			
+				
+					mit diesem Profil wird eine Menge von
+						vertrauenswürdigen Wurzelzertifikaten spezifiziert
+					
+				
+			
+		
+	
+	
+	
+	
+		
+			
+		
+	
+	
+		
+			
+			
+			
+		
+	
+	
+	
+	
+		
+			
+		
+	
+	
+		
+			
+				
+					only ds:X509Data and RetrievalMethod is
+						supported; QualifiedCertificate is included as
+						X509Data/any;publicAuthority is included as X509Data/any;
+						SecureSignatureCreationDevice is included as X509Data/any,
+						IssuingCountry is included as X509Data/any
+				
+			
+			
+			
+			
+			
+			
+		
+	
+	
+	
+	
+	
+		
+			
+			
+			
+				
+					
+						
+						
+					
+				
+			
+			
+				
+				
+			
+			
+				
+					
+						
+							
+								Pro dsig:Reference-Element in der zu
+									überprüfenden XML-Signatur muss hier ein
+									ReferenceInfo-Element erscheinen. Die Reihenfolge der einzelnen
+									ReferenceInfo Elemente entspricht jener der dsig:Reference
+									Elemente in der XML-Signatur.
+							
+						
+					
+					
+				
+			
+			
+			
+				
+					mit diesem Profil wird eine Menge von
+						vertrauenswürdigen Wurzelzertifikaten spezifiziert
+					
+				
+			
+		
+	
+	
+	
+	
+		
+			
+				
+					only ds:X509Data and ds:RetrievalMethod is
+						supported; QualifiedCertificate is included as X509Data/any;
+						PublicAuthority is included as X509Data/any;
+						SecureSignatureCreationDevice is included as X509Data/any,
+						IssuingCountry is included as X509Data/any
+				
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+	
+	
+		
+			
+				
+					only ds:X509Data and ds:RetrievalMethod is
+						supported; QualifiedCertificate is included as X509Data/any;
+						PublicAuthority is included as X509Data/any;
+						SecureSignatureCreationDevice is included as X509Data/any,
+						IssuingCountry is included as X509Data/any
+				
+			
+			
+			
+			
+			
+			
+			
+			
+			
+			
+		
+	
+	
+		
+	
+	
+		
+			
+				
+					
+						
+							
+							
+						
+					
+				
+				
+			
+		
+	
+	
+		
+			
+			
+			
+		
+	
+	
+		
+			
+				
+					
+				
+			
+		
+	
+	
+		
+			
+				
+					
+						
+					
+				
+			
+			
+				
+					Auswahl: Entweder explizite Angabe EINER
+						Transformationskette inklusive ggf. sinnvoller Supplements oder
+						Verweis auf ein benanntes Profil
+				
+				
+				
+			
+		
+		
+			
+				
+					
+					
+				
+			
+		
+	
+	
+		
+			
+				
+					
+						
+					
+				
+			
+		
+		
+			
+				
+					
+					
+				
+			
+		
+	
+	
+		
+			
+			
+		
+	
+	
+		
+			
+			
+		
+	
+	
+		
+			
+			
+				
+					
+						Resultat, falls die Signaturerstellung
+							erfolgreich war
+					
+				
+				
+			
+		
+	
+	
+		
+			
+			
+		
+	
+	
+		
+			
+			
+		
+	
+	
+		
+			
+				
+					
+				
+			
+		
+	
+	
+		
+			
+			
+		
+	
+	
+		
+			
+			
+		
+	
+	
+		
+			
+			
+		
+	
+	
+		
+			
+			
+		
+	
+	
+		
+			
+				
+					
+					
+				
+			
+		
+	
+	
+		
+			
+				
+					
+					
+				
+			
+		
+	
+	
+		
+			
+				
+					
+					
+				
+			
+		
+	
+	
+		
+			
+				
+					
+					
+					
+				
+			
+		
+	
+	
+	
+		
+			Resultat, falls die Signaturerstellung gescheitert
+				ist
+		
+	
+	
+		
+			
+			
+		
+	
+	
+	
+		
+	
+	
+		
+			
+			
+		
+	
+	
+		
+	
+	
+		
+			
+		
+	
+	
+		
+			
+				
+			
+		
+	
+	
+		
+			
+			
+			
+		
+	
+	
+		
+			
+				
+					
+					
+				
+			
+		
+	
+	
+		
+			
+				
+			
+		
+	
+	
+		
+			
+				
+					
+					
+					
+				
+				
+			
+		
+	
+	
+		
+			
+				Ein oder mehrere Transformationswege können von
+					der Applikation an MOA mitgeteilt werden. Die zu prüfende Signatur
+					hat zumindest einem dieser Transformationswege zu entsprechen. Die
+					Angabe kann explizit oder als Profilbezeichner erfolgen.
+				
+			
+			
+			
+				
+					Profilbezeichner für einen Transformationsweg
+					
+				
+			
+		
+	
+	
+		
+			
+				
+					
+						
+						
+					
+				
+			
+		
+	
+	
+		
+			
+				
+					
+						
+						
+					
+				
+			
+		
+	
+	
+	
+	
+		
+			
+		
+	
+	
+		
+			
+				
+			
+		
+	
+	
+		
+			
+		
+	
+	
+		
+			
+				
+			
+		
+	
+	
+		
+			
+				Die Angabe des Transformationsparameters
+					(explizit oder als Hashwert) kann unterlassen werden, wenn die
+					Applikation von der Unveränderlichkeit des Inhalts der in
+					"Transformationsparamter", Attribut "URI" angegebenen URI ausgehen
+					kann.
+			
+			
+				
+					Der Transformationsparameter explizit angegeben.
+					
+				
+			
+			
+				
+					Der Hashwert des Transformationsparameters.
+					
+				
+				
+					
+						
+						
+					
+				
+			
+		
+		
+	
+	
+		
+			
+				
+				
+			
+		
+	
+	
+		
+			Explizite Angabe des Transformationswegs
+			
+		
+		
+			
+				
+				
+					
+						Alle impliziten Transformationsparameter, die
+							zum Durchlaufen der oben angeführten Transformationskette
+							bekannt sein müssen, müssen hier angeführt werden. Das
+							Attribut "URI" bezeichnet den Transformationsparameter in exakt
+							jener Weise, wie er in der zu überprüfenden Signatur gebraucht
+							wird.
+					
+				
+			
+		
+	
+	
+	
+	
+		
+			
+				
+				
+			
+		
+	
+
-- 
cgit v1.2.3


From 2ab630ca072185a6037254a82068c5ace2481581 Mon Sep 17 00:00:00 2001
From: Thomas Lenz 
Date: Fri, 8 Sep 2017 14:26:26 +0200
Subject: add scheme for eIDAS specific SAML2 extensions

---
 .../at/gv/egovernment/moaspss/util/Constants.java  |  8 +++++-
 .../resources/schemas/eIDAS_saml_extensions.xsd    | 31 ++++++++++++++++++++++
 2 files changed, 38 insertions(+), 1 deletion(-)
 create mode 100644 moaSig/common/src/main/resources/resources/schemas/eIDAS_saml_extensions.xsd

diff --git a/moaSig/common/src/main/java/at/gv/egovernment/moaspss/util/Constants.java b/moaSig/common/src/main/java/at/gv/egovernment/moaspss/util/Constants.java
index 4640a90..395fcf4 100644
--- a/moaSig/common/src/main/java/at/gv/egovernment/moaspss/util/Constants.java
+++ b/moaSig/common/src/main/java/at/gv/egovernment/moaspss/util/Constants.java
@@ -401,6 +401,11 @@ public interface Constants {
   public static final String ASIC_SCHEMA_LOCATION =
           SCHEMA_ROOT + "asic.xsd";
 
+  /* Prefix and Schema definition for eIDAS specific SAML2 extensions*/
+  public static final String  SAML2_eIDAS_EXTENSIONS_PREFIX = "eidas";
+  public static final String SAML2_eIDAS_EXTENSIONS = "http://eidas.europa.eu/saml-extensions";
+  public static final String SAML2_eIDAS_EXTENSIONS_SCHEMA_LOCATION = SCHEMA_ROOT + "eIDAS_saml_extensions.xsd";
+  
   /**
    * Contains all namespaces and local schema locations for XML schema
    * definitions relevant for MOA. For use in validating XML parsers.
@@ -435,7 +440,8 @@ public interface Constants {
       + (STORKP_NS_URI + " " + STORKP_SCHEMA_LOCATION + " ")
       + (XENC_NS_URI + " " + XENC_SCHEMA_LOCATION + " ")
       + (SAML2_METADATA_URI + " " + SAML2_METADATA_SCHEMA_LOCATION + " ")
-      + (ASIC_URI + " " + ASIC_SCHEMA_LOCATION);
+      + (ASIC_URI + " " + ASIC_SCHEMA_LOCATION)
+      + (SAML2_eIDAS_EXTENSIONS + " " + SAML2_eIDAS_EXTENSIONS_SCHEMA_LOCATION);
 
   /** URN prefix for bPK and wbPK. */
   public static final String URN_PREFIX = "urn:publicid:gv.at";
diff --git a/moaSig/common/src/main/resources/resources/schemas/eIDAS_saml_extensions.xsd b/moaSig/common/src/main/resources/resources/schemas/eIDAS_saml_extensions.xsd
new file mode 100644
index 0000000..76b82a2
--- /dev/null
+++ b/moaSig/common/src/main/resources/resources/schemas/eIDAS_saml_extensions.xsd
@@ -0,0 +1,31 @@
+
+
+
+	
+	
+		
+			
+			
+		
+	
+	
+	
+	
+		
+			
+		
+	
+
+	
+	
+		
+			
+		
+		
+		
+		
+		
+		
+	
+	
+
-- 
cgit v1.2.3


From 7b12b9c698c20b34faa72be882d5f3fb87114483 Mon Sep 17 00:00:00 2001
From: Thomas Lenz 
Date: Fri, 8 Sep 2017 14:27:07 +0200
Subject: add PAdES flag and update IAIK libs

---
 moaSig/libs/iaik_eccelerate-4.02.jar                  | Bin 0 -> 498090 bytes
 moaSig/libs/iaik_eccelerate.jar                       | Bin 359608 -> 0 bytes
 moaSig/libs/iaik_eccelerate_addon-4.02.jar            | Bin 0 -> 91739 bytes
 moaSig/libs/iaik_eccelerate_addon.jar                 | Bin 77097 -> 0 bytes
 moaSig/libs/iaik_eccelerate_cms-4.02.jar              | Bin 0 -> 4819 bytes
 moaSig/libs/iaik_eccelerate_cms.jar                   | Bin 4501 -> 0 bytes
 moaSig/libs/iaik_jce_full-5.5_MOA.jar                 | Bin 0 -> 1283804 bytes
 moaSig/libs/iaik_jce_full.jar                         | Bin 1160539 -> 0 bytes
 moaSig/libs/iaik_moa-2.04.jar                         | Bin 523085 -> 0 bytes
 moaSig/libs/iaik_moa-2.05.jar                         | Bin 0 -> 523141 bytes
 moaSig/libs/iaik_pki_module-1.02.jar                  | Bin 598025 -> 0 bytes
 moaSig/libs/iaik_pki_module-1.04_moa.jar              | Bin 0 -> 598049 bytes
 .../iaik/cmssign/CMSSignatureCreationProfileImpl.java |  11 ++++++++++-
 .../server/invoke/CMSSignatureCreationInvoker.java    |   5 +++--
 .../spss/server/service/SignatureCreationService.java |   7 ++++++-
 release-infos/ext_libs/iaik_jce_full.jar              | Bin 1160539 -> 0 bytes
 16 files changed, 19 insertions(+), 4 deletions(-)
 create mode 100644 moaSig/libs/iaik_eccelerate-4.02.jar
 delete mode 100644 moaSig/libs/iaik_eccelerate.jar
 create mode 100644 moaSig/libs/iaik_eccelerate_addon-4.02.jar
 delete mode 100644 moaSig/libs/iaik_eccelerate_addon.jar
 create mode 100644 moaSig/libs/iaik_eccelerate_cms-4.02.jar
 delete mode 100644 moaSig/libs/iaik_eccelerate_cms.jar
 create mode 100644 moaSig/libs/iaik_jce_full-5.5_MOA.jar
 delete mode 100644 moaSig/libs/iaik_jce_full.jar
 delete mode 100644 moaSig/libs/iaik_moa-2.04.jar
 create mode 100644 moaSig/libs/iaik_moa-2.05.jar
 delete mode 100644 moaSig/libs/iaik_pki_module-1.02.jar
 create mode 100644 moaSig/libs/iaik_pki_module-1.04_moa.jar
 delete mode 100644 release-infos/ext_libs/iaik_jce_full.jar

diff --git a/moaSig/libs/iaik_eccelerate-4.02.jar b/moaSig/libs/iaik_eccelerate-4.02.jar
new file mode 100644
index 0000000..9727ab3
Binary files /dev/null and b/moaSig/libs/iaik_eccelerate-4.02.jar differ
diff --git a/moaSig/libs/iaik_eccelerate.jar b/moaSig/libs/iaik_eccelerate.jar
deleted file mode 100644
index 0ec3110..0000000
Binary files a/moaSig/libs/iaik_eccelerate.jar and /dev/null differ
diff --git a/moaSig/libs/iaik_eccelerate_addon-4.02.jar b/moaSig/libs/iaik_eccelerate_addon-4.02.jar
new file mode 100644
index 0000000..75446fc
Binary files /dev/null and b/moaSig/libs/iaik_eccelerate_addon-4.02.jar differ
diff --git a/moaSig/libs/iaik_eccelerate_addon.jar b/moaSig/libs/iaik_eccelerate_addon.jar
deleted file mode 100644
index bd57ff2..0000000
Binary files a/moaSig/libs/iaik_eccelerate_addon.jar and /dev/null differ
diff --git a/moaSig/libs/iaik_eccelerate_cms-4.02.jar b/moaSig/libs/iaik_eccelerate_cms-4.02.jar
new file mode 100644
index 0000000..b788f05
Binary files /dev/null and b/moaSig/libs/iaik_eccelerate_cms-4.02.jar differ
diff --git a/moaSig/libs/iaik_eccelerate_cms.jar b/moaSig/libs/iaik_eccelerate_cms.jar
deleted file mode 100644
index 3c9ac83..0000000
Binary files a/moaSig/libs/iaik_eccelerate_cms.jar and /dev/null differ
diff --git a/moaSig/libs/iaik_jce_full-5.5_MOA.jar b/moaSig/libs/iaik_jce_full-5.5_MOA.jar
new file mode 100644
index 0000000..4f0e903
Binary files /dev/null and b/moaSig/libs/iaik_jce_full-5.5_MOA.jar differ
diff --git a/moaSig/libs/iaik_jce_full.jar b/moaSig/libs/iaik_jce_full.jar
deleted file mode 100644
index 736981a..0000000
Binary files a/moaSig/libs/iaik_jce_full.jar and /dev/null differ
diff --git a/moaSig/libs/iaik_moa-2.04.jar b/moaSig/libs/iaik_moa-2.04.jar
deleted file mode 100644
index 98ee49d..0000000
Binary files a/moaSig/libs/iaik_moa-2.04.jar and /dev/null differ
diff --git a/moaSig/libs/iaik_moa-2.05.jar b/moaSig/libs/iaik_moa-2.05.jar
new file mode 100644
index 0000000..51dc3f0
Binary files /dev/null and b/moaSig/libs/iaik_moa-2.05.jar differ
diff --git a/moaSig/libs/iaik_pki_module-1.02.jar b/moaSig/libs/iaik_pki_module-1.02.jar
deleted file mode 100644
index cc32a74..0000000
Binary files a/moaSig/libs/iaik_pki_module-1.02.jar and /dev/null differ
diff --git a/moaSig/libs/iaik_pki_module-1.04_moa.jar b/moaSig/libs/iaik_pki_module-1.04_moa.jar
new file mode 100644
index 0000000..e9bec14
Binary files /dev/null and b/moaSig/libs/iaik_pki_module-1.04_moa.jar differ
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/iaik/cmssign/CMSSignatureCreationProfileImpl.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/iaik/cmssign/CMSSignatureCreationProfileImpl.java
index 2dc047a..a465049 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/iaik/cmssign/CMSSignatureCreationProfileImpl.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/iaik/cmssign/CMSSignatureCreationProfileImpl.java
@@ -61,6 +61,7 @@ public class CMSSignatureCreationProfileImpl
   private boolean includeData;
   /** Digest Method algorithm  */
   private String digestMethod;
+  private boolean isPAdESConform;
   
   
   /**
@@ -77,13 +78,15 @@ public class CMSSignatureCreationProfileImpl
     List signedProperties,
     boolean securityLayerConform,
     boolean includeData,
-    String mimeType) {
+    String mimeType,
+    boolean isPAdESConform) {
 	  this.keySet = keySet;
 	  this.signedProperties = signedProperties;
 	  this.securityLayerConform = securityLayerConform;
 	  this.includeData = includeData;
 	  this.mimeType = mimeType;
 	  this.digestMethod = digestMethod;
+	  this.isPAdESConform = isPAdESConform;
 
   }
 
@@ -246,4 +249,10 @@ public class CMSSignatureCreationProfileImpl
 	return this.includeData;
   }
 
+
+@Override
+public boolean isPAdESConform() {
+	return this.isPAdESConform;
+}
+
 }
diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/CMSSignatureCreationInvoker.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/CMSSignatureCreationInvoker.java
index 753d769..4050ebc 100644
--- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/CMSSignatureCreationInvoker.java
+++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/CMSSignatureCreationInvoker.java
@@ -181,7 +181,7 @@ public class CMSSignatureCreationInvoker {
 		  CMSDataObject dataobject = dataObjectInfo.getDataObject();
 		  MetaInfo metainfo = dataobject.getMetaInfo();
 		  
-		  /*TODO: does not set SigningTime in IAIK-MOA request or any other
+		  /*TODO: do not set SigningTime in IAIK-MOA request or any other
 		   * API method/parameter when IAIK-MOA API is updated.
 		   * Maybe also update mimetype solution below
 		   */
@@ -245,7 +245,8 @@ public class CMSSignatureCreationInvoker {
 				  signedProperties,
 				  isSecurityLayerConform, 
 				  includeData, 
-				  mimetype);
+				  mimetype,
+				  isPAdESConformRequired);
 		  
 		  // create CMSSignature from the CMSSignatureCreationModule
 		  // build the additionalSignedProperties
diff --git a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/service/SignatureCreationService.java b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/service/SignatureCreationService.java
index 4effec6..839d8ba 100644
--- a/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/service/SignatureCreationService.java
+++ b/moaSig/moa-sig/src/main/java/at/gv/egovernment/moa/spss/server/service/SignatureCreationService.java
@@ -116,6 +116,7 @@ public class SignatureCreationService {
 		  Logger.trace(">>> creating Signature");
 	      // invoke the core logic
 	      //responseObj = PDFASInvoker.getInstance().createPDFSignature(requestObj, context.getTransactionID());
+		  		  
 		  Logger.trace("<<< created Signature");
 
 		  Logger.trace(">>> building Response");
@@ -127,7 +128,11 @@ public class SignatureCreationService {
 	      context.setResponse(response[0]);
 		  Logger.trace("---- Leaving SignatureCreationService");
 		  
+		  //TODO: remove if PDF signatures are supported
+		  throw new MOASystemException("Create PAdES signatures is currently NOT supported by MOA-SIG", null);
 
+		  //return response;
+		  
 	    } catch (MOAException e) {
 	      AxisFault fault = AxisFault.makeFault(e);
 	      fault.setFaultDetail(new Element[] { e.toErrorResponse()});
@@ -143,7 +148,7 @@ public class SignatureCreationService {
 	      throw fault;
 	    }
 
-	    return response;
+
 	  }
 	
 	 /**
diff --git a/release-infos/ext_libs/iaik_jce_full.jar b/release-infos/ext_libs/iaik_jce_full.jar
deleted file mode 100644
index 736981a..0000000
Binary files a/release-infos/ext_libs/iaik_jce_full.jar and /dev/null differ
-- 
cgit v1.2.3


From 51e9d8d004d44f0c59f7c60cc9c49044df7579ed Mon Sep 17 00:00:00 2001
From: Thomas Lenz 
Date: Fri, 8 Sep 2017 14:27:31 +0200
Subject: change version and update handbook

---
 moaSig/build.gradle                              |   2 +-
 moaSig/common/build.gradle                       |   2 +-
 release-infos/ext_libs/iaik_jce_full-5.5_MOA.jar | Bin 0 -> 1283804 bytes
 release-infos/handbook/handbook/usage/usage.html |   4 +-
 release-infos/readme_3.1.1.txt                   |  71 +++++++++++++++++++++++
 5 files changed, 75 insertions(+), 4 deletions(-)
 create mode 100644 release-infos/ext_libs/iaik_jce_full-5.5_MOA.jar
 create mode 100644 release-infos/readme_3.1.1.txt

diff --git a/moaSig/build.gradle b/moaSig/build.gradle
index d1bf609..5fcbea9 100644
--- a/moaSig/build.gradle
+++ b/moaSig/build.gradle
@@ -21,7 +21,7 @@ subprojects {
         testCompile 'junit:junit:4.8.2'
     }
 
-    version = '3.1.1-Snapshot'
+    version = '3.1.1'
 
     jar { manifest.attributes provider: 'EGIZ', 'Specification-Version': getCheckedOutGitCommitHash(), 'Implementation-Version': project.version  }
 }
diff --git a/moaSig/common/build.gradle b/moaSig/common/build.gradle
index 9b88188..ac18e8f 100644
--- a/moaSig/common/build.gradle
+++ b/moaSig/common/build.gradle
@@ -1,5 +1,5 @@
 dependencies {
-	compile files('../libs/iaik_jce_full.jar')
+	compile files('../libs/iaik_jce_full-5.5_MOA.jar')
 
 	compile 'org.slf4j:slf4j-api:1.7.12'
 	compile 'xerces:xercesImpl:2.11.0'
diff --git a/release-infos/ext_libs/iaik_jce_full-5.5_MOA.jar b/release-infos/ext_libs/iaik_jce_full-5.5_MOA.jar
new file mode 100644
index 0000000..4f0e903
Binary files /dev/null and b/release-infos/ext_libs/iaik_jce_full-5.5_MOA.jar differ
diff --git a/release-infos/handbook/handbook/usage/usage.html b/release-infos/handbook/handbook/usage/usage.html
index df8caea..6e42d4a 100644
--- a/release-infos/handbook/handbook/usage/usage.html
+++ b/release-infos/handbook/handbook/usage/usage.html
@@ -98,8 +98,8 @@
   

CreateCMSSignatureRequest.Base64Content.xml ist ein einfacher XML-Request zur Erzeugung einer CAdES-Signatur. Sein Aufbau wird nachfolgend analysiert:

  <KeyIdentifier>KG_allgemein</KeyIdentifier> 

KG_allgemein bezeichnet eine Schlüsselgruppe, aus der SS einen Signaturschlüssel selektieren soll und muss einer in der SP/SS-Konfigurationsdatei definierten Schlüsselgruppe entsprechen.

-
  <SingleSignatureInfo SecurityLayerConformity="true">
-

Für jedes SingleSignatureInfoElement wird eine eigene CMS/CAdES-Signatur erzeugt. Wird das Attribut SecurityLayerConformity auf true gesetzt, dann wird eine CAdES-Signatur gemäß Security-Layer Spezifikation erzeugt; d.h. es werden signierte Properties (Zeitpunkt der Signaturerstellung, das für die Signaturüberprüfung zu verwendende Zertifikat, Metainformationen zu den signierten Datenobjekten).

+
  <SingleSignatureInfo SecurityLayerConformity="true" PAdESConformity="true">
+

Für jedes SingleSignatureInfoElement wird eine eigene CMS/CAdES-Signatur erzeugt. Wird das Attribut SecurityLayerConformity auf true gesetzt, dann wird eine CAdES-Signatur gemäß Security-Layer Spezifikation erzeugt; d.h. es werden signierte Properties (Zeitpunkt der Signaturerstellung, das für die Signaturüberprüfung zu verwendende Zertifikat, Metainformationen zu den signierten Datenobjekten). Wird das Attribut PAdESConformity auf true gesetzt, dann wird eine CAdES-Signature entsprechend dem PAdES Standard erzeugt (die CAdES Signatur enthält in diesem Fall keinen Signaturzeitpunkt und keinen MimeType da diese Informationen im PDF eingebettet sind oder durch das PDF vorgegeben werden).

  <DataObjectInfo Structure="enveloping">
 	  <DataObject>
 	    <MetaInfo>
diff --git a/release-infos/readme_3.1.1.txt b/release-infos/readme_3.1.1.txt
new file mode 100644
index 0000000..3f2feab
--- /dev/null
+++ b/release-infos/readme_3.1.1.txt
@@ -0,0 +1,71 @@
+Releaseinfos zu MOA-SPSS Version 3.1.1
+   - Änderungen:
+     - Flag für PAdES Kompatibilität im CreateCMSSignatureRequest
+     - Updates von Bibliotheken zur Stabilitätsverbesserung
+     - Logging opitmiert 
+   
+-------------------------------------------------------------------------------
+  Update einer bestehenden MOA-SPSS-Installation auf Version 3.1.1
+-------------------------------------------------------------------------------
+Es gibt zwei Moeglichkeiten (im Folgenden als "Update Variante A" und 
+"Update Variante B" bezeichnet), das Update von MOA-SPSS auf Version
+3.1.1 durchzufuehren. Update Variante A geht dabei den Weg ueber eine 
+vorangestellte Neuinstallation, waehrend Variante B direkt eine  
+bestehende Installation aktualisiert.
+
+Folgende Begriffe werden verwendet:
+
+JAVA_HOME bezeichnet das Wurzelverzeichnis der JDK-Installation
+
+CATALINA_HOME bezeichnet das Wurzelverzeichnis der Tomcat-Installation
+
+MOA_SPSS_WAR bezeichnet die Applikation MOA-SPSS in der Datei moa-spss-3.1.1.war
+
+MOA_SPSS_HANDBOOK bezeichnet das Archiv mit dem Handbuch und der Default Konfiguration
+
+--------------------------
+Update Variante A 
+--------------------------
+
+1.)	Erstellen Sie eine Sicherungskopie des kompletten Tomcat-Verzeichnisses
+	Ihrer MOA-SPSS-Installation.
+	
+2.)	Fuehren Sie eine Neuinstallation gemaess Handbuch durch.
+
+3.)	Kopieren Sie etwaige Konfigurationsdateien, Trust-Profile und Key-Stores, 
+	die Sie aus Ihrer alten Installation beibehalten moechten, aus Ihrer
+	Sicherungskopie in die entsprechenden Verzeichnisse der neuen
+	Installation.
+
+		
+--------------------------
+Update Variante B 
+--------------------------
+
+1.)	Erstellen Sie eine Sicherungskopie des kompletten Tomcat-Verzeichnisses
+	Ihrer MOA-SPSS-Installation.
+	
+3.)	Erstellen Sie eine Sicherungskopie aller "*.jar"-Dateien im Verzeichnis
+	JAVA_HOME\jre\lib\ext und loeschen Sie diese Dateien danach.
+	
+4.)	Kopieren Sie alle Dateien aus dem Verzeichnis MOA_SPSS_HANDBOOK\ext_libs in das 
+  	Verzeichnis	JAVA_HOME\jre\lib\ext
+
+5.)	Erstellen Sie eine Sicherungskopie aller "*.jar"-Dateien im Verzeichnis
+	CATALINA_HOME\endorsed und loeschen Sie diese Dateien danach.
+	
+6.)	Kopieren Sie die Dateien aus dem Verzeichnis MOA_SPSS_HANDBOOK\endorsed_libs
+	in das Verzeichnis CATALINA_HOME\endorsed. Ueberschreiben Sie dabei
+	etwaige gleichnamige Dateien. Die dort eventuell vorhandene Datei 
+  	xmlParserAPIs.jar ist zu loechen.
+	
+7.) Loeschen Sie das Verzeichnis CATALINA_HOME\webapps\moa-spss.
+
+8.) Ersetzen Sie die Datei CATALINA_HOME\webapps\moa-spss.war durch die Datei 
+	MOA_SPSS_WAR.
+		
+9.) Loeschen Sie das Verzeichnis CATALINA_HOME\work.
+
+10.) Falls sie MOA-SP mit Trust-Status List (TSL) Unterstützung betreiben passen Sie
+  die Konfiguration entsprechend der TSL Konfiguration im Handbuch an. 
+					
\ No newline at end of file
-- 
cgit v1.2.3


From ccb1e1ed1404e0dc1f3ff026e888f4c105e1bc05 Mon Sep 17 00:00:00 2001
From: Thomas Lenz 
Date: Fri, 8 Sep 2017 14:30:15 +0200
Subject: switch version to next snapshot

---
 moaSig/build.gradle | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/moaSig/build.gradle b/moaSig/build.gradle
index 5fcbea9..fc5633b 100644
--- a/moaSig/build.gradle
+++ b/moaSig/build.gradle
@@ -21,7 +21,7 @@ subprojects {
         testCompile 'junit:junit:4.8.2'
     }
 
-    version = '3.1.1'
+    version = '3.1.2-Snapshot'
 
     jar { manifest.attributes provider: 'EGIZ', 'Specification-Version': getCheckedOutGitCommitHash(), 'Implementation-Version': project.version  }
 }
-- 
cgit v1.2.3