<html>
<head>
	<title>MOA SP/SS-Anwendung</title>
	<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
	<meta content="heinz.rosenkranz@brz.gv.at" name="author"/>

<style type="text/css">
 	body { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
	td { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; }
	th { font-family:"Verdana", "Arial"; font-size:10pt; font-weight:bold; color:#c0c0c0; background:#505050}
	li { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
	ul { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; margin-top:3px }
	tt { font-size:9pt; color:#505060; }
	pre { font-size:9pt; color:#505060; }
	#titel { font-family:"Verdana", "Arial"; font-size:18pt; color:#505060; }
	#subtitel { font-family:"Verdana", "Arial"; font-size:12pt; font-weight:bold; color:#505060; }
	#slogan { font-family:"Verdana", "Arial"; font-size:8pt; color:#808090; text-align:justify; width:160px }
	#block { font-family:"Verdana", "Arial"; font-size:10pt; color:#505060; text-align:justify }
	#klein { font-family:"Verdana", "Arial"; font-size:9pt; color:#505060; margin-top:3px }
	a:link {color:#000090}
	a:visited {color:#000090}
	a:hover {color:#c03030}
	a {text-decoration: none}
</style>

<script language="JavaScript">
<!-- 
function goWin(url) {
	Fenster=window.open(url,"smallWin","toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=yes,scrollbars=yes,width=500,height=480,top=20,screenY=0,left=20,screenX=0");
	window.setTimeout("showWin()",300);
}
function showWin() { Fenster.focus(); }
// -->
</script>
</head>

<body bgcolor="#FFFFFF" >
<div style="width:650px">

<!-- Projekt-Logo -->
<div style="height:42px; font-size:16pt; color:#b0b8c0; background:#003050">
&#160;Module f�r Online-Applikationen
</div>
<div style="margin-left:8px; margin-top:3px; font-size:8pt; color:#707070; ">
<!-- Development Center der BRZ GmbH, A-Trust und IAIK Graz -->&#160;
</div>
<div style="margin-top:-65px; text-align:right; font-size:8pt; font-weight:bold; color:#d04040;" > 
Projekt <span style="font-size:48pt; ">moa</span>&#160;
</div>
<br />

<!-- First Section with Navigation -->
<table width="650" border="0" cellpadding="10" cellspacing="0">
<tr>
<td width="170"  valign="top">
<div style="font-weight:bold; margin-top:12px">MOA-SP/SS</div><br />
<div id="klein"><a href="#Webservices"><img src="../moa_images/idle.gif" border="0" width="13" height="14" /> 
	<b> Beispiel-Programme </b></div>
<div id="klein"><a href="#ClientExample"><img src="../moa_images/idle.gif" border="0" width="13" height="14" /> 
	<b> Client Example</b></div>
<div id="klein"><a href="#ServerAuth"><img src="../moa_images/idle.gif" border="0" width="13" height="14" /> 
	<b> Server Auth Example</b></div>
<div id="klein"><a href="#ClientAuth"><img src="../moa_images/idle.gif" border="0" width="13" height="14" /> 
	<b> Client Auth Example</b></div>
<div id="klein"><a href="#API"><img src="../moa_images/idle.gif" border="0" width="13" height="14" /> 
	<b> API Example</b></div>
<br />
<div id="klein"><a href="#Beispiel-Requests"><img src="../moa_images/idle.gif" border="0" width="13" height="14" /> 
	<b> Beispiel-Requests</b></div>

<div id="klein"><a href="#CreateXMLSignature1"><img src="../moa_images/idle.gif" border="0" width="13" height="14" /> 
	<b> CreateXMLSignature 1</b></div>
<div id="klein"><a href="#VerifyXMLSignature1"><img src="../moa_images/idle.gif" border="0" width="13" height="14" /> 
	<b> VerifyXMLSignature 1</b></div>
<div id="klein"><a href="#CreateXMLSignature2"><img src="../moa_images/idle.gif" border="0" width="13" height="14" /> 
	<b> CreateXMLSignature 2</b></div>
<div id="klein"><a href="#VerifyXMLSignature2"><img src="../moa_images/idle.gif" border="0" width="13" height="14" /> 
	<b> VerifyXMLSignature 2</b></div>
<div id="klein"><a href="#VerifyCMSSignature"><img src="../moa_images/idle.gif" border="0" width="13" height="14" /> 
	<b> VerifyCMSSignature</b></div>

<br />
<div id="klein"><a href="moa.htm"><img src="../moa_images/west.gif" border="0" width="13" height="14" />
	<b> Zur�ck</b></a></div>
<br /><br />
</td>

<td valign="top">
<div id="titel">MOA SP/SS-Anwendung</div>
<p id="block">
Die Module Signaturpr�fung (SP) und Serversignatur (SS) sind als plattformunabh�ngige Module ausgelegt, die �ber ein
Webservice bzw. ein Java-API verwendet werden k�nnen.
<br /><br />
Dieses Handbuch beschreibt die Verwendung der SP/SS-Module anhand einfacher exemplarischer Anwendungen: 
<ul>
<li>HTTPClientExample.java <br />Aufruf des Webservice �ber HTTP </li>
<li>HTTPSClientExampleServerAuth.java <br />Aufruf des Webservice �ber eine TLS-Verbindung mit serverseitiger Authentisierung</li>
<li>HTTPSClientExampleClientAuth.java <br />Aufruf des Webservice �ber eine TLS-Verbindung mit client- und serverseitiger Authentisierung</li>
<li>APIClientExample.java <br />Aufruf des API</li>
</ul>  
Weiters werden folgende Beispiel-Requests beschrieben:
<ul>
<li>einfache Requests f�r die Erstellung und �berpr�fung einer XML-Signatur</li>
<li>umfassende Requests f�r die Erstellung und �berpr�fung einer XML-Signatur</li>
<li>ein Request f�r die �berpr�fung einer CMS-Signatur</li>
</ul>

</p>
</td></tr></table>


<div id="voraussetzung" />
<table width="650" border="0" cellpadding="10" cellspacing="0">
<tr>
<td width="170" valign="top" id="klein">
<p id="subtitel">&#160;</p>
</div>
</td>
<td valign="top">
<p id="subtitel">Voraussetzungen</p>
<div id="block">
Die folgende Liste enth�lt die erforderlichen Java-Bibliotheken, um die Beispielprogramme auszuf�hren.
Die angef�hrten Versionsnummern bezeichnen jene Versionen dieser Java-Bibliotheken, mit denen die
Beispielprogramme getestet wurden. 
<br /><br />
<table border="1" width="100%" cellpadding="2" cellspacing="0">
<tr>
<th>Java-Bibliothek</th><th>Version</th><th>Bemerkung</th>
</tr><tr>
<tr valign="top">
<td>JDK</td><td>1.3+</td><td>Java Development Kit</td>
</tr><tr valign="top">
<td>Xerces <br />XML Parser</td><td>2.0.2+</td>
<td id="klein">nicht n�tig wenn JDK 1.4 verwendet wird <br />
 Download: <a href="http://xml.apache.org/xerces2-j/">xml.apache.org/xerces2-j</a> </td>
</tr><tr valign="top">
<td>AXIS Framework</td><td>1.0+</td>
<td id="klein">Download: <a href="http://xml.apache.org/axis/">xml.apache.org/axis</a> </td>
</tr><tr valign="top">
<td>JSSE</td><td>1.0.3+</td>
<td id="klein">wenn eine SSL Verbindung verwendet wird, nicht n�tig wenn JDK 1.4 verwendet wird <br />Download: <a href="http://java.sun.com/products/jsse/">java.sun.com/products/jsse</a> </td>
</tr><tr valign="top">
<td>Servlet API</td><td>2.3+</td>
<td id="klein">nicht n�tig wenn AXIS 1.1 verwendet wird <br />
Download: <a href="http://java.sun.com/products/servlet/">java.sun.com/products/servlet</a> </td>
</tr>
</table>
</div>
</td></tr></table>
<br /><br />



<div id="Webservices" />
<table width="650" border="0" cellpadding="10" cellspacing="0">
<tr>
<td width="170" valign="top" id="klein">
<p id="titel">&#160;</p>
<p id="subtitel">&#160;</p>
</td>
<td valign="top">
<p id="titel">Beispiel-Programme </p>
<div id="block">Im folgenden werden vier Beispiele f�r Client-Applikationen beschrieben: </div>
<ul>
<li>HTTPClientExample <br />
Aufruf des Webservice �ber HTTP</li>
<li>HTTPSClientExampleServerAuth <br />
Aufruf des Webservice �ber eine TLS-Verbindung mit serverseitiger Authentisierung </li>
<li>HTTPSClientExampleClientAuth <br />
Aufruf des Webservice �ber eine TLS-Verbindung mit client- und serverseitiger Authentisierung</li>
<li>APIClientExample <br />
Aufruf des API</li>
</ul>
</td></tr></table>
<br /><br />



<div id="ClientExample" />
<table width="650" border="0" cellpadding="10" cellspacing="0">
<tr>
<td width="170" valign="top" id="klein">
<p id="subtitel">&#160;</p>
<div id="slogan">
<b>Beispiel: </b><br />
<a href="examples/testclient/example_request.xml" target="_new">example_request.xml</a><br />
<a href="HTTPClientExample.txt" target="_new">HTTPClientExample</a><br />
<br /><br />
</div>
</td>
<td valign="top">
<p id="subtitel">Beispiel HTTPClientExample </p>
<div id="block">
<b>1. Einlesen des XML-Request aus einer Datei</b><br />
<pre>
    FileInputStream inputStream = 
        new FileInputStream("example_request.xml");
</pre
<br /><br />

<b>2. Aufbau der DOM-Struktur</b><br />
Erstellen der BuilderFactory f�r den Parser 
<pre>
    DocumentBuilderFactory factory = 
        DocumentBuilderFactory.newInstance();
</pre>
Namespaces m�ssen im Request definiert sein, darum 
<pre>
    factory.setNamespaceAware(true);
</pre>
Einen neuen Builder instanzieren 
<pre>
    DocumentBuilder builder = 
        factory.newDocumentBuilder();
</pre>
XML-Datei einlesen und parsen 
<pre>
    Document root_request = 
        builder.parse(inputStream);
</pre>
<br /><br />

<b>3. AXIS Service instanzieren</b><br />
Service erstellen. SERVICE_QNAME ist entweder SignatureCreation oder SignatureVerification. 
<pre>
    Service service = 
        ServiceFactory.newInstance().
            createService(SERVICE_QNAME);
</pre>
Call Object erstellen 
<pre>
    Call call = service.createCall();
</pre>
Ein SOAP Body Objekt erzeugen und mit dem Request aus der Datei f�llen 
<pre>
    SOAPBodyElement body = 
        new SOAPBodyElement(root_request.
            getDocumentElement());
    SOAPBodyElement[] params = 
        new SOAPBodyElement[] {body};
</pre>
Serviceendpunkt einstellen. URL zum Server mit dem Webservice z.b. http://localhost:8080/moa-spss/services/SignatureCreation. 
<pre>
    call.setTargetEndpointAddress(ENDPOINT);
</pre>
<br /><br />

<b>4. Service aufrufen</b><br />
Request durchf�hren (Parameter werden als Array von SOAPBodyElement-Objekten �bergeben) 
<pre>
    Vector responses = (Vector)call.invoke(params);
</pre>
Response auslesen 
<pre>
    SOAPBodyElement response = 
        (SOAPBodyElement) responses.get(0);
</pre>
Response-Document auslesen 
<pre>
    Document root_response = response.getAsDocument();
</pre>
<br /><br />

<b>5. Exceptions behandeln</b><br />
Folgende Exceptions k�nnen auftreten und m�ssen bei der Dokumentverarbeitung
behandelt werden:<br />
<table border="1" width="100%" cellpadding="2" cellspacing="0">
<tr>
<th>Exception</th><th>Beschreibung</th>
</tr><tr>
<tr valign="top">
<td>FileNotFoundException</td><td>Datei kann nicht gefunden werden</td>
</tr><tr valign="top">
<td>IOException</td><td>Datei kann nicht gelesen werden</td>
</tr><tr valign="top">
<td>ParserConfigurationException</td><td>Parsereinstellungen nicht korrekt</td>
</tr><tr valign="top">
<td>xxSAXException</td><td>Fehler beim Parsen (z.b. XML-Fehler in der Eingabedatei)</td>
</tr><tr valign="top">
<td>ServiceException</td><td>Fehler beim Durchf�hren des AXIS Request</td>
</tr><tr valign="top">
<td>RemoteException</td><td>Probleme mit der Verbindung</td>
</tr>
</table>

</div>
</td></tr></table>
<br /><br />



<div id="ServerAuth" />
<table width="650" border="0" cellpadding="10" cellspacing="0">
<tr>
<td width="170" valign="top" id="klein">
<p id="subtitel">&#160;</p>
<div id="slogan">
<b>Beispiel: </b><br />
<a href="examples/testclient/example_request.xml" target="_new">example_request.xml</a><br />
<a href="HTTPSClientExampleServerAuth.txt" target="_new">HTTPSClientExample 1</a><br />
<br /><br />
</div>
</td>
<td valign="top">
<p id="subtitel">Beispiel HTTPSClientExampleServerAuth</p>
<div id="block">
Zus�tzlich zu HTTPClientExample: <br /><br />
Erst werden die Konstanten f�r die Systemproperties gesetzt 
<pre>
    handler = "java.protocol.handler.pkgs";
    trustStore = "javax.net.ssl.trustStore";
    trustStorePassword = 
      "javax.net.ssl.trustStorePassword";
</pre>
Hinzuf�gen des SSL-Providers in das Systemobjekt Security 
<pre>
    Security.addProvider(
      new com.sun.net.ssl.internal.ssl.Provider());
</pre>
Setzen der Systemproperties f�r den SSL-Provider 
<pre>
    System.setProperty(
      handler,"com.sun.net.ssl.internal.www.protocol");
    System.setProperty(
      trustStore, "client.keystore");
    System.setProperty(trustStorePassword, "changeit");
</pre>

Danach mu� nur noch der Endpunkt umgestellt werden von ENDPOINT zu SECURE_ENDPOINT
<pre>
    "http://localhost:8080/moa-spss/
            services/SignatureCreation"
</pre>
wird zu
<pre>
    "https://localhost:8443/moa-spss/
            services/SignatureCreation"
</pre>
AXIS erkennt das es sich um eine sichere Verbindung handelt und initialisert die Verbindung �ber einen SecureSocket. 
</div>
</td></tr></table>
<br /><br />



<div id="ClientAuth" />
<table width="650" border="0" cellpadding="10" cellspacing="0">
<tr>
<td width="170" valign="top" id="klein">
<p id="subtitel">&#160;</p>
<div id="slogan">
<b>Beispiel: </b><br />
<a href="examples/testclient/example_request.xml" target="_new">example_request.xml</a><br />
<a href="HTTPSClientExampleClientAuth.txt" target="_new">HTTPSClientExample 2</a><br />
<br /><br />
</div>
</td>
<td valign="top">
<p id="subtitel">Beispiel HTTPSClientExampleClientAuth</p>
<div id="block">
Zus�tzlich zu HTTPSClientExampleServerAuth: <br /><br />
F�r Clientauthorisierung kommen noch folgende Properties hinzu 
<pre>
    keyStore = "javax.net.ssl.keyStore";
    keyStorePassword = "javax.net.ssl.keyStorePassword";
    System.setProperty(
        keyStore, "client.keystore");
    System.setProperty(keyStorePassword, "changeit");
</pre>
</div>
</td></tr></table>
<br /><br />

<div id="API" />
<table width="650" border="0" cellpadding="10" cellspacing="0">
<tr>
<td width="170" valign="top" id="klein">
<p id="subtitel">&#160;</p>
<div id="slogan">
<b>Beispiel: </b><br />
<a href="APIClientExample.txt" target="_new">APIClientExample</a><br />
<br /><br />
</div>
</td>
<td valign="top">
<p id="subtitel">Beispiel APIClientExample</p>
<div id="block">
Folgende VM-Properties m&uuml;ssen gesetzt sein um das API Beispiel
ausf�hren zu k�nnen.<br /><br />

<table border="1" cellpadding="2" cellspacing="0">
<tr>
<th colspan=2>moa.spss.server.configuration</th>
</tr><tr>
<tr valign="top">
<td>Pfad&nbsp;zur&nbsp;Konfiguration von&nbsp;MOA-SPSS</td><td>Beispiel C:\moa\ConfigurationTest.xml </td>
</tr>
<th colspan=2>log4j.configuration</th>
<tr valign="top">
<td>Pfad zu einer g&uuml;ltigen Log4J Konfiguration</td><td>Beispiel file:/C:/moa/log4j.properties</td>
</tr><tr valign="top">
</tr>
</table>
<br />
Serverfunktionshandler instanzieren
<pre>	SPSSFactory spf = 
		SPSSFactory.getInstance();</pre>

Signaturedaten in ein Contentobjekt einbinden
<pre>	byte[]data = 
		"Dies sind Testdaten".getBytes("UTF-8");
	ByteArrayInputStream bis = 
		new ByteArrayInputStream(data);
	Content cont = 
		spf.createContent(bis,"http://uri.data.org");</pre>

Beschreibungselement zu den Daten erstellen
<pre>	MetaInfo mi = 
	spf.createMetaInfo("text/plain","Testdaten",null);</pre>

Transformationen erstellen
<pre>	CreateTransformsInfo cti = 
		spf.createCreateTransformsInfo(null,mi);
	CreateTransformsInfoProfile ct = 
		spf.createCreateTransformsInfoProfile(
			cti,
			null);</pre>

Datenobjekt aufbauen
<pre>	DataObjectInfo doi = 
		spf.createDataObjectInfo(
			DataObjectInfo.STRUCTURE_DETACHED,
			false,
			cont,
			ct);
	List dataobjectinfolist = new ArrayList();
	dataobjectinfolist.add(doi);</pre>

alles zusammenpacken zu einer SingleSignature
<pre>	SingleSignatureInfo ssi = 
		spf.createSingleSignatureInfo(
			dataobjectinfolist,
			null,
			false);
	List singlesignatureinfolist = new ArrayList();
	singlesignatureinfolist.add(ssi);</pre>
die Signatur in einen Request einbetten
<pre>	CreateXMLSignatureRequest cxsreq = 
		spf.createCreateXMLSignatureRequest(
			"PKCS12RSAKey1",
			singlesignatureinfolist);</pre>

Signatureerstellungsservice instanzieren
<pre>	SignatureCreationService scs = 
		SignatureCreationService.getInstance();</pre>
		
Signatureerstellungsservice aufrufen		
<pre>	CreateXMLSignatureResponse cxsres = 
		scs.createXMLSignature(cxsreq);</pre>
		
Response auswerten
<pre>	List elements = cxsres.getResponseElements();
	
	SignatureEnvironmentResponse ser = 
	(SignatureEnvironmentResponse)elements.get(0);</pre>

Responsetyp lesen
<pre>	int response_type = ser.getResponseType();
	if(response_type == 
		SignatureEnvironmentResponse.ERROR_RESPONSE)
	{
		...
	}
</pre>
Fehlerfall
<pre>	System.out.println("Bei der Erstellung der 
	Signatur ist ein Fehler aufgetreten");
</pre>
Signaturerstellung erfolgreich
<pre>	Element se = ser.getSignatureEnvironment();
	System.out.println(
		"Signaturerstellung erfolgreich");
	displayTree(se);
</pre>	

</div>
</td></tr></table>
<br /><br />


<div id="Beispiel-Requests" />
<table width="650" border="0" cellpadding="10" cellspacing="0">
<tr>
<td width="170" valign="top" id="klein">
<p id="subtitel">&#160;</p>
</td>
<td valign="top">
<p id="titel">Beispiel-Requests</p>
<div id="block">
In den folgenden Abschnitten werden einfache und umfassende Beispiele f�r Requests beschrieben, die an MOA-SP/SS
gesendet werden k�nnen.  Damit soll der Anwendungsentwickler einen �berblick �ber die 
M�glichkeiten von MOA-SP/SS vermittelt bekommen.  Die detaillierte und vollst�ndige Beschreibung 
des Funktionsumfangs ist in den Spezifikationen von MOA-SP/SS und des Security-Layers enthalten.
</div>
</td></tr></table>
<br /><br />



<div id="CreateXMLSignature1" />
<table width="650" border="0" cellpadding="10" cellspacing="0">
<tr>
<td width="170" valign="top" id="klein">
<p id="subtitel">&#160;</p>
<div id="slogan">
<b>Beispiel: </b><br />
<a href="examples/requestsResponses/CreateXMLSignatureRequest1.xml"  target="_new">Request</a><br />
<a href="examples/requestsResponses/CreateXMLSignatureResponse1.xml" target="_new">Response</a><br />
<br /><br />
</div>
</td>
<td valign="top">
<p id="subtitel">Beispiel:<br/ > einfacher CreateXMLSignatureRequest</p>
<div id="block">
Das Beispiel in <a href="examples/requestsResponses/CreateXMLSignatureRequest1.xml" target="_new">CreateXMLSignatureReqest1.xml</a> zeigt einen
einfachen <tt>&lt;CreateXMLSignatureRequest&gt;</tt>.  Die Bedeutung der einzelnen Elemente
wird im folgenden beschrieben:
<pre>
  &lt;KeyIdentifier&gt;PKCS12RSAKey1&lt;/KeyIdentifier&gt;
</pre>
<tt>PKCS12RSAKey1</tt> bezeichnet eine Schl�sselgruppe aus der MOA-SS einen Signaturschl�ssel selektieren soll
und muss einer im Konfigurationsfile definierten <tt>&lt;KeyGroup&gt;</tt> entsprechen.
<pre>
  &lt;SingleSignatureInfo SecurityLayerConformity="false"&gt;
</pre>
F�r jedes <tt>&lt;SingleSignatureInfo&gt;</tt>-Element wird eine eigene XML-Signatur erzeugt.  Wird das
Attribut <tt>SecurityLayerConformity</tt> auf <tt>true</tt> gesetzt, dann wird eine XML-Signatur 
gem�� <a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20020831/core/Core.html#signaturerstellungNachXMLDSIGAntwort"
target="_new">Security-Layer Spezifikation</a> erzeugt; d.h. es werden signierte Properties (Zeitpunkt
der Signaturerstellung,
das f�r die Signatur�berpr�fung zu verwendende Zertifikat, Metainformationen zu den signierten Datenobjekten) und ein
Manifest, das alle implizite Transformationsparameter enth�lt, zur Signatur hinzugef�gt.
<pre>
    &lt;DataObjectInfo Structure="enveloping"&gt;
</pre>
F�r jedes Daten-Objekt, das in die Signatur als <tt>dsig:Reference</tt> aufgenommen werden soll, muss ein
<tt>DataObjectInfo</tt>-Element spezifiziert werden.  Das Attribut <tt>Structure</tt> gibt an, ob die Daten 
in die Signatur in ein <tt>&lt;dsig:Object&gt;</tt>-Element integriert werden soll
(<tt>Structure="enveloping"</tt>) oder via eine URL referenziert werden soll (<tt>Structure="detached"</tt>).
<br /><br />
Im Fall von <tt>Structure="enveloping"</tt> muss im nachfolgenden <tt>DataObject</tt> Element entweder das
Attribut <tt>Reference</tt> gesetzt sein oder die zu signierenden Daten explizit im Element <tt>Base64Content</tt> oder
<tt>XMLContent</tt> spezifiziert sein.  Die Angabe der zu signierenden Daten �ber das Attribut <tt>Reference</tt>
und gleichzeitig dem Element <tt>Base64Content</tt> oder <tt>XMLContent</tt> ist nicht erlaubt.
<br /><br />
Im Fall von <tt>Structure="detached"</tt> muss das Attribut <tt>Reference</tt> im nachfolgenden <tt>DataObject</tt>
Element gesetzt sein.  Die Angabe der Elemente <tt>Base64Content</tt> oder <tt>XMLContent</tt> ist optional.
<pre>
      &lt;DataObject&gt;
        &lt;XMLContent xml:space="preserve"&gt;
          Diese Daten werden signiert.
        &lt;XMLContent&gt;
      &lt;/DataObject&gt;
</pre>
Die zu signierenden Daten werden im Element <tt>&lt;DataObject&gt;</tt> spezifiziert und k�nnen entweder als
<tt>&lt;XMLContent&gt;</tt> oder <tt>&lt;Base64Content&gt;</tt> oder �ber das Attribut <tt>Reference</tt>
angegeben werden. 
<pre>
      &lt;CreateTransformsInfoProfile&gt;
        &lt;CreateTransformsInfo&gt;
          &lt;FinalDataMetaInfo&gt;
            &lt;MimeType&gt;text/plain&lt;MimeType&gt;
          &lt;/FinalDataMetaInfo&gt;
        &lt;/CreateTransformsInfo&gt;
      &lt;/CreateTransformsInfoProfile&gt;
</pre>
Zu jedem Daten-Objekt k�nnen optional Transformationen (z.B. XPath, XSLT, Base64-Decodierung, etc.)angegeben werden.
Werden keine Transformationen angegeben so muss zumindest der MIME-Type der zu signierenden Daten spezifiziert werden.
<p>
Die von diesem Request erzeugt Response ist in <a href="examples/requestsResponses/CreateXMLSignatureResponse1.xml"
target="_new">CreateXMLSignatureResponse1.xml</a> abgelegt.
</div>
</td></tr></table>
<br /><br />


<div id="VerifyXMLSignature1" />
<table width="650" border="0" cellpadding="10" cellspacing="0">
<tr>
<td width="170" valign="top" id="klein">
<p id="subtitel">&#160;</p>
<div id="slogan">
<b>Beispiel: </b><br />
<a href="examples/requestsResponses/VerifyXMLSignatureRequest1.xml"  target="_new">Request</a><br />
<a href="examples/requestsResponses/VerifyXMLSignatureResponse1.xml" target="_new">Response</a><br />
<br /><br />
</div>
</td>
<td valign="top">
<p id="subtitel">Beispiel:<br/ > einfacher VerifyXMLSignatureRequest</p>
<div id="block">
Die oben erzeugte XML-Signatur kann mit dem in <a href="examples/requestsResponses/VerifyXMLSignatureRequest1.xml" target="_new">VerifyXMLSignatureReqest1.xml</a> gezeigten
einfachen <tt>&lt;VerifyXMLSignatureRequest&gt;</tt> wieder �berpr�ft werden.  
<pre>
&lt;VerifyXMLSignatureRequest
  xmlns="http://reference.e-government.gv.at/
                namespace/moa/20020822#"
  xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"&gt;
  
  &lt;VerifySignatureInfo&gt;
    &lt;VerifySignatureEnvironment&gt;
      &lt;XMLContent&gt;
        &lt;dsig:Signature
          Id="signature-1"
          xmlns:dsig="http://www.w3.org/2000/09/
                             xmldsig#"&gt;
          .........
        &lt;/dsig:Signature&gt;
      &lt;/XMLContent&gt;
    &lt;/VerifySignatureEnvironment&gt;
</pre>

Im Element <tt>VerifySignatureInfo</tt> wird zuerst die zu �berpr�fende Signatur im Element
<tt>VerifySignatureEnvironment</tt> angegeben.  Im Beispiel wird die Signatur als Kind-Element von
<tt>&lt;XMLContent&gt;</tt> spezifiziert.  Alternativ k�nnte die Signatur in Base64-Kodierung 
im Element <tt>&lt;Base64Content&gt;</tt> oder mit dem Attribut <tt>Reference</tt> �ber eine URL 
referenziert werden.

<pre>
    &lt;VerifySignatureLocation&gt;
      //dsig:Signature
    &lt;/VerifySignatureLocation&gt;
    
  &lt;/VerifySignatureInfo&gt;
</pre>

Weiters muss mittels eines XPath-Ausdrucks im Element <tt>&lt;VerifySignatureLocation&gt;</tt>
die Position der zu pr�fenden Signatur spezifiziert werden.  Werden im XPath-Ausdruck
Namespace-Prefixes verwendet, m�ssen die entsprechenden Namespace-Deklarationen im Kontext
des Elements <tt>VerifySignatureLocation</tt> bekannt sein.  Im Beispiel wird das Prefix <tt>dsig</tt> 
verwendet, das im Element <tt>&lt;VerifyXMLSignatureRequest&gt;</tt> deklariert wird.

<pre>
  &lt;TrustProfileID&gt;TrustProfile1&lt;TrustProfileID&gt;
</pre>
Abschlie�end wird im Element <tt>&lt;TrustProfileID&gt;</tt> ein Trustprofile spezifiziert, das am MOA-SP Server
definiert ist und jene Zertifikate enth�lt, die f�r diesen Request als vertrauensw�rdig gelten.
<p>
Die von diesem Request erzeugt Response ist in <a href="examples/requestsResponses/verifyXMLSignatureResponse1.xml"
target="_new">VerifyXMLSignatureResponse1.xml</a> abgelegt.  Die Response enth�lt das Ergebnis der Signaturpr�fung
im Element <tt>&lt;SignatureCheck&gt;</tt>, das Ergebnis der Zertifikatspr�fung im Element
<tt>&lt;CertificateCheck&gt;</tt> und Informationen �ber den Signator im Element
<tt>&lt;SignerInfo&gt/&lt;X509Data&gt;</tt>.  Die Informationen �ber den Signator bestehen aus den Elementen 
<tt>&lt;X509SubjectName&gt;</tt>, <tt>&lt;X509IssuerSerial&gt;</tt> und <tt>&lt;X509Certificate&gt;</tt>.

</div>
</td></tr></table>
<br /><br />


<div id="CreateXMLSignature2" /> 
<table width="650" border="0" cellpadding="10" cellspacing="0"> 
<tr> 
<td width="170" valign="top" id="klein"> 
<p id="subtitel">&#160;</p> <div id="slogan"> <b>Beispiel: </b><br /> <a 
href="examples/requestsResponses/CreateXMLSignatureRequest2.xml" target="_new">Request</a><br /> 
<a href="examples/requestsResponses/CreateXMLSignatureResponse2.xml" target="_new">Response</a>
<br /> <br /><br /> 
</div> 
</td> 
<td valign="top"> <p 
id="subtitel">Beispiel:<br/ > umfassender CreateXMLSignatureRequest</p> <div 
id="block"> Das Beispiel in <a 
href="examples/requestsResponses/CreateXMLSignatureRequest2.xml" 
target="_new">CreateXMLSignatureReqest2.xml</a> zeigt einen umfassenden 
<tt>&lt;CreateXMLSignatureRequest&gt;</tt>.
<br /><br />
Das Beispiel ben�tigt zwei Dateien, die �ber die URL 
<tt>http://localhost:8080/TestDatenGenerator/resources/&lt;Dateiname&gt;</tt> erreichbar sind.
Bevor der Beispiel-Request ausgef�hrt wird, muss daher
<a href="requestsResponses/TestDatenGenerator.zip">TestDatenGenerator.zip</a>
entpackt und in $CATALINA_HOME/webapps kopiert werden.  Voraussetzung ist, dass Tomcat auf Port 8080 l�uft.

<pre>
&lt;CreateXMLSignatureRequest
  xmlns="http://reference.e-government.gv.at/
      namespace/moa/20020822#"
  xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"&gt;
  &lt;KeyIdentifier&gt;PKCS12RSAKey1&lt;/KeyIdentifier&gt;
  &lt;SingleSignatureInfo SecurityLayerConformity="false"&gt;
    &lt;DataObjectInfo Structure="enveloping" 
    ChildOfManifest="true"&gt;
      &lt;DataObject&gt;
        &lt;XMLContent&gt;Diese Daten werden 
        signiert.&lt;/XMLContent&gt;
      &lt;/DataObject&gt;
      &lt;CreateTransformsInfoProfile&gt;
        &lt;CreateTransformsInfo&gt;
          &lt;FinalDataMetaInfo&gt;
            &lt;MimeType&gt;text/plain&lt;/MimeType&gt;
          &lt;/FinalDataMetaInfo&gt;
        &lt;/CreateTransformsInfo&gt;
      &lt;/CreateTransformsInfoProfile&gt;
    &lt;/DataObjectInfo&gt;
  &lt;/SingleSignatureInfo&gt;
</pre>

Der Anfang des Requests ist identisch mit dem <a href="#CreateXMLSignature1">einfachen CreateXMLSignatureRequest</a>.
Als Variation wurde <tt>&lt;ChildOfManifest= "true"&gt;</tt> gesetzt.

Damit wird spezifiziert, dass die zugeh�rige <tt>&lt;dsig:Reference&gt;</tt> nicht in das Element
<tt>&lt;SignedInfo&gt;</tt> sondern in ein XMLDSig-Manifest eingef�gt werden soll.

Wird das Attribut <tt>&lt;ChildOfManifest&gt;</tt> nicht gesetzt, dann
wird kein XMLDSig-Manifest erzeugt.

<pre>
  &lt;SingleSignatureInfo SecurityLayerConformity="true"&gt;
</pre>

Anschlie�end wird angegeben, dass eine zweite Signatur erstellt werden soll.
<tt>SecurityLayerConformity="true"</tt> gibt an, dass die Signatur entsprechend der Security-Layer
Spezifikation Version 1.1 erstellt werden muss, d.h. es werden Signaturattribute und gegebenenfalls ein
<a href="http://www.buergerkarte.at/konzept/securitylayer/spezifikation/20020831/core/Core.html#signaturerstellungNachXMLDSIGAntwortImplTransParam" target="_new">
Signatur-Manifest<a> erzeugt.  Wird eine Security-Layer konforme Signatur erzeugt, dann
darf <tt>&lt;ChildOfManifest="true"&gt;</tt> nicht gesetzt sein.
<p>
Die zweite Signatur soll zwei Datenobjekte enthalten:

<pre>
    &lt;DataObjectInfo Structure="detached"&gt;
</pre>

F�r das erste Datenobjekt sollen die signierten Daten nicht in der Signatur enthalten sein (<tt>Structure="detached"</tt>).

<pre>
      &lt;DataObject
        Reference="http://localhost:8080/TestDatenGenerator
                   /resources/testDaten.txt"&gt;
        &lt;Base64Content&gt;
          RGllcyBz........DQphdXM=
        &lt;/Base64Content&gt;
      &lt;/DataObject&gt;
      &lt;CreateTransformsInfoProfile&gt;
        &lt;CreateTransformsInfo&gt;
          &lt;FinalDataMetaInfo&gt;
            &lt;MimeType&gt;text/plain&lt;/MimeType&gt;
          &lt;/FinalDataMetaInfo&gt;
        &lt;/CreateTransformsInfo&gt;
      &lt;/CreateTransformsInfoProfile&gt;
    &lt;/DataObjectInfo&gt;
</pre>

Die zu signierenden Daten sind in Base64-Kodierung angegeben und werden in der Signatur �ber die URL, die im
Attribut <tt>Reference</tt> angegeben ist, referenziert.  Diese URL wird im Zuge der Signaturerstellung
nicht aufgel�st, da die Daten bereits explizit im Request angegeben sind. Es werden keine weitere
Transformationen f�r das Datenobjekt angegeben.
  
<pre>
    &lt;DataObjectInfo Structure="enveloping"&gt;
      &lt;DataObject&gt;
        &lt;XMLContent xml:space="preserve"&gt;
          &lt;data:book
            xmlns:data="http://uri.data.org"
            data:hardback="yes"&gt;
            &lt;data:title&gt;
              Gesundheitliche Auswirkungen 
              elektronischer Signaturen
            &lt;/data:title&gt;
            &lt;data:first-name&gt;Ellipse&lt;/data:first-name&gt;
            &lt;data:last-name&gt;Kurvenreich&lt;/data:last-name&gt;
            &lt;data:birth-date&gt;1951-04-16&lt;/data:birth-date&gt;
            &lt;data:birth-location&gt;
              Hinterm Berg
            &lt;/data:birth-location&gt;
            &lt;data:register-number&gt;
              6-930-21512-12
            &lt;/data:register-number&gt;
          &lt;/data:book&gt;
        &lt;/XMLContent&gt;
      &lt;/DataObject&gt;
</pre>

Das zweite Datenobjekt, das signiert werden soll ist eine XML-Struktur.
<p>
F�r die XML-Struktur wird eine Transformation spezifiziert, die angewendet werden muss, bevor die Daten signiert
werden:
<pre>
      &lt;CreateTransformsInfoProfile&gt;
</pre>
Transformationen k�nnen entweder explizit im Request im Element <tt>&lt;CreateTransformsInfoProfile&gt;</tt>
angegeben werden oder mit dem Element <tt>&lt;CreateTransformsInfoProfileID&gt;</tt> �ber eine am MOA-SS-Server
konfigurierte Profil-ID referenziert werden.
<pre>
        &lt;CreateTransformsInfo&gt;
</pre>
Im Transformationsprofil werden im Element <tt>&lt;CreateTransformsInfo&gt;</tt> die Transformationskette
(<tt>&lt;dsig:Transforms&gt;</tt>) und optionale Erg�nzungsobjekte (<tt>&lt;Supplement&gt;</tt>) angegeben.
<pre>
          &lt;dsig:Transforms&gt;
            &lt;dsig:Transform
              Algorithm="http://www.w3.org/TR/
                1999/REC-xslt-19991116"&gt;
              &lt;xsl:stylesheet
                xmlns:xsl="http://www.w3.org/
                   1999/XSL/Transform"
                version="1.0"&gt;
                &lt;xsl:include
                  href="http://localhost:8080/
                        TestDatenGenerator/resources/
                        CX1_book_not_here.xsl"/&gt;
              &lt;/xsl:stylesheet&gt;
            &lt;/dsig:Transform&gt;
          &lt;/dsig:Transforms&gt;
</pre>
Im Beispiel besteht die Transformationskette aus einer XSLT-Transformation, die ein weiteres XSLT Stylesheet inkludiert.
MOA-SS unterst�tzt alle Transformationen aus der XMLDSig-Spezifikation sowie Exclusive XML Canonicalization 1.0 und 
XPath Filter 2.0.

<pre>          
          &lt;FinalDataMetaInfo&gt;
            &lt;MimeType&gt;text/html&lt;/MimeType&gt;
          &lt;/FinalDataMetaInfo&gt;
        &lt;/CreateTransformsInfo&gt;
</pre>
<tt>&lt;FinalDataMetaInfo&gt;</tt> gibt den MIME-Type der Daten an, die das Ergebnis der Transformation bilden und
tats�chlich signiert werden.
<p>
Weiters k�nnen optional Erg�nzungsobjekte angegeben werden, die Daten enthalten, die von MOA-SP zur 
Signaturerstellung verwendet werden sollen:
<pre>
        &lt;Supplement&gt;
          &lt;Content Reference="http://localhost:8080/
                              TestDatenGenerator/resources/
                              CX1_book_not_here.xsl"&gt;
            &lt;Base64Content&gt;PHhzbDpzdHls.....eWxlc2hlZXQ+
            &lt;/Base64Content&gt;
          &lt;/Content&gt;
        &lt;/Supplement&gt;
      &lt;/CreateTransformsInfoProfile&gt;
    &lt;/DataObjectInfo&gt;
</pre>
Im aktuellen Beispiel wird ein Erg�nzungsobjekt f�r jenes Stylesheet angegeben, das im Stylesheet der oben
spezifizierten XSLT-Transformation referenziert wird. MOA-SS wird die angegebene URL nicht aufl�sen sondern
stattdessen die im Erg�nzungsobjekt enthaltenen Daten verwenden.
<p>
<pre>
    &lt;CreateSignatureInfo xmlns:env="http://uri.env.org"&gt;
</pre>
Abschlie�end wird hier noch mittels des optionalen Elements <tt>&lt;CreateSignatureInfo&gt;</tt> festgelegt,
dass die zu erzeugende Signatur in ein bereits bestehendes XML-Dokument eingebettet werden soll. Im Beispiel
wird das Namespace-Prefix <tt>env</tt> hier deklariert, da es weiter unten im Element
<tt>CreateSignatureLocation</tt> verwendet werden wird.
<pre>
      &lt;CreateSignatureEnvironment&gt;
        &lt;XMLContent&gt;
          &lt;env:Document
            xmlns:env="http://uri.env.org"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://uri.env.org
                                http://anyhost/envSchema.xsd"&gt;
            nach diesem Text wird die Signatur in das Dokument
            eingef�gt
          &lt;/env:Document&gt;
        &lt;/XMLContent&gt;
      &lt;/CreateSignatureEnvironment&gt;
</pre>
Im Element <tt>&lt;CreateSignatureEnvironment&gt;</tt> wird das XML-Dokument angegeben.
<pre>
      &lt;CreateSignatureEnvironmentProfile&gt;
        &lt;CreateSignatureLocation Index="1"&gt;
          /env:Document
        &lt;/CreateSignatureLocation&gt;
      &lt;/CreateSignatureEnvironmentProfile&gt;
</pre>
Anschlie�end wird im Profil angegeben an welcher Position des XML-Dokuments die Signatur eingef�gt werden
soll.  Im Element <tt>&lt;CreateSignatureLocation&gt;</tt> wird ein XPath-Ausdruck angegeben, der das
Element selektiert, als dessen Kind die Signatur eingef�gt werden soll.  Das Attribut <tt>Index</tt> spezifiziert
die Position innerhalb dieses Elements, an der die Signatur eingef�gt werden soll. <tt>"0"</tt> gibt an,
dass die Signatur als erstes Kind eingef�gt werden soll.</tt>
<pre>
    &lt;/CreateSignatureInfo&gt;
  &lt;/SingleSignatureInfo&gt;
&lt;/CreateXMLSignatureRequest&gt;
</pre>
Abschlie�end m�ssen alle Elemente wieder geschlossen werden.
<p>
Die von diesem Request erzeugt Response ist in <a href="examples/requestsResponses/CreateXMLSignatureResponse2.xml" target="_new">
CreateXMLSignatureResponse2.xml</a> abgelegt.  Die Response enth�lt zwei Elemente <tt>SignatureEnvironment</tt>, die die
beiden erzeugten Signaturen enthalten.
</div>
</td></tr></table>
<br /><br />

<div id="VerifyXMLSignature2" />
<table width="650" border="0" cellpadding="10" cellspacing="0">
<tr>
<td width="170" valign="top" id="klein">
<p id="subtitel">&#160;</p>
<div id="slogan">
<b>Beispiel: </b><br />
<a href="examples/requestsResponses/VerifyXMLSignatureRequest2.xml"  target="_new">Request</a><br />
<a href="examples/requestsResponses/VerifyXMLSignatureResponse2.xml" target="_new">Response</a><br />
<br /><br />
</div>
</td>


<td valign="top">
<p id="subtitel">Beispiel:<br/ > umfassender VerifyXMLSignatureRequest</p>
<div id="block">
Das Beispiel in <a href="examples/requestsResponses/VerifyXMLSignatureRequest2.xml" target="_new">
VerifyXMLSignatureReqest2.xml</a> zeigt wie die im obigen Beispiel erzeugte zweite Signatur 
�berpr�ft werden kann.
<pre>
&lt;VerifyXMLSignatureRequest
  xmlns="http://reference.e-government.gv.at/
     namespace/moa/20020822#"
  xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"&gt;
  &lt;DateTime&gt;2003-03-24T12:41:54+01:00&lt;/DateTime&gt;
</pre>
Optional kann ein Datum und eine Uhrzeit angegeben werden, f�r die die �berpr�fung durchgef�hrt werden soll.

<pre>  
  &lt;VerifySignatureInfo&gt;
    &lt;VerifySignatureEnvironment&gt;
     &lt;XMLContent&gt;
       &lt;env:Document xmlns:env="http://uri.env.org" .....&gt;
         nach diesem Text ..... Dokument eingefuegt
         &lt;dsig:Signature .....&gt;.....&lt;/dsig:Signature&gt;
       &lt;/env:Document&gt;
      &lt;/XMLContent&gt;
    &lt;/VerifySignatureEnvironment&gt;
</pre>
Die Signatur inklusive des umgebenden XML-Dokuments wird im Element <tt>&lt;VerifySignatureEnvironment&gt;</tt>
angegeben.
<pre>    
    &lt;VerifySignatureLocation&gt;
      //dsig:Signature
    &lt;/VerifySignatureLocation&gt;
  &lt;/VerifySignatureInfo&gt;
</pre>
Die zu pr�fende Signatur aus dem Element <tt>&lt;VerifySignatureEnvironment&gt;</tt> wird �ber einen XPath-Ausdruck
spezifiziert.

Enth�lt die Signatur ID-Attribute, die referenziert werden, dann muss das XML-Dokument validierend geparst werden k�nnen.
Im Beispiel-Request wird die URL des Schemas f�r das Element <tt>env:Document</tt> im Attribut <tt>xsi:schemaLocation</tt>
spezifiziert (<tt>http://anyhost/envSchema.xsd</tt>).  Soll MOA-SP diese URL nicht selbst aufl�sen, dann kann das
Schema kann im Element <tt>SupplementProfile</tt> �bergeben werden:

<pre>
  &lt;SupplementProfile&gt;
    &lt;Content Reference="http://anyhost/envSchema.xsd"&gt;
      &lt;XMLContent xml:space="preserve"&gt;
        &lt;xsd:schema
          targetNamespace="http://uri.env.org"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:xsd="http://www.w3.org/2001/XMLSchema"
          elementFormDefault="qualified"
          attributeFormDefault="unqualified"&gt;
          &lt;xsd:element name="Document"&gt;
            &lt;xsd:complexType mixed="true"&gt;
              &lt;xsd:sequence minOccurs="0"
                            maxOccurs="unbounded"&gt;
                &lt;xsd:any namespace="##any"
                         processContents="lax"/&gt;
              &lt;/xsd:sequence&gt;
            &lt;/xsd:complexType&gt;
          &lt;/xsd:element&gt;
        &lt;/xsd:schema&gt;
      &lt;/XMLContent&gt;
    &lt;/Content&gt;
  &lt;/SupplementProfile&gt;
</pre>

<pre>
  &lt;ReturnHashInputData/&gt;
</pre>
Das Element gibt an, dass f�r jedes <tt>dsig:SignedInfo/dsig:Reference</tt> Element jene Daten, die f�r die
Hash-Berechnung der Signatur als Eingangsdaten verwendet werden, in der Antwort returniert werden sollen.

<pre>
  &lt;TrustProfileID&gt;TrustProfile1&lt;/TrustProfileID&gt;
&lt;/VerifyXMLSignatureRequest&gt;
</pre>
Abschlie�end wird ein am MOA-SP Server definiertes Profil angegeben, dass jene Zertifikate umfasst, die f�r
diesen Request als vertrauensw�rdig anzusehen sind.
<p>

Die von diesem Request erzeugt Response ist in <a href="examples/requestsResponses/VerifyXMLSignatureResponse2.xml" target="_new">
VerifyXMLSignatureResponse2.xml</a> abgelegt.  Zus�tzlich zu den Daten der Response des einfachen
VerifyXMLSignatureRequests enth�lt diese Response f�r jedes <tt>dsig:SignedInfo/dsig:Reference</tt> Element
ein <tt>HashInputData</tt> Element.
</div>
</td></tr></table>
<br /><br />





<div id="VerifyCMSSignature" />
<table width="650" border="0" cellpadding="10" cellspacing="0">
<tr>
<td width="170" valign="top" id="klein">
<p id="subtitel">&#160;</p>
<div id="slogan">
<b>Beispiel: </b><br />
<a href="examples/requestsResponses/VerifyCMSSignatureRequest.xml"  target="_new">Request</a><br />
<a href="examples/requestsResponses/VerifyCMSSignatureResponse.xml" target="_new">Response</a><br />
<br /><br />
</div>
</td>
<td valign="top">
<p id="subtitel">Beispiel:<br/ > VerifyCMSSignatureRequest</p>
<div id="block">
Das Beispiel in <a href="examples/requestsResponses/VerifyCMSSignatureRequest.xml" target="_new">VerifyCMSSignatureRequest.xml</a> zeigt einen
einfachen <tt>&lt;VerifyCMSSignatureRequest&gt;</tt>.  Die Bedeutung der einzelnen Elemente
wird im folgenden beschrieben:
<pre>
&lt;VerifyCMSSignatureRequest
  xmlns="http://reference.e-government.gv.at/
    namespace/moa/20020822#"
  xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
  Signatories="1"&gt;
</pre>
Das optionale Attribut <tt>Signatories</tt> enth�lt eine Liste von positiven Ganzzahlen und gibt an, welche Signaturen
im CMS-Datenobjekt �berpr�ft werden sollen. <tt>Signatories="1"</tt> gibt an, dass die erste Signatur gepr�ft
werden soll.
Wird das Attribut nicht spezifiziert, dann wird ebenfalls die erste Signatur gepr�ft.  <tt>Signatories="all"</tt>
gibt an, dass alle im CMS-Objekt enthaltene Signaturen gepr�ft werden sollen.

<pre>
  &lt;DateTime&gt;2003-04-04T09:30:47-05:00&lt;/DateTime&gt;
</pre>
Das optionale Element <tt>&lt;DateTime&gt;</tt> gibt an f�r welchen Zeitpunkt die Signatur�berpr�fung
durchgef�hrt werden soll.  Ist das Element nicht im Request enthalten, dann wird die aktuelle Systemzeit
verwendet.

<pre>
  &lt;CMSSignature&gt;MIIGAAYJKo...mT9fmvKwdJOiA==&lt;/CMSSignature&gt;
</pre>
Das Element <tt>&lt;CMSSignature&gt;</tt> enth�lt das CMS-Signaturobjekt in Base64-Kodierung.
<br /><br />
Sind die signierten Daten nicht in der CMS-Signatur enthalten, m�ssen sie im <tt>DataObject</tt>-Element 
angegeben werden.  Optional kann der MIME-Type dieser Daten spezifiziert werden.  Die eigentlichen Daten 
m�ssen im <tt>Base64Content</tt>-Element in Base64-Kodierung vorliegen.

<pre>
  &lt;TrustProfileID&gt;TrustProfile1&lt;TrustProfileID&gt;
</pre>

<tt>TrustProfile1</tt> referenziert ein im Konfigurationsfile des MOA-Server definiertes Profil, das 
jene Zertifikate umfasst, die f�r diese �berpr�fung als vertrauensw�rdig gelten.


<p>
Die von diesem Request erzeugt Response ist in <a href="examples/requestsResponses/VerifyCMSSignatureResponse.xml" target="_new">
VerifyCMSSignatureResponse.xml</a> abgelegt.  Die Response enth�lt die selben Informationen wie die Response zum
einfachen VerifyXMLSignatureRequest.
</div>
</td></tr></table>
<br /><br />



<table width="650" border="0" cellpadding="10" cellspacing="0">
<tr>
<td width="170" valign="top"><br /></td>
<td valign="top">
<hr />
<div style="font-size:8pt; color:#909090">&copy; 2003 <!-- Development Center, BRZ GmbH --></div>
</td></tr></table>
<br />


</div>
</body>
</html>