From c6f686485e50e8de112445da07d98b93278b09d0 Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Tue, 10 Jan 2017 15:10:15 +0100 Subject: MOA-SP with new TSL RC1 --- .../resources/resources/schemas/MOA-SPSS-3.0.0.xsd | 333 ++++++++++-- moaSig/handbook/conf/moa-spss/log4j.properties | 4 +- .../conf/moa-spss/sp.minimum_with_tsl.config.xml | 4 + moaSig/handbook/conf/moa-spss/svaconfig.example | 74 +++ ...rNo79A1C51E6E5FE7CCD8BF6D097ECA55277868B2C6.cer | 35 ++ ...80714.SerNo1000000000005A04B848690925470777.cer | Bin 0 -> 1024 bytes moaSig/handbook/handbook/install/install.html | 5 +- moaSig/libs/iaik_pki_module.jar | Bin 587551 -> 587665 bytes moaSig/libs/iaik_xades.jar | Bin 312190 -> 312455 bytes moaSig/libs/iaik_xsect.jar | Bin 422263 -> 422253 bytes .../VerifyASICSignatureResponseBuilder.java | 7 +- moaSig/moa-sig-lib/build.gradle | 3 +- .../moa/spss/api/impl/SignerInfoImpl.java | 2 +- .../moa/spss/api/impl/TslInfosImpl.java | 7 +- .../server/config/ConfigurationPartsBuilder.java | 11 +- .../spss/server/config/ConfigurationProvider.java | 9 +- .../moa/spss/server/config/TrustProfile.java | 35 +- .../moa/spss/tsl/TSLServiceFactory.java | 6 +- .../moa/spss/util/CertificateUtils.java | 20 +- moaSig/moa-sig/src/main/resources/META-INF/aop.xml | 19 +- .../resources/schemas/MOA-SPSS-2.0.0.wsdl | 189 +++---- .../resources/resources/schemas/MOA-SPSS-2.0.0.xsd | 597 +++++++++++++-------- .../resources/resources/schemas/MOA-SPSS-3.0.0.xsd | 333 ++++++++++-- .../src/main/webapp/WEB-INF/server-config.wsdd | 87 +-- moaSig/moa-sig/src/main/webapp/WEB-INF/web.xml | 113 ++-- .../src/main/webapp/schemas/MOA-SPSS-2.0.0.xsd | 597 +++++++++++++-------- 26 files changed, 1691 insertions(+), 799 deletions(-) create mode 100644 moaSig/handbook/conf/moa-spss/svaconfig.example create mode 100644 moaSig/handbook/conf/moa-spss/tslworking/trust/eu/EC_DIGIT.20131030-20161030.SerNo79A1C51E6E5FE7CCD8BF6D097ECA55277868B2C6.cer create mode 100644 moaSig/handbook/conf/moa-spss/tslworking/trust/eu/Pierre_Damas_(Signature).20130717-20180714.SerNo1000000000005A04B848690925470777.cer diff --git a/moaSig/common/src/main/resources/resources/schemas/MOA-SPSS-3.0.0.xsd b/moaSig/common/src/main/resources/resources/schemas/MOA-SPSS-3.0.0.xsd index 49255d1..4916b89 100644 --- a/moaSig/common/src/main/resources/resources/schemas/MOA-SPSS-3.0.0.xsd +++ b/moaSig/common/src/main/resources/resources/schemas/MOA-SPSS-3.0.0.xsd @@ -1,12 +1,10 @@ - + - - + + @@ -19,7 +17,8 @@ - Ermöglichung der Stapelsignatur durch wiederholte Angabe dieses Elements + Ermöglichung der Stapelsignatur durch + wiederholte Angabe dieses Elements @@ -36,23 +35,25 @@ - + - Kardinalität 1..oo erlaubt die Antwort auf eine Stapelsignatur-Anfrage + Kardinalität 1..oo erlaubt die Antwort auf eine + Stapelsignatur-Anfrage - Resultat, falls die Signaturerstellung erfolgreich war + Resultat, falls die Signaturerstellung + erfolgreich war - - + + @@ -65,7 +66,8 @@ - Ermöglichung der Stapelsignatur durch wiederholte Angabe dieses Elements + Ermöglichung der Stapelsignatur durch + wiederholte Angabe dieses Elements @@ -84,7 +86,10 @@ - Auswahl: Entweder explizite Angabe des Signaturorts sowie ggf. sinnvoller Supplements im Zshg. mit der Signaturumgebung, oder Verweis auf ein benanntes Profil + Auswahl: Entweder explizite Angabe des + Signaturorts sowie ggf. sinnvoller Supplements im Zshg. mit + der Signaturumgebung, oder Verweis auf ein benanntes Profil + @@ -98,15 +103,17 @@ - + - Kardinalität 1..oo erlaubt die Antwort auf eine Stapelsignatur-Anfrage + Kardinalität 1..oo erlaubt die Antwort auf eine + Stapelsignatur-Anfrage - Resultat, falls die Signaturerstellung erfolgreich war + Resultat, falls die Signaturerstellung + erfolgreich war @@ -118,8 +125,43 @@ - - + + + + + + + + + + + + + + + Ermöglichung der Stapelsignatur durch + wiederholte Angabe dieses Elements + + + + + + + + + + + + + + + + + + + + + @@ -132,34 +174,155 @@ + - mit diesem Profil wird eine Menge von vertrauenswürdigen Wurzelzertifikaten spezifiziert + 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 + + + + + + + + + + + + + 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 + + + - - + + + @@ -177,7 +340,11 @@ - 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. + 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. @@ -187,18 +354,24 @@ - mit diesem Profil wird eine Menge von vertrauenswürdigen Wurzelzertifikaten spezifiziert + 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, TSLInformation 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 @@ -207,6 +380,30 @@ + + + + + + + + + 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 + + + + + + + + + + + @@ -254,7 +451,9 @@ - Auswahl: Entweder explizite Angabe EINER Transformationskette inklusive ggf. sinnvoller Supplements oder Verweis auf ein benanntes Profil + Auswahl: Entweder explizite Angabe EINER + Transformationskette inklusive ggf. sinnvoller Supplements oder + Verweis auf ein benanntes Profil @@ -300,24 +499,30 @@ + + + + + + + Resultat, falls die Signaturerstellung + erfolgreich war + + + + + + - - - - - - - - @@ -335,6 +540,24 @@ + + + + + + + + + + + + + + + + + + @@ -376,10 +599,11 @@ - + - Resultat, falls die Signaturerstellung gescheitert ist + Resultat, falls die Signaturerstellung gescheitert + ist @@ -388,7 +612,7 @@ - + @@ -452,12 +676,17 @@ - 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. + 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 + Profilbezeichner für einen Transformationsweg + @@ -515,16 +744,22 @@ - 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. + 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 Transformationsparameter explizit angegeben. + - Der Hashwert des Transformationsparameters. + Der Hashwert des Transformationsparameters. + @@ -546,14 +781,20 @@ - Explizite Angabe des Transformationswegs + 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. + 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/conf/moa-spss/log4j.properties b/moaSig/handbook/conf/moa-spss/log4j.properties index 023cdc0..562d450 100644 --- a/moaSig/handbook/conf/moa-spss/log4j.properties +++ b/moaSig/handbook/conf/moa-spss/log4j.properties @@ -7,8 +7,8 @@ org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.Log4jFacto # Configure root logger and loggers for moa-spss log4j.rootLogger=info, stdout -log4j.logger.at.gv.egovernment.moa.spss.server=info, moaspss -log4j.logger.at.gv.egovernment.moa.spss=warn, moaspss +log4j.logger.at.gv.egovernment.moa.spss=info, moaspss +log4j.logger.at.gv.egovernment.moa.sig=info, moaspss log4j.logger.iaik.server=warn, moaspss # Configure the 'stdout' appender to write logging output to the console diff --git a/moaSig/handbook/conf/moa-spss/sp.minimum_with_tsl.config.xml b/moaSig/handbook/conf/moa-spss/sp.minimum_with_tsl.config.xml index 2a8cdd0..06b1647 100644 --- a/moaSig/handbook/conf/moa-spss/sp.minimum_with_tsl.config.xml +++ b/moaSig/handbook/conf/moa-spss/sp.minimum_with_tsl.config.xml @@ -129,6 +129,10 @@ 86400000 tslworking + + http://uri.etsi.org/TrstSvc/Svctype/CA/QC,http://uri.etsi.org/TrstSvc/Svctype/TSA/QTST + http://uri.etsi.org/TrstSvc/TrustedList/SvcInfoExt/QCWithSSCD,http://uri.etsi.org/TrstSvc/TrustedList/SvcInfoExt/QCWithQSCD + --> diff --git a/moaSig/handbook/conf/moa-spss/svaconfig.example b/moaSig/handbook/conf/moa-spss/svaconfig.example new file mode 100644 index 0000000..cdb972f --- /dev/null +++ b/moaSig/handbook/conf/moa-spss/svaconfig.example @@ -0,0 +1,74 @@ +#Fri Jul 27 14:18:37 CEST 2012 +# +# Format [key]=[value] +# +# Note that if an '=' is used in a key or value it has to be escaped: "\=" + +##################### WebConfig ####################### + +#The path to the sva configuration file +#svaconfig=/data/sigval/incoming/svaconfig + +#The directories where to store the collected testdata +#testdir=/data/sigval/incoming/test/ + +#The basepath for signature validation +#basepath= + +###################################################### + +#The path prefix for all file system locations +#pathprefix=/home/afitzek/server/moa-spss/apache-tomcat-8.0.0-RC3/conf/moa-spss/sva/ + +#The file where the xmldsig core schema is located +#xmlschemaloc=example/schema/xmldsig-core-schema.xsd + +#The root folder where truststore and certstore are created later on +#certroot=example/certs + +#The folder containing the trustanchors +#trustanchorloc=example/keys_and_certs + +#The folder containing the timestampauthority trustanchors +#tsttrustanchorloc=example/keys_and_certs + +#The folder containing alternative revocation information (comment out to use +#infos contained in the certificate) +#altdp= + +#The maximum age of a revocation information of a end user certificate in hours +#endusercertgrace=4382 + +#The maximum age of a revocation information for a ca certificate in hours +#cacertgrace=4382 + +#tstcoherencetolerance=10 + +#The maximum time difference (in hours) the signing-time property and a +#time stamp +#timestampdelay=24 + +# Defines the forbidden hashing algorithms and the inception date +# Format: {, };{, }... +#hashconstraint={md5, 2000-08-08};{sha1, 2016-08-08} + +# Defines the forbidden hashing algorithms for CA Certificates and the inception date +# Format: {, };{, }... +#cahashconstraint={md5,2000-08-08};{sha1, 2012-08-05} + +# Defines the minimum required key lengths +# Format: {, ,};{...}... +#keylenconstraint={rsa, 1024, 2000-08-08} + +# Defines the minimum required key lengths for CA Certificates +# Format: {, ,};{...}.. +#cakeylenconstraint={rsa,512,2000-08-08} + +# Defines the minimum required key lengths for timestamps +# Format: {, ,};{...}... +#tstkeylenconstraint={rsa, 1024, 2000-08-08} + +# Allows any key usage if set to true, otherwise only dig. signature +allowanykeyusage=true + +chainingmodel=SHELL diff --git a/moaSig/handbook/conf/moa-spss/tslworking/trust/eu/EC_DIGIT.20131030-20161030.SerNo79A1C51E6E5FE7CCD8BF6D097ECA55277868B2C6.cer b/moaSig/handbook/conf/moa-spss/tslworking/trust/eu/EC_DIGIT.20131030-20161030.SerNo79A1C51E6E5FE7CCD8BF6D097ECA55277868B2C6.cer new file mode 100644 index 0000000..6a81c11 --- /dev/null +++ b/moaSig/handbook/conf/moa-spss/tslworking/trust/eu/EC_DIGIT.20131030-20161030.SerNo79A1C51E6E5FE7CCD8BF6D097ECA55277868B2C6.cer @@ -0,0 +1,35 @@ +MIIGgTCCBGmgAwIBAgIUeaHFHm5f58zYv20JfspVJ3hossYwDQYJKoZIhvcNAQEF +BQAwgZIxCzAJBgNVBAYTAk5MMSAwHgYDVQQKExdRdW9WYWRpcyBUcnVzdGxpbmsg +Qi5WLjEoMCYGA1UECxMfSXNzdWluZyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTE3 +MDUGA1UEAxMuUXVvVmFkaXMgRVUgSXNzdWluZyBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eSBHMjAeFw0xMzEwMzAxMjI3MTFaFw0xNjEwMzAxMjI3MTFaMHoxCzAJBgNV +BAYTAkJFMRAwDgYDVQQIEwdCcnVzc2VsMRIwEAYDVQQHEwlFdHRlcmJlZWsxHDAa +BgNVBAoTE0V1cm9wZWFuIENvbW1pc3Npb24xFDASBgNVBAsTC0luZm9ybWF0aWNz +MREwDwYDVQQDDAhFQ19ESUdJVDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAJgkkqvJmZaknQC7c6H6LEr3dGtQ5IfOB3HAZZxOZbb8tdM1KMTO3sAifJC5 +HNFeIWd0727uZj+V5kBrUv36zEs+VxiN1yJBmcJznX4J2TCyPfLk2NRELGu65Vwr +K2Whp8cLLANc+6pQn/5wKh23ehZm21mLXcicZ8whksUGb/h8p6NDe1cElD6veNc9 +CwwK2QT0G0mQiEYchqjJkqyY8HEak8t+CbIC4Rrhyxh3HI1fCK0WKS9JjbPQFbvG +mfpBZuLPYZYzP4UXIqfBVYctyodcSAnSfmy6tySMqpVSRhjRn4KP0EfHlq7Ec+H3 +nwuqxd0M4vTJlZm+XwYJBzEFzFsCAwEAAaOCAeQwggHgMFgGA1UdIARRME8wCAYG +BACLMAECMEMGCisGAQQBvlgBgxAwNTAzBggrBgEFBQcCARYnaHR0cDovL3d3dy5x +dW92YWRpc2dsb2JhbC5ubC9kb2N1bWVudGVuMCQGCCsGAQUFBwEDBBgwFjAKBggr +BgEFBQcLAjAIBgYEAI5GAQEwdAYIKwYBBQUHAQEEaDBmMCoGCCsGAQUFBzABhh5o +dHRwOi8vb2NzcC5xdW92YWRpc2dsb2JhbC5jb20wOAYIKwYBBQUHMAKGLGh0dHA6 +Ly90cnVzdC5xdW92YWRpc2dsb2JhbC5jb20vcXZldWNhZzIuY3J0MEYGCiqGSIb3 +LwEBCQEEODA2AgEBhjFodHRwOi8vdHNhMDEucXVvdmFkaXNnbG9iYWwuY29tL1RT +Uy9IdHRwVHNwU2VydmVyMBMGCiqGSIb3LwEBCQIEBTADAgEBMA4GA1UdDwEB/wQE +AwIGQDAfBgNVHSMEGDAWgBTg+A751LXyf0kjtsN5x6M1H4Z6iDA7BgNVHR8ENDAy +MDCgLqAshipodHRwOi8vY3JsLnF1b3ZhZGlzZ2xvYmFsLmNvbS9xdmV1Y2FnMi5j +cmwwHQYDVR0OBBYEFDc3hgIFJTDamDEeQczI7Lot4uaVMA0GCSqGSIb3DQEBBQUA +A4ICAQAZ8EZ48RgPimWY6s4LjZf0M2MfVJmNh06Jzmf6fzwYtDtQLKzIDk8Ztosq +YpNNBoZIFICMZguGRAP3kuxWvwANmrb5HqyCzXThZVPJTmKEzZNhsDtKu1almYBs +zqX1UV7IgZp+jBZ7FyXzXrXyF1tzXQxHGobDV3AEE8vdzEZtwDGpZJPnEPCBzifd +Y+lrrL2rDBjbv0VeildgOP1SIlL7dh1O9f0T6T4ioS6uSdMt6b/OWjqHadsSpKry +0A6pqfOqJWAhDiueqgVB7vus6o6sSmfG4SW9EWW+BEZ510HjlQU/JL3PPmf+Xs8s +00sm77LJ/T/1hMUuGp6TtDsJe+pPBpCYvpm6xu9GL20CsArFWUeQ2MSnE1jsrb00 +UniCKslcM63pU7I0VcnWMJQSNY28OmnFESPK6s6zqoN0ZMLhwCVnahi6pouBwTb1 +0M9/Anla9xOT42qxiLr14S2lHy18aLiBSQ4zJKNLqKvIrkjewSfW+00VLBYbPTmt +rHpZUWiCGiRS2SviuEmPVbdWvsBUaq7OMLIfBD4nin1FlmYnaG9TVmWkwVYDsFmQ +epwPDqjPs4efAxzkgUFHWn0gQFbqxRocKrCsOvCDHOHORA97UWcThmgvr0Jl7ipv +P4Px//tRp08blfy4GMzYls5WF8f6JaMrNGmpfPasd9NbpBNp7A== \ No newline at end of file diff --git a/moaSig/handbook/conf/moa-spss/tslworking/trust/eu/Pierre_Damas_(Signature).20130717-20180714.SerNo1000000000005A04B848690925470777.cer b/moaSig/handbook/conf/moa-spss/tslworking/trust/eu/Pierre_Damas_(Signature).20130717-20180714.SerNo1000000000005A04B848690925470777.cer new file mode 100644 index 0000000..bc706d9 Binary files /dev/null and b/moaSig/handbook/conf/moa-spss/tslworking/trust/eu/Pierre_Damas_(Signature).20130717-20180714.SerNo1000000000005A04B848690925470777.cer differ diff --git a/moaSig/handbook/handbook/install/install.html b/moaSig/handbook/handbook/install/install.html index 47b64e2..f131f06 100644 --- a/moaSig/handbook/handbook/install/install.html +++ b/moaSig/handbook/handbook/install/install.html @@ -131,7 +131,7 @@
Installation von Apache Tomcat
Installieren Sie Apache Tomcat in ein Verzeichnis, das keine Leerzeichen im Pfadnamen enthält. Verwenden Sie bitte die zu Ihrer Java SE passende Distribution von Tomcat. Das Wurzelverzeichnis der Tomcat-Installation wird im weiteren Verlauf als $CATALINA_HOME bezeichnet.
Entpacken der MOA SP/SS Webservice Distribution
-
Entpacken Sie die Datei moa-spss-2.0.0.zip in ein beliebiges Verzeichnis. Dieses Verzeichnis wird im weiteren Verlauf als $MOA_SPSS_INST bezeichnet.
+
Entpacken Sie die Datei moa-spss-3.0.x.zip in ein beliebiges Verzeichnis. Dieses Verzeichnis wird im weiteren Verlauf als $MOA_SPSS_INST bezeichnet.
Installation der Kryptographiebibliotheken von SIC/IAIK

