diff options
Diffstat (limited to 'moaSig/common/src/main')
4 files changed, 854 insertions, 4 deletions
| 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..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 @@ -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 = @@ -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/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. */ 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 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- MOA SP/SS 2.0.0 Schema --> +<xsd:schema xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://reference.e-government.gv.at/namespace/moa/20020822#" targetNamespace="http://reference.e-government.gv.at/namespace/moa/20020822#" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.2"> +	<xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/> +	<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/> +	<!--########## Create CMS Signature ### --> +	<!--### Create CMS Signature Request ### --> +	<xsd:element name="CreateCMSSignatureRequest"> +		<xsd:complexType> +			<xsd:complexContent> +				<xsd:extension base="CreateCMSSignatureRequestType"/> +			</xsd:complexContent> +		</xsd:complexType> +	</xsd:element> +	<xsd:complexType name="CreateCMSSignatureRequestType"> +		<xsd:sequence> +			<xsd:element name="KeyIdentifier" type="KeyIdentifierType"/> +			<xsd:element name="SingleSignatureInfo" maxOccurs="unbounded"> +				<xsd:annotation> +					<xsd:documentation>Ermöglichung der Stapelsignatur durch +						wiederholte Angabe dieses Elements</xsd:documentation> +				</xsd:annotation> +				<xsd:complexType> +					<xsd:sequence> +						<xsd:element name="DataObjectInfo"> +							<xsd:complexType> +								<xsd:complexContent> +									<xsd:extension base="CMSDataObjectInfoType"/> +								</xsd:complexContent> +							</xsd:complexType> +						</xsd:element> +					</xsd:sequence> +					<xsd:attribute name="SecurityLayerConformity" type="xsd:boolean" use="optional" default="true"/> +					<xsd:attribute name="PAdESConformity" type="xsd:boolean" use="optional" default="false"/> +				</xsd:complexType> +			</xsd:element> +		</xsd:sequence> +	</xsd:complexType> +	<!--### Create CMS Signature Response ### --> +	<xsd:element name="CreateCMSSignatureResponse" type="CreateCMSSignatureResponseType"/> +	<xsd:complexType name="CreateCMSSignatureResponseType"> +		<xsd:choice maxOccurs="unbounded"> +			<xsd:annotation> +				<xsd:documentation>Kardinalität 1..oo erlaubt die Antwort auf eine +					Stapelsignatur-Anfrage</xsd:documentation> +			</xsd:annotation> +			<xsd:element name="CMSSignature" type="xsd:base64Binary"> +				<xsd:annotation> +					<xsd:documentation>Resultat, falls die Signaturerstellung +						erfolgreich war</xsd:documentation> +				</xsd:annotation> +			</xsd:element> +			<xsd:element ref="ErrorResponse"/> +		</xsd:choice> +	</xsd:complexType> +	<!--########## Create XML Signature ### --> +	<!--### Create XML Signature Request ### --> +	<xsd:element name="CreateXMLSignatureRequest"> +		<xsd:complexType> +			<xsd:complexContent> +				<xsd:extension base="CreateXMLSignatureRequestType"/> +			</xsd:complexContent> +		</xsd:complexType> +	</xsd:element> +	<xsd:complexType name="CreateXMLSignatureRequestType"> +		<xsd:sequence> +			<xsd:element name="KeyIdentifier" type="KeyIdentifierType"/> +			<xsd:element name="SingleSignatureInfo" maxOccurs="unbounded"> +				<xsd:annotation> +					<xsd:documentation>Ermöglichung der Stapelsignatur durch +						wiederholte Angabe dieses Elements</xsd:documentation> +				</xsd:annotation> +				<xsd:complexType> +					<xsd:sequence> +						<xsd:element name="DataObjectInfo" maxOccurs="unbounded"> +							<xsd:complexType> +								<xsd:complexContent> +									<xsd:extension base="DataObjectInfoType"> +										<xsd:attribute name="ChildOfManifest" type="xsd:boolean" use="optional" default="false"/> +									</xsd:extension> +								</xsd:complexContent> +							</xsd:complexType> +						</xsd:element> +						<xsd:element name="CreateSignatureInfo" minOccurs="0"> +							<xsd:complexType> +								<xsd:sequence> +									<xsd:element name="CreateSignatureEnvironment" type="ContentOptionalRefType"/> +									<xsd:choice> +										<xsd:annotation> +											<xsd:documentation>Auswahl: Entweder explizite Angabe des +												Signaturorts sowie ggf. sinnvoller Supplements im Zshg. mit +												der Signaturumgebung, oder Verweis auf ein benanntes Profil +											</xsd:documentation> +										</xsd:annotation> +										<xsd:element ref="CreateSignatureEnvironmentProfile"/> +										<xsd:element name="CreateSignatureEnvironmentProfileID" type="ProfileIdentifierType"/> +									</xsd:choice> +								</xsd:sequence> +							</xsd:complexType> +						</xsd:element> +					</xsd:sequence> +					<xsd:attribute name="SecurityLayerConformity" type="xsd:boolean" use="optional" default="true"/> +				</xsd:complexType> +			</xsd:element> +		</xsd:sequence> +	</xsd:complexType> +	<!--### Create XML Signature Response ### --> +	<xsd:complexType name="CreateXMLSignatureResponseType"> +		<xsd:choice maxOccurs="unbounded"> +			<xsd:annotation> +				<xsd:documentation>Kardinalität 1..oo erlaubt die Antwort auf eine +					Stapelsignatur-Anfrage</xsd:documentation> +			</xsd:annotation> +			<xsd:element name="SignatureEnvironment"> +				<xsd:annotation> +					<xsd:documentation>Resultat, falls die Signaturerstellung +						erfolgreich war</xsd:documentation> +				</xsd:annotation> +				<xsd:complexType> +					<xsd:sequence> +						<xsd:any namespace="##any" processContents="lax"/> +					</xsd:sequence> +				</xsd:complexType> +			</xsd:element> +			<xsd:element ref="ErrorResponse"/> +		</xsd:choice> +	</xsd:complexType> +	<xsd:element name="CreateXMLSignatureResponse" type="CreateXMLSignatureResponseType"/> +	<!--########## Create PDF Signature ### --> +	<!--### Create PDF Signature Request ### --> +	<xsd:element name="CreatePDFSignatureRequest"> +		<xsd:complexType> +			<xsd:complexContent> +				<xsd:extension base="CreatePDFSignatureRequestType"/> +			</xsd:complexContent> +		</xsd:complexType> +	</xsd:element> +	<xsd:complexType name="CreatePDFSignatureRequestType"> +		<xsd:sequence> +			<xsd:element name="KeyIdentifier" type="KeyIdentifierType"/> +			<xsd:element name="SingleSignatureInfo" maxOccurs="unbounded"> +				<xsd:annotation> +					<xsd:documentation>Ermöglichung der Stapelsignatur durch +						wiederholte Angabe dieses Elements</xsd:documentation> +				</xsd:annotation> +				<xsd:complexType> +					<xsd:sequence> +						<xsd:element name="PDFDocument" type="xsd:base64Binary"/> +						<xsd:element name="SignatureProfile" type="xsd:string" minOccurs="0" maxOccurs="1"/> +						<xsd:element name="SignaturePosition" type="xsd:string" minOccurs="0" maxOccurs="1"/> +						<xsd:element name="SignatureID" type="xsd:string" minOccurs="0" maxOccurs="1"/> +					</xsd:sequence> +				</xsd:complexType> +			</xsd:element> +		</xsd:sequence> +	</xsd:complexType> +	<!--### Create PDF Signature Response ### --> +	<xsd:element name="CreatePDFSignatureResponse" type="CreatePDFSignatureResponseType"/> +	<xsd:complexType name="CreatePDFSignatureResponseType"> +		<xsd:sequence> +			<xsd:element name="PDFSignature" type="PDFSignedRepsonse" maxOccurs="unbounded"/> +		</xsd:sequence> +	</xsd:complexType> +	<!--########## Verify CMS Signature ### --> +	<!--### Verifiy CMS Signature Request ### --> +	<xsd:element name="VerifyCMSSignatureRequest"> +		<xsd:complexType> +			<xsd:complexContent> +				<xsd:extension base="VerifyCMSSignatureRequestType"> +					<xsd:attribute name="Signatories" type="SignatoriesType" use="optional" default="1"/> +				</xsd:extension> +			</xsd:complexContent> +		</xsd:complexType> +	</xsd:element> +	<xsd:complexType name="VerifyCMSSignatureRequestType"> +		<xsd:sequence> +			<xsd:element name="DateTime" type="xsd:dateTime" minOccurs="0"/> +			<xsd:element name="ExtendedValidation" type="xsd:boolean" default="false" minOccurs="0"/> +			<xsd:element name="CMSSignature" type="xsd:base64Binary"/> +			<xsd:element name="DataObject" type="CMSDataObjectOptionalMetaType" minOccurs="0"/> +			<xsd:element name="TrustProfileID" type="xsd:token"> +				<xsd:annotation> +					<xsd:documentation>mit diesem Profil wird eine Menge von +						vertrauenswürdigen Wurzelzertifikaten spezifiziert +					</xsd:documentation> +				</xsd:annotation> +			</xsd:element> +		</xsd:sequence> +	</xsd:complexType> +	<!--### Verify CMS Signature Response ### --> +	<xsd:element name="VerifyCMSSignatureResponse" type="VerifyCMSSignatureResponseType"/> +	<xsd:complexType name="VerifyCMSSignatureResponseType"> +		<xsd:sequence maxOccurs="unbounded"> +			<xsd:element name="SignerInfo" type="dsig:KeyInfoType"> +				<xsd:annotation> +					<xsd:documentation>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</xsd:documentation> +				</xsd:annotation> +			</xsd:element> +			<xsd:element name="SignatureCheck" type="CheckResultType"/> +			<xsd:element name="CertificateCheck" type="CheckResultType"/> +			<xsd:element name="FormCheckResult" type="FormResultType" minOccurs="0" maxOccurs="unbounded"/> +			<xsd:element name="ExtendedCertificateCheck" type="ExtendedCertificateCheckResultType" minOccurs="0" maxOccurs="1"/> +		</xsd:sequence> +	</xsd:complexType> +	<xsd:complexType name="VerifyASICCMSSignatureResponseType"> +		<xsd:sequence maxOccurs="unbounded"> +			<xsd:element name="SignerInfo" type="dsig:KeyInfoType"> +				<xsd:annotation> +					<xsd:documentation>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</xsd:documentation> +				</xsd:annotation> +			</xsd:element> +			<xsd:element name="SigningTime" type="xsd:dateTime" minOccurs="0"/> +			<xsd:element name="SignatureCheck" type="CheckResultType"/> +			<xsd:element name="CertificateCheck" type="CheckResultType"/> +			<xsd:element name="FormCheckResult" type="FormResultType" minOccurs="0" maxOccurs="unbounded"/> +			<xsd:element name="ExtendedCertificateCheck" type="ExtendedCertificateCheckResultType" minOccurs="0" maxOccurs="1"/> +		</xsd:sequence> +	</xsd:complexType> +	<!--########## Verify PDF Signature ### --> +	<!--### Verifiy PDF Signature Request ### --> +	<xsd:element name="VerifyPDFSignatureRequest"> +		<xsd:complexType> +			<xsd:complexContent> +				<xsd:extension base="VerifyPDFSignatureRequestType"> +					<xsd:attribute name="Signatories" type="SignatoriesType" use="optional" default="1"/> +				</xsd:extension> +			</xsd:complexContent> +		</xsd:complexType> +	</xsd:element> +	<xsd:complexType name="VerifyPDFSignatureRequestType"> +		<xsd:sequence> +			<xsd:element name="DateTime" type="xsd:dateTime" minOccurs="0"/> +			<xsd:element name="ExtendedValidation" type="xsd:boolean" default="false" minOccurs="0"/> +			<xsd:element name="PDFSignature" type="xsd:base64Binary"/> +			<xsd:element name="TrustProfileID" type="xsd:token"> +				<xsd:annotation> +					<xsd:documentation>mit diesem Profil wird eine Menge von +						vertrauenswürdigen Wurzelzertifikaten spezifiziert +					</xsd:documentation> +				</xsd:annotation> +			</xsd:element> +		</xsd:sequence> +	</xsd:complexType> +	<!--########## Verify PDF Signature ### --> +	<!--### Verifiy ASIC Signature Request ### --> +	<xsd:element name="VerifyASICSignatureRequest"> +		<xsd:complexType> +			<xsd:complexContent> +				<xsd:extension base="VerifyASICSignatureRequestType"/> +			</xsd:complexContent> +		</xsd:complexType> +	</xsd:element> +	<xsd:complexType name="VerifyASICSignatureRequestType"> +		<xsd:sequence> +			<xsd:element name="DateTime" type="xsd:dateTime" minOccurs="0"/> +			<xsd:element name="ExtendedValidation" type="xsd:boolean" default="false" minOccurs="0"/> +			<xsd:element name="ASICSignature" type="xsd:base64Binary"/> +			<xsd:element name="ASICExtension" type="xsd:string"> +				<xsd:annotation> +					<xsd:documentation>asics or asice</xsd:documentation> +				</xsd:annotation> +			</xsd:element> +			<xsd:element name="TrustProfileID" type="xsd:token"> +				<xsd:annotation> +					<xsd:documentation>mit diesem Profil wird eine Menge von +						vertrauenswürdigen Wurzelzertifikaten spezifiziert +					</xsd:documentation> +				</xsd:annotation> +			</xsd:element> +		</xsd:sequence> +	</xsd:complexType> +	<!--### Verify ASIC Signature Response ### --> +	<xsd:element name="VerifyASICSignatureResponse" type="VerifyASICSignatureResponseType"/> +	<xsd:complexType name="VerifyASICSignatureResponseType"> +		<xsd:sequence> +			<xsd:element name="ASiCSignatureResult" type="ASICResultType" minOccurs="0" maxOccurs="unbounded"/> +		</xsd:sequence> +	</xsd:complexType> +	<xsd:complexType name="ASICResultType"> +		<xsd:sequence> +			<xsd:element name="signedFiles" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> +			<xsd:element name="XMLSignatureResult" type="VerifyASICXMLSignatureResponseType" minOccurs="0" maxOccurs="unbounded"/> +			<xsd:element name="CMSSignatureResult" type="VerifyASICCMSSignatureResponseType" minOccurs="0" maxOccurs="unbounded"/> +		</xsd:sequence> +	</xsd:complexType> +	<!--### Verify CMS Signature Response ### --> +	<xsd:element name="VerifyPDFSignatureResponse" type="VerifyPDFSignatureResponseType"/> +	<xsd:complexType name="VerifyPDFSignatureResponseType"> +		<xsd:sequence maxOccurs="unbounded"> +			<xsd:element name="SignatureResult" type="PDFSignatureResultType"/> +		</xsd:sequence> +	</xsd:complexType> +	<xsd:complexType name="PDFSignatureResultType"> +		<xsd:sequence> +			<xsd:element name="SignerInfo" type="dsig:KeyInfoType" minOccurs="0"> +				<xsd:annotation> +					<xsd:documentation>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</xsd:documentation> +				</xsd:annotation> +			</xsd:element> +			<xsd:element name="SigningTime" type="xsd:dateTime" minOccurs="0"/> +			<xsd:element name="SignatureCheck" type="CheckResultType"/> +			<xsd:element name="CertificateCheck" type="CheckResultType"/> +			<xsd:element name="FormCheckResult" type="FormResultType" minOccurs="0" maxOccurs="unbounded"/> +			<xsd:element name="ExtendedCertificateCheck" type="ExtendedCertificateCheckResultType" minOccurs="0" maxOccurs="1"/> +		</xsd:sequence> +	</xsd:complexType> +	<!--########## Verify XML Signature ### --> +	<!--### Verify XML Signature Request ### --> +	<xsd:element name="VerifyXMLSignatureRequest" type="VerifyXMLSignatureRequestType"/> +	<xsd:complexType name="VerifyXMLSignatureRequestType"> +		<xsd:sequence> +			<xsd:element name="DateTime" type="xsd:dateTime" minOccurs="0"/> +			<xsd:element name="ExtendedValidation" type="xsd:boolean" default="false" minOccurs="0"/> +			<xsd:element name="VerifySignatureInfo"> +				<xsd:complexType> +					<xsd:sequence> +						<xsd:element name="VerifySignatureEnvironment" type="ContentOptionalRefType"/> +						<xsd:element name="VerifySignatureLocation" type="xsd:token"/> +					</xsd:sequence> +				</xsd:complexType> +			</xsd:element> +			<xsd:choice minOccurs="0" maxOccurs="unbounded"> +				<xsd:element ref="SupplementProfile"/> +				<xsd:element name="SupplementProfileID" type="xsd:string"/> +			</xsd:choice> +			<xsd:element name="SignatureManifestCheckParams" minOccurs="0"> +				<xsd:complexType> +					<xsd:sequence> +						<xsd:element name="ReferenceInfo" type="VerifyTransformsDataType" maxOccurs="unbounded"> +							<xsd:annotation> +								<xsd:documentation>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.</xsd:documentation> +							</xsd:annotation> +						</xsd:element> +					</xsd:sequence> +					<xsd:attribute name="ReturnReferenceInputData" type="xsd:boolean" use="optional" default="true"/> +				</xsd:complexType> +			</xsd:element> +			<xsd:element name="ReturnHashInputData" minOccurs="0"/> +			<xsd:element name="TrustProfileID" type="xsd:token"> +				<xsd:annotation> +					<xsd:documentation>mit diesem Profil wird eine Menge von +						vertrauenswürdigen Wurzelzertifikaten spezifiziert +					</xsd:documentation> +				</xsd:annotation> +			</xsd:element> +		</xsd:sequence> +	</xsd:complexType> +	<!--### Verify XML Signature Response ### --> +	<xsd:element name="VerifyXMLSignatureResponse" type="VerifyXMLSignatureResponseType"/> +	<xsd:complexType name="VerifyXMLSignatureResponseType"> +		<xsd:sequence> +			<xsd:element name="SignerInfo" type="dsig:KeyInfoType"> +				<xsd:annotation> +					<xsd:documentation>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</xsd:documentation> +				</xsd:annotation> +			</xsd:element> +			<xsd:element name="HashInputData" type="InputDataType" minOccurs="0" maxOccurs="unbounded"/> +			<xsd:element name="ReferenceInputData" type="InputDataType" minOccurs="0" maxOccurs="unbounded"/> +			<xsd:element name="SignatureCheck" type="ReferencesCheckResultType"/> +			<xsd:element name="SignatureManifestCheck" type="ReferencesCheckResultType" minOccurs="0"/> +			<xsd:element name="XMLDSIGManifestCheck" type="ManifestRefsCheckResultType" minOccurs="0" maxOccurs="unbounded"/> +			<xsd:element name="CertificateCheck" type="CheckResultType"/> +			<xsd:element name="FormCheckResult" type="FormResultType" minOccurs="0" maxOccurs="unbounded"/> +			<xsd:element name="ExtendedCertificateCheck" type="ExtendedCertificateCheckResultType" minOccurs="0" maxOccurs="1"/> +		</xsd:sequence> +	</xsd:complexType> +	<xsd:complexType name="VerifyASICXMLSignatureResponseType"> +		<xsd:sequence> +			<xsd:element name="SignerInfo" type="dsig:KeyInfoType"> +				<xsd:annotation> +					<xsd:documentation>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</xsd:documentation> +				</xsd:annotation> +			</xsd:element> +			<xsd:element name="SigningTime" type="xsd:dateTime" minOccurs="0"/> +			<xsd:element name="HashInputData" type="InputDataType" minOccurs="0" maxOccurs="unbounded"/> +			<xsd:element name="ReferenceInputData" type="InputDataType" minOccurs="0" maxOccurs="unbounded"/> +			<xsd:element name="SignatureCheck" type="ReferencesCheckResultType"/> +			<xsd:element name="SignatureManifestCheck" type="ReferencesCheckResultType" minOccurs="0"/> +			<xsd:element name="XMLDSIGManifestCheck" type="ManifestRefsCheckResultType" minOccurs="0" maxOccurs="unbounded"/> +			<xsd:element name="CertificateCheck" type="CheckResultType"/> +			<xsd:element name="FormCheckResult" type="FormResultType" minOccurs="0" maxOccurs="unbounded"/> +			<xsd:element name="ExtendedCertificateCheck" type="ExtendedCertificateCheckResultType" minOccurs="0" maxOccurs="1"/> +		</xsd:sequence> +	</xsd:complexType> +	<xsd:simpleType name="ProfileIdentifierType"> +		<xsd:restriction base="xsd:token"/> +	</xsd:simpleType> +	<xsd:complexType name="InputDataType"> +		<xsd:complexContent> +			<xsd:extension base="ContentExLocRefBaseType"> +				<xsd:attribute name="PartOf" use="optional" default="SignedInfo"> +					<xsd:simpleType> +						<xsd:restriction base="xsd:token"> +							<xsd:enumeration value="SignedInfo"/> +							<xsd:enumeration value="XMLDSIGManifest"/> +						</xsd:restriction> +					</xsd:simpleType> +				</xsd:attribute> +				<xsd:attribute name="ReferringSigReference" type="xsd:nonNegativeInteger" use="optional"/> +			</xsd:extension> +		</xsd:complexContent> +	</xsd:complexType> +	<xsd:complexType name="MetaInfoType"> +		<xsd:sequence> +			<xsd:element name="MimeType" type="MimeTypeType"/> +			<xsd:element name="Description" type="xsd:anyURI" minOccurs="0"/> +			<xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> +		</xsd:sequence> +	</xsd:complexType> +	<xsd:complexType name="FinalDataMetaInfoType"> +		<xsd:complexContent> +			<xsd:extension base="MetaInfoType"> +				<xsd:sequence> +					<xsd:element name="Type" type="xsd:anyURI" minOccurs="0"/> +				</xsd:sequence> +			</xsd:extension> +		</xsd:complexContent> +	</xsd:complexType> +	<xsd:complexType name="DataObjectInfoType"> +		<xsd:sequence> +			<xsd:element name="DataObject"> +				<xsd:complexType> +					<xsd:complexContent> +						<xsd:extension base="ContentOptionalRefType"/> +					</xsd:complexContent> +				</xsd:complexType> +			</xsd:element> +			<xsd:choice> +				<xsd:annotation> +					<xsd:documentation>Auswahl: Entweder explizite Angabe EINER +						Transformationskette inklusive ggf. sinnvoller Supplements oder +						Verweis auf ein benanntes Profil</xsd:documentation> +				</xsd:annotation> +				<xsd:element ref="CreateTransformsInfoProfile"/> +				<xsd:element name="CreateTransformsInfoProfileID" type="ProfileIdentifierType"/> +			</xsd:choice> +		</xsd:sequence> +		<xsd:attribute name="Structure" use="required"> +			<xsd:simpleType> +				<xsd:restriction base="xsd:string"> +					<xsd:enumeration value="detached"/> +					<xsd:enumeration value="enveloping"/> +				</xsd:restriction> +			</xsd:simpleType> +		</xsd:attribute> +	</xsd:complexType> +	<xsd:complexType name="CMSDataObjectInfoType"> +		<xsd:sequence> +			<xsd:element name="DataObject"> +				<xsd:complexType> +					<xsd:complexContent> +						<xsd:extension base="CMSDataObjectRequiredMetaType"/> +					</xsd:complexContent> +				</xsd:complexType> +			</xsd:element> +		</xsd:sequence> +		<xsd:attribute name="Structure" use="required"> +			<xsd:simpleType> +				<xsd:restriction base="xsd:string"> +					<xsd:enumeration value="detached"/> +					<xsd:enumeration value="enveloping"/> +				</xsd:restriction> +			</xsd:simpleType> +		</xsd:attribute> +	</xsd:complexType> +	<xsd:complexType name="TransformsInfoType"> +		<xsd:sequence> +			<xsd:element ref="dsig:Transforms" minOccurs="0"/> +			<xsd:element name="FinalDataMetaInfo" type="FinalDataMetaInfoType"/> +		</xsd:sequence> +	</xsd:complexType> +	<xsd:complexType name="XMLDataObjectAssociationType"> +		<xsd:sequence> +			<xsd:element name="MetaInfo" type="MetaInfoType" minOccurs="0"/> +			<xsd:element name="Content" type="ContentRequiredRefType"/> +		</xsd:sequence> +	</xsd:complexType> +	<xsd:complexType name="PDFSignedRepsonse"> +		<xsd:sequence> +			<xsd:element name="SignatureID" type="xsd:string" minOccurs="0" maxOccurs="1"/> +			<xsd:choice maxOccurs="1"> +				<xsd:element name="PDFSignature" type="xsd:base64Binary"> +					<xsd:annotation> +						<xsd:documentation>Resultat, falls die Signaturerstellung +							erfolgreich war</xsd:documentation> +					</xsd:annotation> +				</xsd:element> +				<xsd:element ref="ErrorResponse"/> +			</xsd:choice> +		</xsd:sequence> +	</xsd:complexType> +	<xsd:complexType name="CMSDataObjectOptionalMetaType"> +		<xsd:sequence> +			<xsd:element name="MetaInfo" type="MetaInfoType" minOccurs="0"/> +			<xsd:element name="Content" type="CMSContentBaseType"/> +		</xsd:sequence> +	</xsd:complexType> +	<xsd:complexType name="CMSDataObjectRequiredMetaType"> +		<xsd:sequence> +			<xsd:element name="MetaInfo" type="MetaInfoType"/> +			<xsd:element name="Content" type="CMSContentBaseType"/> +		</xsd:sequence> +	</xsd:complexType> +	<xsd:complexType name="CMSContentBaseType"> +		<xsd:complexContent> +			<xsd:restriction base="ContentOptionalRefType"> +				<xsd:choice minOccurs="0"> +					<xsd:element name="Base64Content" type="xsd:base64Binary"/> +				</xsd:choice> +			</xsd:restriction> +		</xsd:complexContent> +	</xsd:complexType> +	<xsd:complexType name="CheckResultType"> +		<xsd:sequence> +			<xsd:element name="Code" type="xsd:nonNegativeInteger"/> +			<xsd:element name="Info" type="AnyChildrenType" minOccurs="0"/> +		</xsd:sequence> +	</xsd:complexType> +	<xsd:complexType name="FormResultType"> +		<xsd:sequence> +			<xsd:element name="Code" type="xsd:nonNegativeInteger" minOccurs="1" maxOccurs="1"/> +			<xsd:element name="Name" type="xsd:string" minOccurs="1" maxOccurs="1"/> +		</xsd:sequence> +	</xsd:complexType> +	<xsd:complexType name="IndicationResultType"> +		<xsd:sequence> +			<xsd:element name="Code" type="xsd:nonNegativeInteger" minOccurs="1" maxOccurs="1"/> +			<xsd:element name="Name" type="xsd:string" minOccurs="1" maxOccurs="1"/> +		</xsd:sequence> +	</xsd:complexType> +	<xsd:complexType name="ExtendedCertificateCheckResultType"> +		<xsd:sequence> +			<xsd:element name="Major" type="IndicationResultType" minOccurs="1" maxOccurs="1"/> +			<xsd:element name="Minor" type="IndicationResultType" minOccurs="0" maxOccurs="1"/> +		</xsd:sequence> +	</xsd:complexType> +	<xsd:complexType name="ReferencesCheckResultType"> +		<xsd:complexContent> +			<xsd:restriction base="CheckResultType"> +				<xsd:sequence> +					<xsd:element name="Code" type="xsd:nonNegativeInteger"/> +					<xsd:element name="Info" type="ReferencesCheckResultInfoType" minOccurs="0"/> +				</xsd:sequence> +			</xsd:restriction> +		</xsd:complexContent> +	</xsd:complexType> +	<xsd:complexType name="ReferencesCheckResultInfoType" mixed="true"> +		<xsd:complexContent> +			<xsd:restriction base="AnyChildrenType"> +				<xsd:sequence> +					<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> +					<xsd:element name="FailedReference" type="xsd:positiveInteger" minOccurs="0" maxOccurs="unbounded"/> +				</xsd:sequence> +			</xsd:restriction> +		</xsd:complexContent> +	</xsd:complexType> +	<xsd:complexType name="ManifestRefsCheckResultType"> +		<xsd:complexContent> +			<xsd:restriction base="CheckResultType"> +				<xsd:sequence> +					<xsd:element name="Code" type="xsd:nonNegativeInteger"/> +					<xsd:element name="Info" type="ManifestRefsCheckResultInfoType"/> +				</xsd:sequence> +			</xsd:restriction> +		</xsd:complexContent> +	</xsd:complexType> +	<xsd:complexType name="ManifestRefsCheckResultInfoType" mixed="true"> +		<xsd:complexContent> +			<xsd:restriction base="AnyChildrenType"> +				<xsd:sequence> +					<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> +					<xsd:element name="FailedReference" type="xsd:positiveInteger" minOccurs="0" maxOccurs="unbounded"/> +					<xsd:element name="ReferringSigReference" type="xsd:positiveInteger"/> +				</xsd:sequence> +			</xsd:restriction> +		</xsd:complexContent> +	</xsd:complexType> +	<!--########## Error Response ### --> +	<xsd:element name="ErrorResponse" type="ErrorResponseType"> +		<xsd:annotation> +			<xsd:documentation>Resultat, falls die Signaturerstellung gescheitert +				ist</xsd:documentation> +		</xsd:annotation> +	</xsd:element> +	<xsd:complexType name="ErrorResponseType"> +		<xsd:sequence> +			<xsd:element name="ErrorCode" type="xsd:integer"/> +			<xsd:element name="Info" type="xsd:string"/> +		</xsd:sequence> +	</xsd:complexType> +	<!--########## Auxiliary Types ### --> +	<xsd:simpleType name="KeyIdentifierType"> +		<xsd:restriction base="xsd:string"/> +	</xsd:simpleType> +	<xsd:simpleType name="KeyStorageType"> +		<xsd:restriction base="xsd:string"> +			<xsd:enumeration value="Software"/> +			<xsd:enumeration value="Hardware"/> +		</xsd:restriction> +	</xsd:simpleType> +	<xsd:simpleType name="MimeTypeType"> +		<xsd:restriction base="xsd:token"/> +	</xsd:simpleType> +	<xsd:complexType name="AnyChildrenType" mixed="true"> +		<xsd:sequence> +			<xsd:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> +		</xsd:sequence> +	</xsd:complexType> +	<xsd:complexType name="XMLContentType" mixed="true"> +		<xsd:complexContent> +			<xsd:extension base="AnyChildrenType"> +				<xsd:attribute ref="xml:space" use="optional"/> +			</xsd:extension> +		</xsd:complexContent> +	</xsd:complexType> +	<xsd:complexType name="ContentBaseType"> +		<xsd:choice minOccurs="0"> +			<xsd:element name="Base64Content" type="xsd:base64Binary"/> +			<xsd:element name="XMLContent" type="XMLContentType"/> +			<xsd:element name="LocRefContent" type="xsd:anyURI"/> +		</xsd:choice> +	</xsd:complexType> +	<xsd:complexType name="ContentExLocRefBaseType"> +		<xsd:complexContent> +			<xsd:restriction base="ContentBaseType"> +				<xsd:choice minOccurs="0"> +					<xsd:element name="Base64Content" type="xsd:base64Binary"/> +					<xsd:element name="XMLContent" type="XMLContentType"/> +				</xsd:choice> +			</xsd:restriction> +		</xsd:complexContent> +	</xsd:complexType> +	<xsd:complexType name="ContentOptionalRefType"> +		<xsd:complexContent> +			<xsd:extension base="ContentBaseType"> +				<xsd:attribute name="Reference" type="xsd:anyURI" use="optional"/> +			</xsd:extension> +		</xsd:complexContent> +	</xsd:complexType> +	<xsd:complexType name="ContentRequiredRefType"> +		<xsd:complexContent> +			<xsd:restriction base="ContentOptionalRefType"> +				<xsd:choice minOccurs="0"> +					<xsd:element name="Base64Content" type="xsd:base64Binary"/> +					<xsd:element name="XMLContent" type="XMLContentType"/> +					<xsd:element name="LocRefContent" type="xsd:anyURI"/> +				</xsd:choice> +				<xsd:attribute name="Reference" type="xsd:anyURI" use="required"/> +			</xsd:restriction> +		</xsd:complexContent> +	</xsd:complexType> +	<xsd:complexType name="VerifyTransformsDataType"> +		<xsd:choice maxOccurs="unbounded"> +			<xsd:annotation> +				<xsd:documentation>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. +				</xsd:documentation> +			</xsd:annotation> +			<xsd:element ref="VerifyTransformsInfoProfile"/> +			<xsd:element name="VerifyTransformsInfoProfileID" type="xsd:string"> +				<xsd:annotation> +					<xsd:documentation>Profilbezeichner für einen Transformationsweg +					</xsd:documentation> +				</xsd:annotation> +			</xsd:element> +		</xsd:choice> +	</xsd:complexType> +	<xsd:element name="QualifiedCertificate"> +		<xsd:complexType> +			<xsd:attribute name="source" use="optional"> +				<xsd:simpleType> +					<xsd:restriction base="xsd:token"> +						<xsd:enumeration value="TSL"/> +						<xsd:enumeration value="Certificate"/> +					</xsd:restriction> +				</xsd:simpleType> +			</xsd:attribute> +		</xsd:complexType> +	</xsd:element> +	<xsd:element name="SecureSignatureCreationDevice"> +		<xsd:complexType> +			<xsd:attribute name="source" use="optional"> +				<xsd:simpleType> +					<xsd:restriction base="xsd:token"> +						<xsd:enumeration value="TSL"/> +						<xsd:enumeration value="Certificate"/> +					</xsd:restriction> +				</xsd:simpleType> +			</xsd:attribute> +		</xsd:complexType> +	</xsd:element> +	<xsd:element name="IssuingCountry" type="xsd:token"/> +	<xsd:element name="PublicAuthority" type="PublicAuthorityType"/> +	<xsd:complexType name="PublicAuthorityType"> +		<xsd:sequence> +			<xsd:element name="Code" type="xsd:string" minOccurs="0"/> +		</xsd:sequence> +	</xsd:complexType> +	<xsd:simpleType name="SignatoriesType"> +		<xsd:union memberTypes="AllSignatoriesType"> +			<xsd:simpleType> +				<xsd:list itemType="xsd:positiveInteger"/> +			</xsd:simpleType> +		</xsd:union> +	</xsd:simpleType> +	<xsd:simpleType name="AllSignatoriesType"> +		<xsd:restriction base="xsd:string"> +			<xsd:enumeration value="all"/> +		</xsd:restriction> +	</xsd:simpleType> +	<xsd:complexType name="CreateSignatureLocationType"> +		<xsd:simpleContent> +			<xsd:extension base="xsd:token"> +				<xsd:attribute name="Index" type="xsd:integer" use="required"/> +			</xsd:extension> +		</xsd:simpleContent> +	</xsd:complexType> +	<xsd:complexType name="TransformParameterType"> +		<xsd:choice minOccurs="0"> +			<xsd:annotation> +				<xsd:documentation>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.</xsd:documentation> +			</xsd:annotation> +			<xsd:element name="Base64Content" type="xsd:base64Binary"> +				<xsd:annotation> +					<xsd:documentation>Der Transformationsparameter explizit angegeben. +					</xsd:documentation> +				</xsd:annotation> +			</xsd:element> +			<xsd:element name="Hash"> +				<xsd:annotation> +					<xsd:documentation>Der Hashwert des Transformationsparameters. +					</xsd:documentation> +				</xsd:annotation> +				<xsd:complexType> +					<xsd:sequence> +						<xsd:element ref="dsig:DigestMethod"/> +						<xsd:element ref="dsig:DigestValue"/> +					</xsd:sequence> +				</xsd:complexType> +			</xsd:element> +		</xsd:choice> +		<xsd:attribute name="URI" type="xsd:anyURI" use="required"/> +	</xsd:complexType> +	<xsd:element name="CreateSignatureEnvironmentProfile"> +		<xsd:complexType> +			<xsd:sequence> +				<xsd:element name="CreateSignatureLocation" type="CreateSignatureLocationType"/> +				<xsd:element name="Supplement" type="XMLDataObjectAssociationType" minOccurs="0" maxOccurs="unbounded"/> +			</xsd:sequence> +		</xsd:complexType> +	</xsd:element> +	<xsd:element name="VerifyTransformsInfoProfile"> +		<xsd:annotation> +			<xsd:documentation>Explizite Angabe des Transformationswegs +			</xsd:documentation> +		</xsd:annotation> +		<xsd:complexType> +			<xsd:sequence> +				<xsd:element ref="dsig:Transforms" minOccurs="0"/> +				<xsd:element name="TransformParameter" type="TransformParameterType" minOccurs="0" maxOccurs="unbounded"> +					<xsd:annotation> +						<xsd:documentation>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.</xsd:documentation> +					</xsd:annotation> +				</xsd:element> +			</xsd:sequence> +		</xsd:complexType> +	</xsd:element> +	<xsd:element name="Supplement" type="XMLDataObjectAssociationType"/> +	<xsd:element name="SupplementProfile" type="XMLDataObjectAssociationType"/> +	<xsd:element name="CreateTransformsInfoProfile"> +		<xsd:complexType> +			<xsd:sequence> +				<xsd:element name="CreateTransformsInfo" type="TransformsInfoType"/> +				<xsd:element ref="Supplement" minOccurs="0" maxOccurs="unbounded"/> +			</xsd:sequence> +		</xsd:complexType> +	</xsd:element> +</xsd:schema> 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 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:eidas="http://eidas.europa.eu/saml-extensions" targetNamespace="http://eidas.europa.eu/saml-extensions" elementFormDefault="qualified" attributeFormDefault="unqualified"> + +	<xsd:element name="SPType" type="eidas:SPTypeType"/> +	<xsd:simpleType name="SPTypeType"> +		<xsd:restriction base="xsd:string"> +			<xsd:enumeration value="public"/> +			<xsd:enumeration value="private"/> +		</xsd:restriction> +	</xsd:simpleType> +	 +	<xsd:element name="RequestedAttributes" type="eidas:RequestedAttributesType"/> +	<xsd:complexType name="RequestedAttributesType"> +		<xsd:sequence> +			<xsd:element minOccurs="0" maxOccurs="unbounded" ref="eidas:RequestedAttribute"/> +		</xsd:sequence> +	</xsd:complexType> + +	<xsd:element name="RequestedAttribute" type="eidas:RequestedAttributeType"/> +	<xsd:complexType name="RequestedAttributeType"> +		<xsd:sequence> +			<xsd:element name="AttributeValue" minOccurs="0" maxOccurs="unbounded" type="xsd:anyType"/> +		</xsd:sequence> +		<xsd:attribute name="Name" type="xsd:string" use="required"/> +		<xsd:attribute name="NameFormat" type="xsd:anyURI" use="required" /> +		<xsd:attribute name="isRequired" type="xsd:boolean" use="required"/> +		<xsd:attribute name="FriendlyName" type="xsd:string" use="optional"/> +		<xsd:anyAttribute namespace="##other" processContents="lax" /> +	</xsd:complexType> +	 +</xsd:schema> | 