Kopieren Sie alle Dateien aus dem Verzeichnis $MOA_SPSS_INST/ext in das Verzeichnis $JAVA_HOME/jre/lib/ext. Zusätzlich müssen Sie die Rechtedateien Ihrer Java SE austauschen. Laden Sie dazu die passenden Unlimited Strength @@ -176,6 +176,7 @@

  • Folgende System Properties können gesetzt werden (wird beim Starten von Tomcat der Java Virtual Machine in der Umgebungsvariablen CATALINA_OPTS in der Form -D<name>=<wert> übergeben):
    • moa.spss.server.configuration: Pfad und Name der zentralen Konfigurationsdatei für MOA SP/SS. Eine beispielhafte Konfigurationsdatei finden Sie hier. Wird ein relativer Pfad angegeben, wird dieser relativ zum Startverzeichnis der Java Virtual Machine interpretiert. Ist diese System Property nicht gesetzt, wird automatisch eine im Webarchiv unter WEB-INF/conf enthaltene Default-Konfiguration herangezogen.
    • +
    • iaik.esi.sva.configuration.location: Pfad und Name der Konfigurationsdatei für die extendet PDF Validierung von MOA SP/SS. Eine beispielhafte Konfigurationsdatei finden Sie hier. Wird ein relativer Pfad angegeben, wird dieser relativ zum Startverzeichnis der Java Virtual Machine interpretiert.
    • log4j.configuration: URL der Log4j Konfigurationsdatei. Eine beispielhafte Log4j-Konfiguration finden Sie hier. Wird eine relative URL angegeben, wird diese als File-URL relativ zum Startverzeichnis der Java Virtual Machine interpretiert. Ist diese System Property nicht gesetzt, wird automatisch eine im Webarchiv unter WEB-INF/classes enthaltene Default-Konfiguration herangezogen.
    • moa.node.id: Frei wählbarer Name des Rechner-Knotens, auf dem MOA SP/SS läuft. Der Name des Knotens wird bei Log-Ausgaben von MOA SP/SS angeführt und dient zur Unterscheidung mehrerer gleichzeitig betriebener MOA SP/SS Webservice-Instanzen.
    • javax.net.ssl.trustStore: Pfad und Dateiname des Truststores für vertrauenswürdige SSL Client-Zertifikate (optional; nur, wenn SSL Client-Authentisierung durchgeführt werden soll). Ein relativer Pfad werden relativ zum Startverzeichnis der Java Virtual Machine interpretiert.
    • @@ -385,7 +386,7 @@ INFO | 01 21:25:26,540 | Thread-3 | TID=1049225059594-100 NID=<null>
      Installation von Java SE
      Installieren Sie Java SE in ein beliebiges Verzeichnis. Das Wurzelverzeichnis der Java SE Installation wird im weiteren Verlauf als $JAVA_HOME bezeichnet.
      Entpacken der MOA SP/SS Klassenbibliotheks-Distribution
      -
      Entpacken Sie die Datei moa-spss-2.0.0-lib.zip in ein beliebiges Verzeichnis. Dieses Verzeichnis wird im weiteren Verlauf als $MOA_SPSS_INST bezeichnet.
      +
      Entpacken Sie die Datei moa-spss-3.0.x-lib.zip in ein beliebiges Verzeichnis. Dieses Verzeichnis wird im weiteren Verlauf als $MOA_SPSS_INST bezeichnet.
      Installation der Kryptographiebibliotheken von SIC/IAIK

      Kopieren Sie alle Dateien aus dem Verzeichnis $MOA_SPSS_INST/ext in das Verzeichnis $JAVA_HOME/jre/lib/ext. Zusätzlich müssen Sie die Rechtedateien Ihrer Java SE austauschen. Laden Sie dazu die passenden Unlimited Strength diff --git a/moaSig/libs/iaik_pki_module.jar b/moaSig/libs/iaik_pki_module.jar index 6e13efa..cc07059 100644 Binary files a/moaSig/libs/iaik_pki_module.jar and b/moaSig/libs/iaik_pki_module.jar differ diff --git a/moaSig/libs/iaik_xades.jar b/moaSig/libs/iaik_xades.jar index 2ac459c..20ae685 100644 Binary files a/moaSig/libs/iaik_xades.jar and b/moaSig/libs/iaik_xades.jar differ diff --git a/moaSig/libs/iaik_xsect.jar b/moaSig/libs/iaik_xsect.jar index 1f93b7c..7b05174 100644 Binary files a/moaSig/libs/iaik_xsect.jar and b/moaSig/libs/iaik_xsect.jar differ diff --git a/moaSig/moa-asic/src/main/java/at/gv/egiz/asic/xmlbind/VerifyASICSignatureResponseBuilder.java b/moaSig/moa-asic/src/main/java/at/gv/egiz/asic/xmlbind/VerifyASICSignatureResponseBuilder.java index 856f2d1..50cd261 100644 --- a/moaSig/moa-asic/src/main/java/at/gv/egiz/asic/xmlbind/VerifyASICSignatureResponseBuilder.java +++ b/moaSig/moa-asic/src/main/java/at/gv/egiz/asic/xmlbind/VerifyASICSignatureResponseBuilder.java @@ -128,11 +128,6 @@ public class VerifyASICSignatureResponseBuilder { CheckResult signatureCheck = responseElement.getSignatureCheck(); CheckResult certCheck = responseElement.getCertificateCheck(); - /**TODO: - * add TSL infos to ASIC impl!!!!!! - * - * - */ ResponseBuilderUtils.addSignerInfo( responseDoc, responseElem, @@ -144,7 +139,7 @@ public class VerifyASICSignatureResponseBuilder { signerInfo.isSSCD(), signerInfo.getSSCDSource(), signerInfo.getIssuerCountryCode(), - null); + signerInfo.getTslInfos()); ResponseBuilderUtils.addCodeInfoElement( responseDoc, diff --git a/moaSig/moa-sig-lib/build.gradle b/moaSig/moa-sig-lib/build.gradle index 85ac36c..5cbfba7 100644 --- a/moaSig/moa-sig-lib/build.gradle +++ b/moaSig/moa-sig-lib/build.gradle @@ -15,11 +15,12 @@ dependencies { compile 'commons-io:commons-io:2.4' compile 'commons-codec:commons-codec:1.10' compile 'org.apache.axis:axis-jaxrpc:1.4' - compile 'org.xerial:sqlite-jdbc:3.8.11.2' + compile 'org.xerial:sqlite-jdbc:3.15.1' compile 'javax.xml.bind:jaxb-api:2.2.12' compile 'com.sun.xml.bind:jaxb-core:2.2.11' compile 'com.sun.xml.bind:jaxb-impl:2.2.11' compile 'org.postgresql:postgresql:9.4-1204-jdbc42' + compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.5' } task releases(type: Copy) { diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/SignerInfoImpl.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/SignerInfoImpl.java index 69dad89..57a60a6 100644 --- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/SignerInfoImpl.java +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/SignerInfoImpl.java @@ -128,7 +128,7 @@ public class SignerInfoImpl implements SignerInfo { } public String getQCSource() { - if (qcSourceTSL) + if (this.qcSourceTSL) return "TSL"; else return "Certificate"; diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/TslInfosImpl.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/TslInfosImpl.java index 4c40a5f..120b01a 100644 --- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/TslInfosImpl.java +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/TslInfosImpl.java @@ -18,10 +18,11 @@ public class TslInfosImpl implements TslInfos { this.tslServiceTypeStatus = tslServiceTypeStatus; this.tslServiceTypeIdentifier = tslServiceTypeIdentifier; - for (URI el : tslCertificateQualifier) - this.tslServiceQualifier.add(el.toString()); + if (tslCertificateQualifier != null) { + for (URI el : tslCertificateQualifier) + this.tslServiceQualifier.add(el.toString()); - + } } diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/config/ConfigurationPartsBuilder.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/config/ConfigurationPartsBuilder.java index 1b47013..89f4c1e 100644 --- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/config/ConfigurationPartsBuilder.java +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/config/ConfigurationPartsBuilder.java @@ -758,6 +758,11 @@ public class ConfigurationPartsBuilder { while ((keyGroupElem = (Element) kgIter.nextNode()) != null) { String keyGroupId = getElementValue(keyGroupElem, CONF + "Id", null); + + //switch all keyGroupIds to lower case, only + if (MiscUtil.isNotEmpty(keyGroupId)) + keyGroupId = keyGroupId.trim().toLowerCase(); + String keyGroupDigestMethodAlgorithm = getElementValue(keyGroupElem, CONF + "DigestMethodAlgorithm", null); Set keyGroupEntries = buildKeyGroupEntries(keyGroupId, keyModuleIds, keyGroupElem); @@ -883,9 +888,9 @@ public class ConfigurationPartsBuilder { keyGroupIter = XPathUtils.selectNodeIterator(mappingElem, CONF + "KeyGroupId"); while ((keyGroupElem = (Element) keyGroupIter.nextNode()) != null) { - String keyGroupId = getElementValue(keyGroupElem, ".", null); - KeyGroup keyGroup = (KeyGroup) keyGroups.get(keyGroupId); - + String keyGroupId = getElementValue(keyGroupElem, ".", null); + KeyGroup keyGroup = (KeyGroup) keyGroups.get(keyGroupId.trim().toLowerCase()); + if (keyGroup != null) { groups.put(keyGroupId, keyGroup); diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/config/ConfigurationProvider.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/config/ConfigurationProvider.java index 79ef1d2..6a007cf 100644 --- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/config/ConfigurationProvider.java +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/config/ConfigurationProvider.java @@ -633,9 +633,12 @@ public class ConfigurationProvider return keyGroups; } - public KeyGroup getKeyGroup(String keyGroupId) { - KeyGroup keyGroup = (KeyGroup) keyGroups.get(keyGroupId); - return keyGroup; + public KeyGroup getKeyGroup(String keyGroupId) { + if (MiscUtil.isNotEmpty(keyGroupId)) + return (KeyGroup) keyGroups.get(keyGroupId.trim().toLowerCase()); + + else + return null; } /** diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/config/TrustProfile.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/config/TrustProfile.java index f64643f..23fe487 100644 --- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/config/TrustProfile.java +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/config/TrustProfile.java @@ -76,16 +76,21 @@ public class TrustProfile { //TSL configuration parameters this.tslEnabled = tslEnabled; - - setCountries(countries); - Logger.debug("TrustProfile "+ id + " allows " + Arrays.toString(this.countries.toArray()) + " TSL countries"); - - setAllowedTspStatus(allowedTspStatus); - Logger.debug("TrustProfile "+ id + " allows " + Arrays.toString(this.allowedTspStatus.toArray()) + " TSP status identifier"); + + if (tslEnabled) { + setCountries(countries); + if (!this.countries.isEmpty()) + Logger.info("TrustProfile "+ id + " allows " + Arrays.toString(this.countries.toArray()) + " TSL countries"); + else + Logger.info("TrustProfile "+ id + " allows " + "ALL" + " TSL countries"); - setAllowedTspServiceTypes(allowedTspServiceTypes); - Logger.debug("TrustProfile "+ id + " allows " + Arrays.toString(this.allowedTspServiceTypes.toArray()) + " TSL service-type identifier"); - + setAllowedTspStatus(allowedTspStatus); + Logger.info("TrustProfile "+ id + " allows " + Arrays.toString(this.allowedTspStatus.toArray()) + " TSP status identifier"); + + setAllowedTspServiceTypes(allowedTspServiceTypes); + Logger.info("TrustProfile "+ id + " allows " + Arrays.toString(this.allowedTspServiceTypes.toArray()) + " TSL service-type identifier"); + + } } private void setCountries(String countries) { @@ -112,7 +117,7 @@ public class TrustProfile { } } else { - Logger.info("Use default set of TSP Status identifier"); + Logger.debug("Use default set of TSP Status identifier"); this.allowedTspStatus.addAll( Arrays.asList( TslConstants.SERVICE_STATUS_SORT_TO_URI.get(TslConstants.SERVICE_STATUS_SHORT.granted), @@ -129,7 +134,7 @@ public class TrustProfile { String[] ccArray = allowedTspServiceTypes.split(","); for (String el : ccArray) { try { - this.allowedTspStatus.add(new URI(el.trim())); + this.allowedTspServiceTypes.add(new URI(el.trim())); } catch (URISyntaxException e) { Logger.warn("TrustProfile: " + this.id + " contains a non-valid TSP Service-Type identifier (" + el + ")"); @@ -139,11 +144,11 @@ public class TrustProfile { } } else { - Logger.info("Use default set of TSP Service-Type identifier"); - this.allowedTspStatus.addAll( + Logger.debug("Use default set of TSP Service-Type identifier"); + this.allowedTspServiceTypes.addAll( Arrays.asList( - TslConstants.SERVICE_STATUS_SORT_TO_URI.get(TslConstants.SERVICE_TYPE_SHORT.CA_QC), - TslConstants.SERVICE_STATUS_SORT_TO_URI.get(TslConstants.SERVICE_TYPE_SHORT.TSA_QTST))); + TslConstants.SERVICE_TYPE_SORT_TO_URI.get(TslConstants.SERVICE_TYPE_SHORT.CA_QC), + TslConstants.SERVICE_TYPE_SORT_TO_URI.get(TslConstants.SERVICE_TYPE_SHORT.TSA_QTST))); } diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/tsl/TSLServiceFactory.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/tsl/TSLServiceFactory.java index 83bcf3a..223361d 100644 --- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/tsl/TSLServiceFactory.java +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/tsl/TSLServiceFactory.java @@ -4,9 +4,11 @@ import at.gv.egovernment.moa.sig.tsl.TslClientFactory; import at.gv.egovernment.moa.sig.tsl.api.ITslService; import at.gv.egovernment.moa.sig.tsl.config.TslConfigurationImpl; import at.gv.egovernment.moa.sig.tsl.exception.TslException; +import at.gv.egovernment.moa.sig.tsl.pki.chaining.ChainingTrustStoreHandler; import at.gv.egovernment.moa.spss.util.MessageProvider; import at.gv.egovernment.moaspss.logging.LogMsg; import at.gv.egovernment.moaspss.logging.Logger; +import iaik.pki.store.truststore.TrustStoreFactory; public class TSLServiceFactory { @@ -17,7 +19,9 @@ public class TSLServiceFactory { if (tslClient == null) { try { tslClient = TslClientFactory.buildTslService(config ); - + + TrustStoreFactory.addTrustStoreHandler(new ChainingTrustStoreHandler()); + } catch (TslException e) { Logger.fatal(new LogMsg(MessageProvider.getInstance().getMessage("init.05", new Object[]{e.getMessage()})), e); diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/util/CertificateUtils.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/util/CertificateUtils.java index 0ea0677..6b07594 100644 --- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/util/CertificateUtils.java +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/util/CertificateUtils.java @@ -19,6 +19,7 @@ import java.util.Arrays; import java.util.Date; import java.util.List; +import at.gv.egovernment.moa.sig.tsl.TslConstants; import at.gv.egovernment.moa.sig.tsl.engine.data.ITslEndEntityResult; import at.gv.egovernment.moa.sig.tsl.exception.TslException; import at.gv.egovernment.moa.spss.api.common.TslInfos; @@ -186,7 +187,11 @@ public class CertificateUtils { } - ITslEndEntityResult tslCheckResult = TSLServiceFactory.getTSLServiceClient().evaluate(Arrays.asList(chain), signingTime); + ITslEndEntityResult tslCheckResult = + TSLServiceFactory.getTSLServiceClient().evaluate( + Arrays.asList(chain), + signingTime, + TslConstants.CHAIN_MODEL); if (tslCheckResult != null) { URI tslServiceTypeIdentifier = tslCheckResult.getEvaluatedServiceTypeIdentifier(); @@ -228,15 +233,16 @@ public class CertificateUtils { //check SSCD List allowedSSCDQualifier = config.getTSLConfiguration().getQualifierForSSCD(); - for (URI allowedSSCD : allowedSSCDQualifier) { - for (URI certSSCD : tslCertificateQualifier) { - if (allowedSSCD.equals(certSSCD)) { - sscdSourceTSL = true; - sscd = true; + if (tslCertificateQualifier != null && allowedSSCDQualifier != null) { + for (URI allowedSSCD : allowedSSCDQualifier) { + for (URI certSSCD : tslCertificateQualifier) { + if (allowedSSCD.equals(certSSCD)) { + sscdSourceTSL = true; + sscd = true; + } } } - } if (sscdSourceTSL) Logger.debug("Certificate is SSCD (Source: TSL)"); diff --git a/moaSig/moa-sig/src/main/resources/META-INF/aop.xml b/moaSig/moa-sig/src/main/resources/META-INF/aop.xml index 161da84..684ba4b 100644 --- a/moaSig/moa-sig/src/main/resources/META-INF/aop.xml +++ b/moaSig/moa-sig/src/main/resources/META-INF/aop.xml @@ -1,11 +1,12 @@ - - - - - - - - - + + + + + + + + + \ No newline at end of file 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 c1ba365..2bcadc6 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,197 +1,200 @@ - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - - - + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/moaSig/moa-sig/src/main/resources/resources/schemas/MOA-SPSS-2.0.0.xsd b/moaSig/moa-sig/src/main/resources/resources/schemas/MOA-SPSS-2.0.0.xsd index 9f4fe52..b863377 100644 --- a/moaSig/moa-sig/src/main/resources/resources/schemas/MOA-SPSS-2.0.0.xsd +++ b/moaSig/moa-sig/src/main/resources/resources/schemas/MOA-SPSS-2.0.0.xsd @@ -1,71 +1,80 @@ - - - - - - + + + + + + - + - + - Ermöglichung der Stapelsignatur durch wiederholte Angabe dieses Elements + Ermöglichung der Stapelsignatur durch + wiederholte Angabe dieses Elements - + - + - - + + - Kardinalität 1..oo erlaubt die Antwort auf eine Stapelsignatur-Anfrage + Kardinalität 1..oo erlaubt die Antwort auf eine + Stapelsignatur-Anfrage - Resultat, falls die Signaturerstellung erfolgreich war + Resultat, falls die Signaturerstellung + erfolgreich war - + - - + + - + - + - Ermöglichung der Stapelsignatur durch wiederholte Angabe dieses Elements + Ermöglichung der Stapelsignatur durch + wiederholte Angabe dieses Elements @@ -73,7 +82,8 @@ - + @@ -81,155 +91,192 @@ - + - Auswahl: Entweder explizite Angabe des Signaturorts sowie ggf. sinnvoller Supplements im Zshg. mit der Signaturumgebung, oder Verweis auf ein benanntes Profil + 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 + Kardinalität 1..oo erlaubt die Antwort auf eine + Stapelsignatur-Anfrage - Resultat, falls die Signaturerstellung erfolgreich war + Resultat, falls die Signaturerstellung + erfolgreich war - + - + - - - + + + - + - + - Ermöglichung der Stapelsignatur durch wiederholte Angabe dieses Elements + Ermöglichung der Stapelsignatur durch + wiederholte Angabe dieses Elements - - - - + + + + - - + + - + - - + + - + - - - - + + + + - mit diesem Profil wird eine Menge von vertrauenswürdigen Wurzelzertifikaten spezifiziert + 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 - - - - + + + + - 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 - - - - - + + + + + - - + + - + - - - + + + - mit diesem Profil wird eine Menge von vertrauenswürdigen Wurzelzertifikaten spezifiziert + mit diesem Profil wird eine Menge von + vertrauenswürdigen Wurzelzertifikaten spezifiziert + - - + + @@ -240,9 +287,11 @@ - - - + + + asics or asice @@ -250,124 +299,169 @@ - mit diesem Profil wird eine Menge von vertrauenswürdigen Wurzelzertifikaten spezifiziert + 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 - - - - - + + + + + - - - + + + - - + + - - + + - - + + - + - + - 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. + 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 + 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 - - - - - - - - + + + + + + + + - 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 - - - - - - - - - + + + + + + + + + - + @@ -375,27 +469,29 @@ - - + + - + - - - + + + - + @@ -405,23 +501,25 @@ - + - Auswahl: Entweder explizite Angabe EINER Transformationskette inklusive ggf. sinnvoller Supplements oder Verweis auf ein benanntes Profil + Auswahl: Entweder explizite Angabe EINER + Transformationskette inklusive ggf. sinnvoller Supplements oder + Verweis auf ein benanntes Profil - - + + - - + + @@ -431,7 +529,7 @@ - + @@ -439,98 +537,113 @@ - - + + - - + + - - + + - + - Resultat, falls die Signaturerstellung erfolgreich war + Resultat, falls die Signaturerstellung + erfolgreich war - + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - - + + @@ -539,73 +652,78 @@ - - + + - + - - - + + + - + - Resultat, falls die Signaturerstellung gescheitert ist + Resultat, falls die Signaturerstellung gescheitert + ist - - + + - + - + - - + + - + - + - + - - - + + + - - + + @@ -613,7 +731,7 @@ - + @@ -621,23 +739,28 @@ - - - + + + - + - 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. + 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 + Profilbezeichner für einen Transformationsweg + @@ -647,8 +770,8 @@ - - + + @@ -659,93 +782,107 @@ - - + + - - + + - + - + - + - + - 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. + 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 Transformationsparameter explizit angegeben. + - Der Hashwert des Transformationsparameters. + Der Hashwert des Transformationsparameters. + - - + + - + - - + + - Explizite Angabe des Transformationswegs + 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. + 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-3.0.0.xsd b/moaSig/moa-sig/src/main/resources/resources/schemas/MOA-SPSS-3.0.0.xsd index 49255d1..4916b89 100644 --- a/moaSig/moa-sig/src/main/resources/resources/schemas/MOA-SPSS-3.0.0.xsd +++ b/moaSig/moa-sig/src/main/resources/resources/schemas/MOA-SPSS-3.0.0.xsd @@ -1,12 +1,10 @@ - + - - + + @@ -19,7 +17,8 @@ - Ermöglichung der Stapelsignatur durch wiederholte Angabe dieses Elements + Ermöglichung der Stapelsignatur durch + wiederholte Angabe dieses Elements @@ -36,23 +35,25 @@ - + - Kardinalität 1..oo erlaubt die Antwort auf eine Stapelsignatur-Anfrage + Kardinalität 1..oo erlaubt die Antwort auf eine + Stapelsignatur-Anfrage - Resultat, falls die Signaturerstellung erfolgreich war + Resultat, falls die Signaturerstellung + erfolgreich war - - + + @@ -65,7 +66,8 @@ - Ermöglichung der Stapelsignatur durch wiederholte Angabe dieses Elements + Ermöglichung der Stapelsignatur durch + wiederholte Angabe dieses Elements @@ -84,7 +86,10 @@ - Auswahl: Entweder explizite Angabe des Signaturorts sowie ggf. sinnvoller Supplements im Zshg. mit der Signaturumgebung, oder Verweis auf ein benanntes Profil + Auswahl: Entweder explizite Angabe des + Signaturorts sowie ggf. sinnvoller Supplements im Zshg. mit + der Signaturumgebung, oder Verweis auf ein benanntes Profil + @@ -98,15 +103,17 @@ - + - Kardinalität 1..oo erlaubt die Antwort auf eine Stapelsignatur-Anfrage + Kardinalität 1..oo erlaubt die Antwort auf eine + Stapelsignatur-Anfrage - Resultat, falls die Signaturerstellung erfolgreich war + Resultat, falls die Signaturerstellung + erfolgreich war @@ -118,8 +125,43 @@ - - + + + + + + + + + + + + + + + Ermöglichung der Stapelsignatur durch + wiederholte Angabe dieses Elements + + + + + + + + + + + + + + + + + + + + + @@ -132,34 +174,155 @@ + - mit diesem Profil wird eine Menge von vertrauenswürdigen Wurzelzertifikaten spezifiziert + 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 + + + + + + + + + + + + + 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 + + + - - + + + @@ -177,7 +340,11 @@ - 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. + 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. @@ -187,18 +354,24 @@ - mit diesem Profil wird eine Menge von vertrauenswürdigen Wurzelzertifikaten spezifiziert + 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, TSLInformation 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 @@ -207,6 +380,30 @@ + + + + + + + + + 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 + + + + + + + + + + + @@ -254,7 +451,9 @@ - Auswahl: Entweder explizite Angabe EINER Transformationskette inklusive ggf. sinnvoller Supplements oder Verweis auf ein benanntes Profil + Auswahl: Entweder explizite Angabe EINER + Transformationskette inklusive ggf. sinnvoller Supplements oder + Verweis auf ein benanntes Profil @@ -300,24 +499,30 @@ + + + + + + + Resultat, falls die Signaturerstellung + erfolgreich war + + + + + + - - - - - - - - @@ -335,6 +540,24 @@ + + + + + + + + + + + + + + + + + + @@ -376,10 +599,11 @@ - + - Resultat, falls die Signaturerstellung gescheitert ist + Resultat, falls die Signaturerstellung gescheitert + ist @@ -388,7 +612,7 @@ - + @@ -452,12 +676,17 @@ - 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. + 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 + Profilbezeichner für einen Transformationsweg + @@ -515,16 +744,22 @@ - 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. + 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 Transformationsparameter explizit angegeben. + - Der Hashwert des Transformationsparameters. + Der Hashwert des Transformationsparameters. + @@ -546,14 +781,20 @@ - Explizite Angabe des Transformationswegs + 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. + 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/webapp/WEB-INF/server-config.wsdd b/moaSig/moa-sig/src/main/webapp/WEB-INF/server-config.wsdd index c956f44..db260ef 100644 --- a/moaSig/moa-sig/src/main/webapp/WEB-INF/server-config.wsdd +++ b/moaSig/moa-sig/src/main/webapp/WEB-INF/server-config.wsdd @@ -1,49 +1,52 @@ - - + + - - - - + + + + - - http://reference.e-government.gv.at/namespace/moa/20020822# - - - /resources/schemas/MOA-SPSS-2.0.0.wsdl - - - - - - - - + + http://reference.e-government.gv.at/namespace/moa/20020822# + + + /resources/schemas/MOA-SPSS-2.0.0.wsdl - - http://reference.e-government.gv.at/namespace/moa/20020822# - - - /resources/schemas/MOA-SPSS-2.0.0.wsdl - - - - - - - + + + + + + + - - - - - - + + http://reference.e-government.gv.at/namespace/moa/20020822# + + + /resources/schemas/MOA-SPSS-2.0.0.wsdl + + + + + + + + + + + + + + diff --git a/moaSig/moa-sig/src/main/webapp/WEB-INF/web.xml b/moaSig/moa-sig/src/main/webapp/WEB-INF/web.xml index 667f084..910c037 100644 --- a/moaSig/moa-sig/src/main/webapp/WEB-INF/web.xml +++ b/moaSig/moa-sig/src/main/webapp/WEB-INF/web.xml @@ -1,66 +1,61 @@ - MOA SP-SS - MOA Signature Creation and Verification Services - - ConfigurationServlet - MOA Configuration Servlet - at.gv.egovernment.moa.spss.server.service.ConfigurationServlet - 0 - - - AxisServlet - Apache-Axis Servlet - org.apache.axis.transport.http.AxisServlet - - + + CertificateProviderServlet + MOA Certificate Provider Servlet + at.gv.egovernment.moa.spss.server.service.CertificateProviderServlet 1 - - - CertificateProviderServlet - MOA Certificate Provider Servlet - at.gv.egovernment.moa.spss.server.service.CertificateProviderServlet - 1 - - - AxisServlet - /services/* - - - - ConfigurationServlet - /ConfigurationUpdate - - - CertificateProviderServlet - /Certificate - + + + AxisServlet + /services/* + + + + ConfigurationServlet + /ConfigurationUpdate + + + CertificateProviderServlet + /Certificate + - - - ConfigurationUpdate - /ConfigurationUpdate - - - moa-admin - - + + + ConfigurationUpdate + /ConfigurationUpdate + + + moa-admin + + - - BASIC - UserDatabase - + + BASIC + UserDatabase + - - - The role that is required to log in to the moa Application - - moa-admin - + + + The role that is required to log in to the moa Application + + moa-admin + diff --git a/moaSig/moa-sig/src/main/webapp/schemas/MOA-SPSS-2.0.0.xsd b/moaSig/moa-sig/src/main/webapp/schemas/MOA-SPSS-2.0.0.xsd index 9f4fe52..b863377 100644 --- a/moaSig/moa-sig/src/main/webapp/schemas/MOA-SPSS-2.0.0.xsd +++ b/moaSig/moa-sig/src/main/webapp/schemas/MOA-SPSS-2.0.0.xsd @@ -1,71 +1,80 @@ - - - - - - + + + + + + - + - + - Ermöglichung der Stapelsignatur durch wiederholte Angabe dieses Elements + Ermöglichung der Stapelsignatur durch + wiederholte Angabe dieses Elements - + - + - - + + - Kardinalität 1..oo erlaubt die Antwort auf eine Stapelsignatur-Anfrage + Kardinalität 1..oo erlaubt die Antwort auf eine + Stapelsignatur-Anfrage - Resultat, falls die Signaturerstellung erfolgreich war + Resultat, falls die Signaturerstellung + erfolgreich war - + - - + + - + - + - Ermöglichung der Stapelsignatur durch wiederholte Angabe dieses Elements + Ermöglichung der Stapelsignatur durch + wiederholte Angabe dieses Elements @@ -73,7 +82,8 @@ - + @@ -81,155 +91,192 @@ - + - Auswahl: Entweder explizite Angabe des Signaturorts sowie ggf. sinnvoller Supplements im Zshg. mit der Signaturumgebung, oder Verweis auf ein benanntes Profil + 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 + Kardinalität 1..oo erlaubt die Antwort auf eine + Stapelsignatur-Anfrage - Resultat, falls die Signaturerstellung erfolgreich war + Resultat, falls die Signaturerstellung + erfolgreich war - + - + - - - + + + - + - + - Ermöglichung der Stapelsignatur durch wiederholte Angabe dieses Elements + Ermöglichung der Stapelsignatur durch + wiederholte Angabe dieses Elements - - - - + + + + - - + + - + - - + + - + - - - - + + + + - mit diesem Profil wird eine Menge von vertrauenswürdigen Wurzelzertifikaten spezifiziert + 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 - - - - + + + + - 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 - - - - - + + + + + - - + + - + - - - + + + - mit diesem Profil wird eine Menge von vertrauenswürdigen Wurzelzertifikaten spezifiziert + mit diesem Profil wird eine Menge von + vertrauenswürdigen Wurzelzertifikaten spezifiziert + - - + + @@ -240,9 +287,11 @@ - - - + + + asics or asice @@ -250,124 +299,169 @@ - mit diesem Profil wird eine Menge von vertrauenswürdigen Wurzelzertifikaten spezifiziert + 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 - - - - - + + + + + - - - + + + - - + + - - + + - - + + - + - + - 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. + 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 + 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 - - - - - - - - + + + + + + + + - 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 - - - - - - - - - + + + + + + + + + - + @@ -375,27 +469,29 @@ - - + + - + - - - + + + - + @@ -405,23 +501,25 @@ - + - Auswahl: Entweder explizite Angabe EINER Transformationskette inklusive ggf. sinnvoller Supplements oder Verweis auf ein benanntes Profil + Auswahl: Entweder explizite Angabe EINER + Transformationskette inklusive ggf. sinnvoller Supplements oder + Verweis auf ein benanntes Profil - - + + - - + + @@ -431,7 +529,7 @@ - + @@ -439,98 +537,113 @@ - - + + - - + + - - + + - + - Resultat, falls die Signaturerstellung erfolgreich war + Resultat, falls die Signaturerstellung + erfolgreich war - + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - - + + @@ -539,73 +652,78 @@ - - + + - + - - - + + + - + - Resultat, falls die Signaturerstellung gescheitert ist + Resultat, falls die Signaturerstellung gescheitert + ist - - + + - + - + - - + + - + - + - + - - - + + + - - + + @@ -613,7 +731,7 @@ - + @@ -621,23 +739,28 @@ - - - + + + - + - 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. + 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 + Profilbezeichner für einen Transformationsweg + @@ -647,8 +770,8 @@ - - + + @@ -659,93 +782,107 @@ - - + + - - + + - + - + - + - + - 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. + 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 Transformationsparameter explizit angegeben. + - Der Hashwert des Transformationsparameters. + Der Hashwert des Transformationsparameters. + - - + + - + - - + + - Explizite Angabe des Transformationswegs + 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. + 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 6eb53981bd689212050b4de95b58ae06fd3db088 Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Tue, 10 Jan 2017 15:26:33 +0100 Subject: switch canonisation implementation for some types --- .../invoke/XMLSignatureCreationProfileFactory.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureCreationProfileFactory.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureCreationProfileFactory.java index cb77ad1..32eab9e 100644 --- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureCreationProfileFactory.java +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/invoke/XMLSignatureCreationProfileFactory.java @@ -28,6 +28,7 @@ import iaik.server.modules.algorithms.HashAlgorithms; import iaik.server.modules.keys.KeyEntryID; import iaik.server.modules.keys.KeyModule; import iaik.server.modules.keys.KeyModuleFactory; +import iaik.server.modules.xml.Canonicalization; import iaik.server.modules.xmlsign.SignatureStructureTypes; import iaik.server.modules.xmlsign.XMLSignatureCreationProfile; import iaik.server.modules.xmlsign.XMLSignatureInsertionLocation; @@ -57,6 +58,7 @@ import at.gv.egovernment.moa.spss.server.config.ConfigurationProvider; import at.gv.egovernment.moa.spss.server.config.KeyGroup; import at.gv.egovernment.moa.spss.server.config.KeyGroupEntry; import at.gv.egovernment.moa.spss.server.iaik.xml.CanonicalizationImpl; +import at.gv.egovernment.moa.spss.server.iaik.xml.ExclusiveCanonicalizationImpl; import at.gv.egovernment.moa.spss.server.iaik.xmlsign.DataObjectTreatmentImpl; import at.gv.egovernment.moa.spss.server.iaik.xmlsign.XMLSignatureCreationProfileImpl; import at.gv.egovernment.moa.spss.server.iaik.xmlsign.XMLSignatureInsertionLocationImpl; @@ -136,7 +138,6 @@ public class XMLSignatureCreationProfileFactory { TransactionContext context = TransactionContextManager.getInstance().getTransactionContext(); ConfigurationProvider config = context.getConfiguration(); - CanonicalizationImpl canonicalization; List dataObjectTreatmentList; Set keySet; List transformationSupplements; @@ -234,9 +235,17 @@ public class XMLSignatureCreationProfileFactory { getSignatureInsertionLocationIndex(singleSignatureInfo)); // set the canonicalization algorithm - canonicalization = - new CanonicalizationImpl(config.getCanonicalizationAlgorithmName()); - profile.setSignedInfoCanonicalization(canonicalization); + String canonicalizationURI = config.getCanonicalizationAlgorithmName(); + if (Canonicalization.ALL_EXCLUSIVE.contains(canonicalizationURI)) { + ExclusiveCanonicalizationImpl canonicalization = new ExclusiveCanonicalizationImpl(config.getCanonicalizationAlgorithmName(), null); + profile.setSignedInfoCanonicalization(canonicalization); + + } else { + CanonicalizationImpl canonicalization = + new CanonicalizationImpl(config.getCanonicalizationAlgorithmName()); + profile.setSignedInfoCanonicalization(canonicalization); + + } // set the signed properties profile.setSignedProperties(Collections.EMPTY_LIST); -- cgit v1.2.3 From 172cae552dfecad074cac9834d22ec07f6cb7605 Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Fri, 20 Jan 2017 14:48:06 +0100 Subject: add missing libs --- moaSig/libs/iaik_eccelerate_addon.jar | Bin 0 -> 77097 bytes moaSig/libs/iaik_jsse-4.4.jar | Bin 0 -> 34853 bytes moaSig/libs/iaik_moa-2.01.jar | Bin 0 -> 518680 bytes moaSig/libs/iaik_sva.jar | Bin 0 -> 146175 bytes moaSig/libs/iaik_tsl-1.1.jar | Bin 0 -> 558558 bytes moaSig/libs/iaik_util-0.23.jar | Bin 0 -> 39377 bytes moaSig/libs/pdfbox-app-1.8.10.jar | Bin 0 -> 10613055 bytes moaSig/libs/tsl-lib-2.0.0-RC2.jar | Bin 0 -> 801558 bytes moaSig/moa-sig/libs/activation-1.1.jar | Bin 0 -> 62983 bytes moaSig/moa-sig/libs/axis-jaxrpc-1.4.jar | Bin 0 -> 31191 bytes moaSig/moa-sig/libs/axis-saaj-1.4.jar | Bin 0 -> 18979 bytes moaSig/moa-sig/libs/axis-wsdl4j-1.5.1.jar | Bin 0 -> 126771 bytes moaSig/moa-sig/libs/mail-1.4.jar | Bin 0 -> 388826 bytes 13 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 moaSig/libs/iaik_eccelerate_addon.jar create mode 100644 moaSig/libs/iaik_jsse-4.4.jar create mode 100644 moaSig/libs/iaik_moa-2.01.jar create mode 100644 moaSig/libs/iaik_sva.jar create mode 100644 moaSig/libs/iaik_tsl-1.1.jar create mode 100644 moaSig/libs/iaik_util-0.23.jar create mode 100644 moaSig/libs/pdfbox-app-1.8.10.jar create mode 100644 moaSig/libs/tsl-lib-2.0.0-RC2.jar create mode 100644 moaSig/moa-sig/libs/activation-1.1.jar create mode 100644 moaSig/moa-sig/libs/axis-jaxrpc-1.4.jar create mode 100644 moaSig/moa-sig/libs/axis-saaj-1.4.jar create mode 100644 moaSig/moa-sig/libs/axis-wsdl4j-1.5.1.jar create mode 100644 moaSig/moa-sig/libs/mail-1.4.jar diff --git a/moaSig/libs/iaik_eccelerate_addon.jar b/moaSig/libs/iaik_eccelerate_addon.jar new file mode 100644 index 0000000..bd57ff2 Binary files /dev/null and b/moaSig/libs/iaik_eccelerate_addon.jar differ diff --git a/moaSig/libs/iaik_jsse-4.4.jar b/moaSig/libs/iaik_jsse-4.4.jar new file mode 100644 index 0000000..15b3204 Binary files /dev/null and b/moaSig/libs/iaik_jsse-4.4.jar differ diff --git a/moaSig/libs/iaik_moa-2.01.jar b/moaSig/libs/iaik_moa-2.01.jar new file mode 100644 index 0000000..52b3b85 Binary files /dev/null and b/moaSig/libs/iaik_moa-2.01.jar differ diff --git a/moaSig/libs/iaik_sva.jar b/moaSig/libs/iaik_sva.jar new file mode 100644 index 0000000..220deb5 Binary files /dev/null and b/moaSig/libs/iaik_sva.jar differ diff --git a/moaSig/libs/iaik_tsl-1.1.jar b/moaSig/libs/iaik_tsl-1.1.jar new file mode 100644 index 0000000..b4eb067 Binary files /dev/null and b/moaSig/libs/iaik_tsl-1.1.jar differ diff --git a/moaSig/libs/iaik_util-0.23.jar b/moaSig/libs/iaik_util-0.23.jar new file mode 100644 index 0000000..1bc0cde Binary files /dev/null and b/moaSig/libs/iaik_util-0.23.jar differ diff --git a/moaSig/libs/pdfbox-app-1.8.10.jar b/moaSig/libs/pdfbox-app-1.8.10.jar new file mode 100644 index 0000000..4c6b4f3 Binary files /dev/null and b/moaSig/libs/pdfbox-app-1.8.10.jar differ diff --git a/moaSig/libs/tsl-lib-2.0.0-RC2.jar b/moaSig/libs/tsl-lib-2.0.0-RC2.jar new file mode 100644 index 0000000..a6e3142 Binary files /dev/null and b/moaSig/libs/tsl-lib-2.0.0-RC2.jar differ diff --git a/moaSig/moa-sig/libs/activation-1.1.jar b/moaSig/moa-sig/libs/activation-1.1.jar new file mode 100644 index 0000000..53f82a1 Binary files /dev/null and b/moaSig/moa-sig/libs/activation-1.1.jar differ diff --git a/moaSig/moa-sig/libs/axis-jaxrpc-1.4.jar b/moaSig/moa-sig/libs/axis-jaxrpc-1.4.jar new file mode 100644 index 0000000..a2c13d9 Binary files /dev/null and b/moaSig/moa-sig/libs/axis-jaxrpc-1.4.jar differ diff --git a/moaSig/moa-sig/libs/axis-saaj-1.4.jar b/moaSig/moa-sig/libs/axis-saaj-1.4.jar new file mode 100644 index 0000000..4ea696e Binary files /dev/null and b/moaSig/moa-sig/libs/axis-saaj-1.4.jar differ diff --git a/moaSig/moa-sig/libs/axis-wsdl4j-1.5.1.jar b/moaSig/moa-sig/libs/axis-wsdl4j-1.5.1.jar new file mode 100644 index 0000000..c6254ee Binary files /dev/null and b/moaSig/moa-sig/libs/axis-wsdl4j-1.5.1.jar differ diff --git a/moaSig/moa-sig/libs/mail-1.4.jar b/moaSig/moa-sig/libs/mail-1.4.jar new file mode 100644 index 0000000..3b28b6e Binary files /dev/null and b/moaSig/moa-sig/libs/mail-1.4.jar differ -- cgit v1.2.3 From b0d77d439a8df6b09648e19b1ec93f24eadfbe7b Mon Sep 17 00:00:00 2001 From: Thomas Lenz Date: Fri, 20 Jan 2017 14:48:55 +0100 Subject: small changes to support TSL-lib version RC2 --- .../egovernment/moa/spss/api/common/TslInfos.java | 8 +++ .../moa/spss/api/impl/TslInfosImpl.java | 17 ++++- .../moa/spss/api/xmlbind/ResponseBuilderUtils.java | 16 ++++- .../moa/spss/server/config/TrustProfile.java | 15 ++-- .../moa/spss/server/init/SystemInitializer.java | 1 + .../moa/spss/util/CertificateUtils.java | 81 ++++++++++++++++------ 6 files changed, 107 insertions(+), 31 deletions(-) diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/common/TslInfos.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/common/TslInfos.java index 9718ada..2a04f96 100644 --- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/common/TslInfos.java +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/common/TslInfos.java @@ -38,4 +38,12 @@ public interface TslInfos { * @return */ public List getQualifiers(); + + /** + * Gets additional service information for the analyzed certificate + * + * @return + */ + public List getAdditionalServiceInformation(); + } diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/TslInfosImpl.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/TslInfosImpl.java index 120b01a..fad42e6 100644 --- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/TslInfosImpl.java +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/api/impl/TslInfosImpl.java @@ -11,9 +11,11 @@ public class TslInfosImpl implements TslInfos { private String tslServiceTypeIdentifier; private String tslServiceTypeStatus; private List tslServiceQualifier = new ArrayList(); + private List tslAdditionalServiceInformation = new ArrayList(); private String tslCountry; - public TslInfosImpl(String country, String tslServiceTypeStatus, String tslServiceTypeIdentifier, List tslCertificateQualifier) { + public TslInfosImpl(String country, String tslServiceTypeStatus, String tslServiceTypeIdentifier, + List tslCertificateQualifier, List additionalServiceInformation) { this.tslCountry = country; this.tslServiceTypeStatus = tslServiceTypeStatus; this.tslServiceTypeIdentifier = tslServiceTypeIdentifier; @@ -22,7 +24,11 @@ public class TslInfosImpl implements TslInfos { for (URI el : tslCertificateQualifier) this.tslServiceQualifier.add(el.toString()); - } + } + + if (additionalServiceInformation != null) + this.tslAdditionalServiceInformation.addAll(additionalServiceInformation); + } @@ -46,4 +52,11 @@ public class TslInfosImpl implements TslInfos { return tslServiceQualifier; } + + @Override + public List getAdditionalServiceInformation() { + return this.tslAdditionalServiceInformation; + + } + } 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 79a674e..fafbc16 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 @@ -205,7 +205,21 @@ public class ResponseBuilderUtils { tslInfoElement.appendChild(tslQualifiers); } - + + //append additional service information + if (tslInfos.getAdditionalServiceInformation() != null + && tslInfos.getAdditionalServiceInformation().size() > 0) { + Element tslAdditionalServiceInformations = response.createElementNS(MOA_NS_URI, "AdditionalServiceInformations"); + + for (String el : tslInfos.getAdditionalServiceInformation()) { + Element tslAdditionalServiceInformation = response.createElementNS(MOA_NS_URI, "AdditionalServiceInformation"); + tslAdditionalServiceInformation.setTextContent(el); + tslAdditionalServiceInformations.appendChild(tslAdditionalServiceInformation); + + } + tslInfoElement.appendChild(tslAdditionalServiceInformations); + + } } Element publicAuthorityElem = diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/config/TrustProfile.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/config/TrustProfile.java index 23fe487..0063c7f 100644 --- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/config/TrustProfile.java +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/config/TrustProfile.java @@ -29,6 +29,8 @@ import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.regex.Pattern; +import java.util.regex.PatternSyntaxException; import at.gv.egovernment.moa.sig.tsl.TslConstants; import at.gv.egovernment.moaspss.logging.Logger; @@ -55,7 +57,7 @@ public class TrustProfile { private List countries = new ArrayList(); private List allowedTspStatus = new ArrayList(); - private List allowedTspServiceTypes = new ArrayList(); + private List allowedTspServiceTypes = new ArrayList(); /** @@ -134,10 +136,10 @@ public class TrustProfile { String[] ccArray = allowedTspServiceTypes.split(","); for (String el : ccArray) { try { - this.allowedTspServiceTypes.add(new URI(el.trim())); + this.allowedTspServiceTypes.add(Pattern.compile(el.trim())); - } catch (URISyntaxException e) { - Logger.warn("TrustProfile: " + this.id + " contains a non-valid TSP Service-Type identifier (" + el + ")"); + } catch (PatternSyntaxException e) { + Logger.warn("TrustProfile: " + this.id + " contains a non-valid TSP Service-Type identifier Regex pattern(" + el + ")"); } @@ -147,8 +149,7 @@ public class TrustProfile { Logger.debug("Use default set of TSP Service-Type identifier"); this.allowedTspServiceTypes.addAll( Arrays.asList( - TslConstants.SERVICE_TYPE_SORT_TO_URI.get(TslConstants.SERVICE_TYPE_SHORT.CA_QC), - TslConstants.SERVICE_TYPE_SORT_TO_URI.get(TslConstants.SERVICE_TYPE_SHORT.TSA_QTST))); + Pattern.compile(TslConstants.DEFAULT_REGEX_PATTERN_ALLOW_ALL))); } @@ -204,7 +205,7 @@ public class TrustProfile { return allowedTspStatus; } - public List getAllowedTspServiceTypes() { + public List getAllowedTspServiceTypes() { return allowedTspServiceTypes; } diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/init/SystemInitializer.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/init/SystemInitializer.java index 8ff0b12..1eb9984 100644 --- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/init/SystemInitializer.java +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/server/init/SystemInitializer.java @@ -153,6 +153,7 @@ public class SystemInitializer { TslConfigurationImpl tslConfig = new TslConfigurationImpl(); tslConfig.setEuTslURL(moaSPTslConfig.getEuTSLUrl()); tslConfig.setTslWorkingDirectory(moaSPTslConfig.getWorkingDirectory()); + tslConfig.setNetworkReadTimeout(config.getReadTimeout()); Logger.info(new LogMsg(msg.getMessage("config.41", null))); TSLServiceFactory.initialize(tslConfig); diff --git a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/util/CertificateUtils.java b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/util/CertificateUtils.java index 6b07594..ad64052 100644 --- a/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/util/CertificateUtils.java +++ b/moaSig/moa-sig-lib/src/main/java/at/gv/egovernment/moa/spss/util/CertificateUtils.java @@ -22,6 +22,7 @@ import java.util.List; import at.gv.egovernment.moa.sig.tsl.TslConstants; import at.gv.egovernment.moa.sig.tsl.engine.data.ITslEndEntityResult; import at.gv.egovernment.moa.sig.tsl.exception.TslException; +import at.gv.egovernment.moa.sig.tsl.utils.MiscUtil; import at.gv.egovernment.moa.spss.api.common.TslInfos; import at.gv.egovernment.moa.spss.api.impl.TslInfosImpl; import at.gv.egovernment.moa.spss.server.config.ConfigurationProvider; @@ -197,10 +198,15 @@ public class CertificateUtils { URI tslServiceTypeIdentifier = tslCheckResult.getEvaluatedServiceTypeIdentifier(); List tslCertificateQualifier = tslCheckResult.getEvaluatedQualifier(); + // QC evaluation flags boolean qc = false; boolean qcSourceTSL = false; + boolean qcDisallowedFromTSL = false; + + // SSCD/QSCD evaluation flags boolean sscd = false; boolean sscdSourceTSL = false; + //check QC List allowedQCQualifier = config.getTSLConfiguration().getQualifierForQC(); @@ -212,26 +218,8 @@ public class CertificateUtils { } } - if (qcSourceTSL) - Logger.debug("Certificate is QC (Source: TSL)"); - - else { - // if QC check via TSL returns false - // try certificate extensions QCP and QcEuCompliance - Logger.debug("QC check via TSL returned false - checking certificate extensions"); - boolean checkQCP = CertificateUtils.checkQCP(chain[0]); - boolean checkQcEuCompliance = CertificateUtils.checkQcEuCompliance(chain[0]); - - if (checkQCP || checkQcEuCompliance) { - Logger.debug("Certificate is QC (Source: Certificate)"); - qc = true; - - } - - } - - //check SSCD + //check SSCD/QSCD qualifiers and mark result acording this check List allowedSSCDQualifier = config.getTSLConfiguration().getQualifierForSSCD(); if (tslCertificateQualifier != null && allowedSSCDQualifier != null) { for (URI allowedSSCD : allowedSSCDQualifier) { @@ -243,7 +231,57 @@ public class CertificateUtils { } } } - } + } + + //check additional flags in TSP qualifiers for this certificate + if (tslCertificateQualifier != null) { + for (URI qEl : tslCertificateQualifier) { + //check if SSCD/QSCD status must be used from cert + if (qEl.equals( + TslConstants.SSCD_QUALIFIER_SORT_TO_URI.get( + TslConstants.SSCD_QUALIFIER_SHORT.QCQSCDStatusAsInCert)) + || qEl.equals(TslConstants.SSCD_QUALIFIER_SORT_TO_URI.get( + TslConstants.SSCD_QUALIFIER_SHORT.QCSSCDStatusAsInCert))) { + + sscdSourceTSL = false; + sscd = false; + + //check if extentsion includes a NotQualified flag + } else if (qEl.equals( + TslConstants.SSCD_QUALIFIER_SORT_TO_URI.get( + TslConstants.SSCD_QUALIFIER_SHORT.NotQualified))) { + qc = false; + qcSourceTSL = false; + qcDisallowedFromTSL = true; + Logger.info("TSL mark this certificate explicitly as 'NotQualified'!"); + + } + } + } + + //evaluate QC statement according previous selected information + if (qcSourceTSL) + Logger.debug("Certificate is QC (Source: TSL)"); + + else { + // if TSL return no service-type identifier us information from certificate + if (tslServiceTypeIdentifier == null || + MiscUtil.isEmpty(tslServiceTypeIdentifier.toString())) { + // try certificate extensions QCP and QcEuCompliance + Logger.debug("QC check via TSL returned false - checking certificate extensions"); + boolean checkQCP = CertificateUtils.checkQCP(chain[0]); + boolean checkQcEuCompliance = CertificateUtils.checkQcEuCompliance(chain[0]); + + if ((checkQCP || checkQcEuCompliance) && !qcDisallowedFromTSL) { + Logger.debug("Certificate is QC (Source: Certificate)"); + qc = true; + + } + } + } + + + //evaluate SSCD/QSCD results according previous selected information if (sscdSourceTSL) Logger.debug("Certificate is SSCD (Source: TSL)"); @@ -268,7 +306,8 @@ public class CertificateUtils { tslCheckResult.getTerritory(), tslCheckResult.getTspStatus(), tslServiceTypeIdentifier.toString(), - tslCertificateQualifier); + tslCertificateQualifier, + tslCheckResult.getAdditionalServiceInformation()); result.setTslInfos(extTslInfos); return result; -- cgit v1.2.3