From e9680e320f3031b515512bfbd23f6c1ba50043b1 Mon Sep 17 00:00:00 2001
From: netconomy <netconomy@7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c>
Date: Fri, 17 Aug 2007 06:20:41 +0000
Subject: deprecated code

git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@169 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c
---
 .../test/at/knowcenter/wag/egov/egiz/TestNeu.java  |  612 +++----
 .../wag/egov/egiz/detached/BKUConnector.java       | 1885 ++++++++++----------
 .../wag/egov/egiz/detached/MOAConnector.java       | 1466 ++++++++-------
 3 files changed, 1938 insertions(+), 2025 deletions(-)

(limited to 'src')

diff --git a/src/test/java/test/at/knowcenter/wag/egov/egiz/TestNeu.java b/src/test/java/test/at/knowcenter/wag/egov/egiz/TestNeu.java
index fdbaee5..8a53fea 100644
--- a/src/test/java/test/at/knowcenter/wag/egov/egiz/TestNeu.java
+++ b/src/test/java/test/at/knowcenter/wag/egov/egiz/TestNeu.java
@@ -3,337 +3,311 @@
  */
 package test.at.knowcenter.wag.egov.egiz;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.UnsupportedEncodingException;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.log4j.PropertyConfigurator;
-
-import test.at.knowcenter.wag.egov.egiz.detached.BKUConnector;
-import test.at.knowcenter.wag.egov.egiz.detached.MOAConnector;
-import at.knowcenter.wag.egov.egiz.PdfASID;
-import at.knowcenter.wag.egov.egiz.cfg.SettingsReader;
-import at.knowcenter.wag.egov.egiz.exceptions.SignatureException;
-import at.knowcenter.wag.egov.egiz.sig.SignatureData;
-import at.knowcenter.wag.egov.egiz.sig.SignatureObject;
-import at.knowcenter.wag.egov.egiz.sig.SignatureResponse;
-import at.knowcenter.wag.egov.egiz.sig.connectors.Connector;
-import at.knowcenter.wag.egov.egiz.sig.connectors.bku.BKUPostConnection;
-import at.knowcenter.wag.egov.egiz.sig.connectors.bku.DetachedBKUConnector;
-import at.knowcenter.wag.egov.egiz.sig.connectors.bku.EnvelopedBase64BKUConnector;
-import at.knowcenter.wag.egov.egiz.sig.connectors.bku.MultipartDetachedBKUConnector;
-import at.knowcenter.wag.egov.egiz.sig.connectors.bku.SignSignatureObject;
-import at.knowcenter.wag.egov.egiz.sig.connectors.moa.DetachedLocRefMOAConnector;
-import at.knowcenter.wag.egov.egiz.sig.connectors.moa.EnvelopingBase64MOAConnector;
-import at.knowcenter.wag.egov.egiz.tools.DebugHelper;
 
 /**
+ * @deprecated old code
+ * 
  * @author wprinz
  * 
  */
 public class TestNeu
 {
-  private static Log logger = LogFactory.getLog(TestNeu.class);
-
-  protected static String TEXT = "Test 123 ����"; //$NON-NLS-1$
-
-  protected static File PDF = new File("C:\\wprinz\\Filer\\egiz\\docs\\document4.pdf"); //$NON-NLS-1$
-
-  /**
-   * @param args
-   * @throws SignatureException
-   */
-  public static void main(String[] args) throws Exception
-  {
-    SettingsReader.initializeForCommandLine();
-    PropertyConfigurator.configure(SettingsReader.CONFIG_PATH + "log4j.properties"); //$NON-NLS-1$
-
-    //testEnvelopingBase64BKUConnector();
-
-    testEnvelopingBase64MOAConnector();
-
-    // testDetachedLocRefMOAConnector ();
-
-    // testDetachedMultipartBKUConnector();
-
-    // testTexMOA();
-
-    // testBinBKU();
-
-    // testTexBKU();
-
-    // SignatureResponse sr = bku_c.doVerify(TEXT, so);
-
-    // logger.debug("sr = " + sr);
-
-    logger.info("finished.");
-  }
-
-  public static void testEnvelopingBase64BKUConnector() throws Exception
-  {
-    Connector c = new EnvelopedBase64BKUConnector("CIO-BUND2"); //$NON-NLS-1$
-
-    SignatureData data = new BinarySignatureData();
-
-    {
-      SignSignatureObject so = c.doSign(data);
-      
-      FileOutputStream fos = new FileOutputStream("C:\\wprinz\\Filer\\egiz2\\SignatureObject.bin");
-      ObjectOutputStream oos = new ObjectOutputStream(fos);
-      oos.writeObject(so);
-      oos.close();
-    }
-
-    {
-      FileInputStream fis = new FileInputStream("C:\\wprinz\\Filer\\egiz2\\SignatureObject.bin");
-      ObjectInputStream ois = new ObjectInputStream(fis);
-      SignSignatureObject so = (SignSignatureObject) ois.readObject();
-      ois.close();
-
-      SignatureResponse sr = c.doVerify(data, so);
-
-      logger.debug("sr = " + sr);
-    }
-  }
-
-  public static void testEnvelopingBase64MOAConnector() throws Exception
-  {
-    Connector c = new EnvelopingBase64MOAConnector("CIO-BUND2"); //$NON-NLS-1$
-
-    SignatureData data = new BinarySignatureData();
-
-    {
-      SignSignatureObject so = c.doSign(data);
-
-      FileOutputStream fos = new FileOutputStream("C:\\wprinz\\Filer\\egiz2\\SignatureObject.bin");
-      ObjectOutputStream oos = new ObjectOutputStream(fos);
-      oos.writeObject(so);
-      oos.close();
-    }
-
-    {
-      FileInputStream fis = new FileInputStream("C:\\wprinz\\Filer\\egiz2\\SignatureObject.bin");
-      ObjectInputStream ois = new ObjectInputStream(fis);
-      SignSignatureObject so = (SignSignatureObject) ois.readObject();
-      ois.close();
-
-      SignatureResponse sr = c.doVerify(data, so);
-      logger.debug("sr = " + sr);
-    }
-  }
-
-//  public static void testDetachedLocRefMOAConnector() throws Exception
+//  private static Log logger = LogFactory.getLog(TestNeu.class);
+//
+//  protected static String TEXT = "Test 123 ����"; //$NON-NLS-1$
+//
+//  protected static File PDF = new File("C:\\wprinz\\Filer\\egiz\\docs\\document4.pdf"); //$NON-NLS-1$
+//
+//  /**
+//   * @param args
+//   * @throws SignatureException
+//   */
+//  public static void main(String[] args) throws Exception
+//  {
+//    SettingsReader.initializeForCommandLine();
+//    PropertyConfigurator.configure(SettingsReader.CONFIG_PATH + "log4j.properties"); //$NON-NLS-1$
+//
+//    //testEnvelopingBase64BKUConnector();
+//
+//    testEnvelopingBase64MOAConnector();
+//
+//    // testDetachedLocRefMOAConnector ();
+//
+//    // testDetachedMultipartBKUConnector();
+//
+//    // testTexMOA();
+//
+//    // testBinBKU();
+//
+//    // testTexBKU();
+//
+//    // SignatureResponse sr = bku_c.doVerify(TEXT, so);
+//
+//    // logger.debug("sr = " + sr);
+//
+//    logger.info("finished.");
+//  }
+//
+//  public static void testEnvelopingBase64BKUConnector() throws Exception
+//  {
+//    Connector c = new EnvelopedBase64BKUConnector("CIO-BUND2"); //$NON-NLS-1$
+//
+//    SignatureData data = new BinarySignatureData();
+//
+//    {
+//      SignSignatureObject so = c.doSign(data);
+//      
+//      FileOutputStream fos = new FileOutputStream("C:\\wprinz\\Filer\\egiz2\\SignatureObject.bin");
+//      ObjectOutputStream oos = new ObjectOutputStream(fos);
+//      oos.writeObject(so);
+//      oos.close();
+//    }
+//
+//    {
+//      FileInputStream fis = new FileInputStream("C:\\wprinz\\Filer\\egiz2\\SignatureObject.bin");
+//      ObjectInputStream ois = new ObjectInputStream(fis);
+//      SignSignatureObject so = (SignSignatureObject) ois.readObject();
+//      ois.close();
+//
+//      SignatureResponse sr = c.doVerify(data, so);
+//
+//      logger.debug("sr = " + sr);
+//    }
+//  }
+//
+//  public static void testEnvelopingBase64MOAConnector() throws Exception
+//  {
+//    Connector c = new EnvelopingBase64MOAConnector("CIO-BUND2"); //$NON-NLS-1$
+//
+//    SignatureData data = new BinarySignatureData();
+//
+//    {
+//      SignSignatureObject so = c.doSign(data);
+//
+//      FileOutputStream fos = new FileOutputStream("C:\\wprinz\\Filer\\egiz2\\SignatureObject.bin");
+//      ObjectOutputStream oos = new ObjectOutputStream(fos);
+//      oos.writeObject(so);
+//      oos.close();
+//    }
+//
+//    {
+//      FileInputStream fis = new FileInputStream("C:\\wprinz\\Filer\\egiz2\\SignatureObject.bin");
+//      ObjectInputStream ois = new ObjectInputStream(fis);
+//      SignSignatureObject so = (SignSignatureObject) ois.readObject();
+//      ois.close();
+//
+//      SignatureResponse sr = c.doVerify(data, so);
+//      logger.debug("sr = " + sr);
+//    }
+//  }
+//
+////  public static void testDetachedLocRefMOAConnector() throws Exception
+////  {
+////    DetachedLocRefMOAConnector c = new DetachedLocRefMOAConnector("CIO-BUND2"); //$NON-NLS-1$
+////
+////    SignatureData data = new TextSignatureData();
+////
+////    SignSignatureObject so = c.doSign(data);
+////
+////  }
+//
+//  public static void testDetachedMultipartBKUConnector() throws Exception
 //  {
-//    DetachedLocRefMOAConnector c = new DetachedLocRefMOAConnector("CIO-BUND2"); //$NON-NLS-1$
+//    DetachedBKUConnector c = new MultipartDetachedBKUConnector("CIO-BUND2"); //$NON-NLS-1$
 //
-//    SignatureData data = new TextSignatureData();
+//    SignatureData data = new BinarySignatureData();
 //
 //    SignSignatureObject so = c.doSign(data);
 //
+//    FileOutputStream fos = new FileOutputStream("C:\\wprinz\\Filer\\egiz2\\SignatureObject.bin");
+//    ObjectOutputStream oos = new ObjectOutputStream(fos);
+//    oos.writeObject(so);
+//    oos.close();
+//
+//    FileInputStream fis = new FileInputStream("C:\\wprinz\\Filer\\egiz2\\SignatureObject.bin");
+//    ObjectInputStream ois = new ObjectInputStream(fis);
+//    so = (SignSignatureObject) ois.readObject();
+//    ois.close();
+//
+//    SignatureResponse sr = c.doVerify(data, so);
+//    logger.debug("sr = " + sr);
+//
+//  }
+//
+//  public static void testBinBKU() throws Exception
+//  {
+//    FileInputStream fis = new FileInputStream(PDF);
+//    byte[] data = new byte[(int) PDF.length()];
+//    fis.read(data);
+//    fis.close();
+//
+//    PdfASID algorithm = new PdfASID("urn:pdfsigfilter:bka.gv.at:binaer:v1.0.0");
+//
+//    SignatureObject so = testSignBKU(data, algorithm);
+//
+//    so.setKZ(algorithm);
+//
+//    SignatureResponse sr = testVerifyBKU(data, so);
+//
+//    logger.debug("sr = " + sr);
+//
+//  }
+//
+//  public static void testTexBKU() throws Exception
+//  {
+//    PdfASID algorithm = new PdfASID("urn:pdfsigfilter:bka.gv.at:text:v1.0.0");
+//
+//    SignatureObject so = testSignBKU(TEXT.getBytes("UTF-8"), algorithm);
+//
+//    so.setKZ(algorithm);
+//
+//    // FileOutputStream fos = new
+//    // FileOutputStream("C:\\wprinz\\Filer\\egiz2\\SignatureObject.bin");
+//    // ObjectOutputStream oos = new ObjectOutputStream(fos);
+//    // oos.writeObject(so);
+//    // oos.close();
+//
+//    SignatureResponse sr = testVerifyBKU(TEXT.getBytes("UTF-8"), so);
+//
+//    logger.debug("sr = " + sr);
+//  }
+//
+//  public static void testTexMOA() throws Exception
+//  {
+//    PdfASID algorithm = new PdfASID("urn:pdfsigfilter:bka.gv.at:text:v1.0.0");
+//
+//    SignatureObject so = testSignMOA(TEXT.getBytes("UTF-8"), algorithm);
+//
+//    so.setKZ(algorithm);
+//
+//    // FileOutputStream fos = new
+//    // FileOutputStream("C:\\wprinz\\Filer\\egiz2\\SignatureObject.bin");
+//    // ObjectOutputStream oos = new ObjectOutputStream(fos);
+//    // oos.writeObject(so);
+//    // oos.close();
+//
+//    // SignatureResponse sr = testVerifyBKU(TEXT.getBytes("UTF-8"), so);
+//    //    
+//    // logger.debug("sr = " + sr);
+//  }
+//
+//  public static SignatureObject testSignBKU(byte[] data, PdfASID algorithm) throws Exception
+//  {
+//    BKUConnector bku_c = new BKUConnector();
+//
+//    SignatureObject so = bku_c.doSign("CIO-BUND2", data, algorithm);
+//
+//    logger.debug("so = " + so);
+//
+//    return so;
+//  }
+//
+//  public static SignatureObject testSignMOA(byte[] data, PdfASID algorithm) throws Exception
+//  {
+//    MOAConnector moa_c = new MOAConnector();
+//
+//    SignatureObject so = moa_c.doSign("CIO-BUND2", data, algorithm);
+//
+//    logger.debug("so = " + so);
+//
+//    return so;
+//  }
+//
+//  public static SignatureResponse testVerifyBKU(byte[] data, SignatureObject so) throws Exception
+//  {
+//    BKUConnector bku_c = new BKUConnector();
+//
+//    SignatureResponse sr = bku_c.doVerify(data, so);
+//
+//    logger.debug("sr = " + sr);
+//
+//    return sr;
+//  }
+//
+//  /**
+//   * A data source for text data.
+//   * 
+//   * @author wprinz
+//   */
+//  public static class TextSignatureData implements SignatureData
+//  {
+//    /**
+//     * @see at.knowcenter.wag.egov.egiz.sig.SignatureData#getData()
+//     */
+//    public byte[] getData()
+//    {
+//      try
+//      {
+//        return TEXT.getBytes(getCharacterEncoding());
+//      }
+//      catch (UnsupportedEncodingException e)
+//      {
+//        e.printStackTrace();
+//        return null;
+//      }
+//    }
+//
+//    /**
+//     * @see at.knowcenter.wag.egov.egiz.sig.SignatureData#getMimeType()
+//     */
+//    public String getMimeType()
+//    {
+//      return "text/plain"; //$NON-NLS-1$
+//    }
+//
+//    /**
+//     * @see at.knowcenter.wag.egov.egiz.sig.SignatureData#getCharacterEncoding()
+//     */
+//    public String getCharacterEncoding()
+//    {
+//      return "UTF-8"; //$NON-NLS-1$
+//    }
+//  }
+//
+//  /**
+//   * A data source for binary (PDF) data.
+//   * 
+//   * @author wprinz
+//   */
+//  public static class BinarySignatureData implements SignatureData
+//  {
+//    /**
+//     * @see at.knowcenter.wag.egov.egiz.sig.SignatureData#getData()
+//     */
+//    public byte[] getData()
+//    {
+//      try
+//      {
+//        FileInputStream fis = new FileInputStream(PDF);
+//        byte[] data = new byte[(int) PDF.length()];
+//        fis.read(data);
+//        fis.close();
+//
+//        return data;
+//      }
+//      catch (Exception e)
+//      {
+//        e.printStackTrace();
+//        return null;
+//      }
+//    }
+//
+//    /**
+//     * @see at.knowcenter.wag.egov.egiz.sig.SignatureData#getMimeType()
+//     */
+//    public String getMimeType()
+//    {
+//      return "application/pdf"; //$NON-NLS-1$
+//    }
+//
+//    /**
+//     * @see at.knowcenter.wag.egov.egiz.sig.SignatureData#getCharacterEncoding()
+//     */
+//    public String getCharacterEncoding()
+//    {
+//      return null;
+//    }
+//
 //  }
-
-  public static void testDetachedMultipartBKUConnector() throws Exception
-  {
-    DetachedBKUConnector c = new MultipartDetachedBKUConnector("CIO-BUND2"); //$NON-NLS-1$
-
-    SignatureData data = new BinarySignatureData();
-
-    SignSignatureObject so = c.doSign(data);
-
-    FileOutputStream fos = new FileOutputStream("C:\\wprinz\\Filer\\egiz2\\SignatureObject.bin");
-    ObjectOutputStream oos = new ObjectOutputStream(fos);
-    oos.writeObject(so);
-    oos.close();
-
-    FileInputStream fis = new FileInputStream("C:\\wprinz\\Filer\\egiz2\\SignatureObject.bin");
-    ObjectInputStream ois = new ObjectInputStream(fis);
-    so = (SignSignatureObject) ois.readObject();
-    ois.close();
-
-    SignatureResponse sr = c.doVerify(data, so);
-    logger.debug("sr = " + sr);
-
-  }
-
-  public static void testBinBKU() throws Exception
-  {
-    FileInputStream fis = new FileInputStream(PDF);
-    byte[] data = new byte[(int) PDF.length()];
-    fis.read(data);
-    fis.close();
-
-    PdfASID algorithm = new PdfASID("urn:pdfsigfilter:bka.gv.at:binaer:v1.0.0");
-
-    SignatureObject so = testSignBKU(data, algorithm);
-
-    so.setKZ(algorithm);
-
-    SignatureResponse sr = testVerifyBKU(data, so);
-
-    logger.debug("sr = " + sr);
-
-  }
-
-  public static void testTexBKU() throws Exception
-  {
-    PdfASID algorithm = new PdfASID("urn:pdfsigfilter:bka.gv.at:text:v1.0.0");
-
-    SignatureObject so = testSignBKU(TEXT.getBytes("UTF-8"), algorithm);
-
-    so.setKZ(algorithm);
-
-    // FileOutputStream fos = new
-    // FileOutputStream("C:\\wprinz\\Filer\\egiz2\\SignatureObject.bin");
-    // ObjectOutputStream oos = new ObjectOutputStream(fos);
-    // oos.writeObject(so);
-    // oos.close();
-
-    SignatureResponse sr = testVerifyBKU(TEXT.getBytes("UTF-8"), so);
-
-    logger.debug("sr = " + sr);
-  }
-
-  public static void testTexMOA() throws Exception
-  {
-    PdfASID algorithm = new PdfASID("urn:pdfsigfilter:bka.gv.at:text:v1.0.0");
-
-    SignatureObject so = testSignMOA(TEXT.getBytes("UTF-8"), algorithm);
-
-    so.setKZ(algorithm);
-
-    // FileOutputStream fos = new
-    // FileOutputStream("C:\\wprinz\\Filer\\egiz2\\SignatureObject.bin");
-    // ObjectOutputStream oos = new ObjectOutputStream(fos);
-    // oos.writeObject(so);
-    // oos.close();
-
-    // SignatureResponse sr = testVerifyBKU(TEXT.getBytes("UTF-8"), so);
-    //    
-    // logger.debug("sr = " + sr);
-  }
-
-  public static SignatureObject testSignBKU(byte[] data, PdfASID algorithm) throws Exception
-  {
-    BKUConnector bku_c = new BKUConnector();
-
-    SignatureObject so = bku_c.doSign("CIO-BUND2", data, algorithm);
-
-    logger.debug("so = " + so);
-
-    return so;
-  }
-
-  public static SignatureObject testSignMOA(byte[] data, PdfASID algorithm) throws Exception
-  {
-    MOAConnector moa_c = new MOAConnector();
-
-    SignatureObject so = moa_c.doSign("CIO-BUND2", data, algorithm);
-
-    logger.debug("so = " + so);
-
-    return so;
-  }
-
-  public static SignatureResponse testVerifyBKU(byte[] data, SignatureObject so) throws Exception
-  {
-    BKUConnector bku_c = new BKUConnector();
-
-    SignatureResponse sr = bku_c.doVerify(data, so);
-
-    logger.debug("sr = " + sr);
-
-    return sr;
-  }
-
-  /**
-   * A data source for text data.
-   * 
-   * @author wprinz
-   */
-  public static class TextSignatureData implements SignatureData
-  {
-    /**
-     * @see at.knowcenter.wag.egov.egiz.sig.SignatureData#getData()
-     */
-    public byte[] getData()
-    {
-      try
-      {
-        return TEXT.getBytes(getCharacterEncoding());
-      }
-      catch (UnsupportedEncodingException e)
-      {
-        e.printStackTrace();
-        return null;
-      }
-    }
-
-    /**
-     * @see at.knowcenter.wag.egov.egiz.sig.SignatureData#getMimeType()
-     */
-    public String getMimeType()
-    {
-      return "text/plain"; //$NON-NLS-1$
-    }
-
-    /**
-     * @see at.knowcenter.wag.egov.egiz.sig.SignatureData#getCharacterEncoding()
-     */
-    public String getCharacterEncoding()
-    {
-      return "UTF-8"; //$NON-NLS-1$
-    }
-  }
-
-  /**
-   * A data source for binary (PDF) data.
-   * 
-   * @author wprinz
-   */
-  public static class BinarySignatureData implements SignatureData
-  {
-    /**
-     * @see at.knowcenter.wag.egov.egiz.sig.SignatureData#getData()
-     */
-    public byte[] getData()
-    {
-      try
-      {
-        FileInputStream fis = new FileInputStream(PDF);
-        byte[] data = new byte[(int) PDF.length()];
-        fis.read(data);
-        fis.close();
-
-        return data;
-      }
-      catch (Exception e)
-      {
-        e.printStackTrace();
-        return null;
-      }
-    }
-
-    /**
-     * @see at.knowcenter.wag.egov.egiz.sig.SignatureData#getMimeType()
-     */
-    public String getMimeType()
-    {
-      return "application/pdf"; //$NON-NLS-1$
-    }
-
-    /**
-     * @see at.knowcenter.wag.egov.egiz.sig.SignatureData#getCharacterEncoding()
-     */
-    public String getCharacterEncoding()
-    {
-      return null;
-    }
-
-  }
 
 }
diff --git a/src/test/java/test/at/knowcenter/wag/egov/egiz/detached/BKUConnector.java b/src/test/java/test/at/knowcenter/wag/egov/egiz/detached/BKUConnector.java
index d395de5..072c277 100644
--- a/src/test/java/test/at/knowcenter/wag/egov/egiz/detached/BKUConnector.java
+++ b/src/test/java/test/at/knowcenter/wag/egov/egiz/detached/BKUConnector.java
@@ -17,33 +17,6 @@
  */
 package test.at.knowcenter.wag.egov.egiz.detached;
 
-import java.io.FileOutputStream;
-import java.io.OutputStreamWriter;
-import java.io.UnsupportedEncodingException;
-import java.util.Properties;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-
-import java.io.File;
-import at.knowcenter.wag.egov.egiz.PdfASID;
-import at.knowcenter.wag.egov.egiz.cfg.ConfigLogger;
-import at.knowcenter.wag.egov.egiz.cfg.SettingsReader;
-import at.knowcenter.wag.egov.egiz.exceptions.SettingsException;
-import at.knowcenter.wag.egov.egiz.exceptions.SignatureException;
-import at.knowcenter.wag.egov.egiz.exceptions.SignatureTypesException;
-import at.knowcenter.wag.egov.egiz.sig.ConnectorInformation;
-import at.knowcenter.wag.egov.egiz.sig.LocalConnector;
-import at.knowcenter.wag.egov.egiz.sig.SignatureObject;
-import at.knowcenter.wag.egov.egiz.sig.SignatureResponse;
-import at.knowcenter.wag.egov.egiz.framework.SignatorFactory;
-import at.knowcenter.wag.egov.egiz.sig.X509Cert;
-import at.knowcenter.wag.egov.egiz.sig.connectors.ConnectorConfigurationKeys;
-import at.knowcenter.wag.egov.egiz.sig.connectors.MOAConnector;
-import at.knowcenter.wag.egov.egiz.tools.CodingHelper;
-import at.knowcenter.wag.egov.egiz.tools.FileHelper;
 
 /**
  * Connector for communicating with BKU.
@@ -53,935 +26,935 @@ import at.knowcenter.wag.egov.egiz.tools.FileHelper;
  */
 public class BKUConnector
 {
-  /**
-   * ConnectorInformation that identifies this Connector to the system.
-   * 
-   * @see at.knowcenter.wag.egov.egiz.sig.ConnectorFactory
-   * @see ConnectorInformation
-   */
-  public static final ConnectorInformation CONNECTOR_INFORMATION = new ConnectorInformation("bku", "BKU");
-
-  /**
-   * The SettingsReader instance
-   */
-  private SettingsReader settings_ = null;
-
-  /**
-   * The logger definition.
-   */
-  private static final Logger logger_ = ConfigLogger.getLogger(BKUConnector.class);
-
-  /**
-   * The empty constructor
-   */
-  public BKUConnector() throws SignatureException
-  {
-    loadSettings();
-  }
-
-  /**
-   * load the inital signature settings
-   * 
-   * @see SettingsReader
-   */
-  private void loadSettings() throws SignatureException
-  {
-    if (settings_ == null)
-    {
-      try
-      {
-        settings_ = SettingsReader.getInstance();
-      }
-      catch (SettingsException e)
-      {
-        String log_message = "Can not load signature settings. Cause:\n" + e.getMessage();
-        logger_.error(log_message);
-        throw new SignatureException(101, log_message, e);
-      }
-    }
-  }
-
-  public SignatureObject doSign(String sigType, byte[] data, PdfASID algorithm) throws SignatureException
-  {
-    String sigmode = algorithm.getType();
-
-    String request_string = prepareSignRequestDetached(sigType, sigmode);
-
-    String sign_url = getSignURL(sigType);
-
-    String versionstring = algorithm.getVersion();
-    logger_.info("versionstring=" + versionstring);
-
-    String mimetype = "";
-    if (sigmode.equalsIgnoreCase(SignatorFactory.TYPE_TEXTUAL))
-    {
-      mimetype = "text/plain";
-    }
-    if (sigmode.equalsIgnoreCase(SignatorFactory.TYPE_BINARY))
-    {
-      mimetype = "application/pdf";
-    }
-
-    Properties response_properties = sendRequest(sign_url, request_string, data, mimetype);
-
-    return analyzeSignResponse(response_properties, sigType);
-  }
-
-  public SignatureResponse doVerify(byte[] data, SignatureObject sigObject) throws SignatureException
-  {
-    String sigmode = sigObject.getKZ().getType();
-    String sigversion = sigObject.getKZ().getVersion();
-
-    // decide which template should be used to verify
-    // use versionstring to decide if detached Signature
-    String request_string = prepareVerifyRequestDetached(data, sigObject);
-    // if (sigversion.equals(SignatorFactory.VERSION_1_1_0))
-    // {
-    // TODO support Sign v1.1.0 Remove base64 and write tempfile
-    // String sigversion=SignatorFactory.TYPE_TEXTUAL;
-
-    String mimetype = "";
-    if (sigmode.equalsIgnoreCase(SignatorFactory.TYPE_TEXTUAL))
-    {
-      mimetype = "text/plain";
-    }
-    if (sigmode.equalsIgnoreCase(SignatorFactory.TYPE_BINARY))
-    {
-      mimetype = "application/pdf";
-    }
-
-    String verify_url = getVerifyURL(sigObject.getSignationType());
-    Properties response_properties = sendRequest(verify_url, request_string, data, mimetype);
-
-    return analyzeVerifyResponse(response_properties);
-  }
-
-  /**
-   * This method parses the BKU-Response string. It separates the
-   * SignatureValue, X509IssuerName, SigningTime, X509SerialNumber,
-   * X509Certificate, CertDigest, DigestValue and the signation id-s. If the
-   * X509Certificate is extracted it would be stored in the certificates
-   * directory.
-   * 
-   * @param xmlResponse
-   *          the response string from the BKU sign-request
-   * @param sigObj
-   *          the SignatureObject that should be filled
-   * @throws SignatureException
-   *           ErrorCode (303, 304)
-   * @see SignatureObject
-   * @see CodingHelper
-   * @see X509Cert
-   */
-  private void parseCreateXMLResponse(Properties response_properties,
-      SignatureObject sigObj) throws SignatureException
-  {
-    String xmlResponse = response_properties.getProperty("response_string");
-
-    Pattern sig_val_p_s = Pattern.compile("<[\\w]*:?SignatureValue>");
-    Pattern sig_val_p_e = Pattern.compile("</[\\w]*:?SignatureValue>");
-    Pattern iss_nam_p_s = Pattern.compile("<[\\w]*:?X509IssuerName>");
-    Pattern iss_nam_p_e = Pattern.compile("</[\\w]*:?X509IssuerName>");
-    Pattern sig_tim_p_s = Pattern.compile("<[\\w]*:?SigningTime>");
-    Pattern sig_tim_p_e = Pattern.compile("</[\\w]*:?SigningTime>");
-    Pattern ser_num_p_s = Pattern.compile("<[\\w]*:?X509SerialNumber>");
-    Pattern ser_num_p_e = Pattern.compile("</[\\w]*:?X509SerialNumber>");
-    Pattern sig_cer_p_s = Pattern.compile("<[\\w]*:?X509Certificate>");
-    Pattern sig_cer_p_e = Pattern.compile("</[\\w]*:?X509Certificate>");
-
-    Pattern sig_cer_d_p_s = Pattern.compile("<[\\w]*:?CertDigest>");
-    Pattern sig_cer_d_p_e = Pattern.compile("</[\\w]*:?CertDigest>");
-    Pattern dig_val_p_s = Pattern.compile("<[\\w]*:?DigestValue>");
-    Pattern dig_val_p_e = Pattern.compile("</[\\w]*:?DigestValue>");
-
-    Matcher sig_val_m_s = sig_val_p_s.matcher(xmlResponse);
-    Matcher sig_val_m_e = sig_val_p_e.matcher(xmlResponse);
-    Matcher iss_nam_m_s = iss_nam_p_s.matcher(xmlResponse);
-    Matcher iss_nam_m_e = iss_nam_p_e.matcher(xmlResponse);
-    Matcher sig_tim_m_s = sig_tim_p_s.matcher(xmlResponse);
-    Matcher sig_tim_m_e = sig_tim_p_e.matcher(xmlResponse);
-    Matcher ser_num_m_s = ser_num_p_s.matcher(xmlResponse);
-    Matcher ser_num_m_e = ser_num_p_e.matcher(xmlResponse);
-    Matcher sig_cer_m_s = sig_cer_p_s.matcher(xmlResponse);
-    Matcher sig_cer_m_e = sig_cer_p_e.matcher(xmlResponse);
-
-    Matcher sig_cer_d_m_s = sig_cer_d_p_s.matcher(xmlResponse);
-    Matcher sig_cer_d_m_e = sig_cer_d_p_e.matcher(xmlResponse);
-
-    String sig_val = "";
-    String iss_nam = "";
-    String ser_num = "";
-    String sig_tim = "";
-    String sig_cer = "";
-    String sig_dig = "";
-
-    // SignatureValue
-    if (sig_val_m_s.find() && sig_val_m_e.find())
-    {
-      sig_val = xmlResponse.substring(sig_val_m_s.end(), sig_val_m_e.start());
-      sig_val = sig_val.replaceAll("\\s", "");
-      sigObj.setSignationValue(sig_val);
-    }
-    // X509IssuerName
-    if (iss_nam_m_s.find() && iss_nam_m_e.find())
-    {
-      iss_nam = xmlResponse.substring(iss_nam_m_s.end(), iss_nam_m_e.start());
-      sigObj.setSignationIssuer(iss_nam);
-    }
-    // X509SerialNumber
-    if (ser_num_m_s.find() && ser_num_m_e.find())
-    {
-      ser_num = xmlResponse.substring(ser_num_m_s.end(), ser_num_m_e.start());
-      sigObj.setSignationSerialNumber(ser_num);
-    }
-    // SigningTime
-    if (sig_tim_m_s.find() && sig_tim_m_e.find())
-    {
-      sig_tim = xmlResponse.substring(sig_tim_m_s.end(), sig_tim_m_e.start());
-      sigObj.setSignationDate(sig_tim);
-    }
-    // CertDigest
-    if (sig_cer_d_m_s.find() && sig_cer_d_m_e.find())
-    {
-      String cert_digest = xmlResponse.substring(sig_cer_d_m_s.end(), sig_cer_d_m_e.start());
-      Matcher dig_val_m_s = dig_val_p_s.matcher(cert_digest);
-      Matcher dig_val_m_e = dig_val_p_e.matcher(cert_digest);
-      if (dig_val_m_s.find() && dig_val_m_e.find())
-      {
-        sig_dig = cert_digest.substring(dig_val_m_s.end(), dig_val_m_e.start());
-        sigObj.setX509CertificateDigest(sig_dig);
-      }
-    }
-    // extract Subject Name from X509Certificate
-    if (sig_cer_m_s.find() && sig_cer_m_e.find())
-    {
-      sig_cer = xmlResponse.substring(sig_cer_m_s.end(), sig_cer_m_e.start());
-      sig_cer = sig_cer.replaceAll("\\s", "");
-      sigObj.setX509Certificate(sig_cer);
-      X509Cert cert = X509Cert.initByString(sig_cer);
-      if (cert.isX509Cert())
-      {
-        sigObj.setX509Certificate(cert.getCertString());
-        String serial_num = cert.getSerialNumber();
-        String subject_name = cert.getSubjectName();
-        if (!ser_num.equals(serial_num))
-        {
-          SignatureException se = new SignatureException(303, "Serialnumber of certificate and tag X509SerialNumber differs!");
-          throw se;
-        }
-        sigObj.setSignationName(subject_name);
-      }
-    }
-    // extract Signature Id's
-    String[] ids = new String[5];
-    ids[0] = extractId(xmlResponse, "signature-");
-    ids[1] = extractId(xmlResponse, "signed-data-reference-");
-    ids[2] = extractId(xmlResponse, "signed-data-object-");
-    ids[3] = extractId(xmlResponse, "etsi-data-reference-");
-    ids[4] = extractId(xmlResponse, "etsi-data-object-");
-    String final_ids = formatSigIds(ids);
-    sigObj.setSignationIDs(final_ids);
-  }
-
-  protected String formatSigIds(String[] sigIds) throws SignatureException
-  {
-    // ids algorithm:
-    String join = "";
-    String base = null;
-    for (int arr_idx = 0; arr_idx < sigIds.length; arr_idx++)
-    {
-      String id = sigIds[arr_idx];
-      if (logger_.isDebugEnabled())
-      {
-        logger_.debug("Set BKU id:" + id);
-      }
-      int id_idx = id.lastIndexOf("-");
-      if (arr_idx == 0)
-      {
-        base = id.substring(0, id_idx);
-      }
-      String cur_id = id.substring(id_idx + 1);
-      if (cur_id.equalsIgnoreCase(""))
-      {
-        cur_id = "0";
-      }
-
-      join += "-" + cur_id;
-    }
-    String ids = base + "@" + join.substring(1);
-    String final_ids = getSigIDprefixValueFromProfile() + ids;
-    return final_ids;
-  }
-
-  protected String getSigIDprefixValueFromProfile()
-  {
-    String key = getType() + ".sign.SIG_IDprefix";
-    String value = settings_.getValueFromKey(key);
-    if (value == null)
-    {
-      value = "";
-    }
-    return value;
-  }
-
-  /**
-   * This emthod extracts id-values from a text. The id is given by the name.
-   * 
-   * @param text
-   *          the id-value that should extract from
-   * @param name
-   *          the id-key
-   * @return the value of the given key in the text
-   */
-  private String extractId(String text, String name)
-  {
-    String id = null;
-    int start_idx = text.indexOf(name) + name.length();
-    int end_idx = text.indexOf("\"", start_idx);
-
-    final int quot_end_idx = end_idx;
-    final int squot_end_idx = text.indexOf("'", start_idx);
-    end_idx = Math.min(quot_end_idx, squot_end_idx);
-    id = text.substring(start_idx, end_idx);
-    logger_.info("extract id:" + name + id);
-    if (logger_.isDebugEnabled())
-    {
-      logger_.debug("extract id:" + name + id);
-    }
-    return id;
-  }
-
-  public String getVerifyTemplate(byte [] data,
-      SignatureObject sigObject) throws SignatureException
-  {
-    // TODO Template selection depending on Sigid
-    try
-    {
-      if (data == null)
-      {
-        SignatureException se = new SignatureException(311, "Document can not be verified because data is empty.");
-        throw se;
-      }
-      if (sigObject == null)
-      {
-        SignatureException se = new SignatureException(312, "Document can not be verified because no signature object are set.");
-        throw se;
-      }
-
-      String verify_template = "./templates/BKUVerifyTemplateDetached.xml";//getVerifyTemplateFileName(sigObject.getSignationType());
-      String sigmode = sigObject.getKZ().getType();
-
-      String sig_prop_filename = "./templates/BKUVerifyTemplateSP_neueBKU_text.xml"; //getSigPropFileName(sigObject.getSignationType(), sigmode);
-      
-      if (sigObject.getKZ().getType().equals("binaer"))
-      {
-        sig_prop_filename = "./templates/BKUVerifyTemplateSP_neueBKU_bin.xml";
-      }
-      
-      
-      logger_.info(" verify_template= " + verify_template);
-      logger_.info("sig_prop_filename = " + sig_prop_filename);
-      String ids_string = sigObject.getSignationIds();
-      logger_.info("ids_string = " + ids_string);
-      String[] ids = SignatureObject.parseSigIds(ids_string);
-
-      // TODO hotfix
-      boolean neue_bku = true;
-      if (ids[5] != null)
-      {
-        // Hash has to be made over an other part than in previous versions.
-        // i dont know how this is in newer versions than 2.7.1
-        // id[5] of Signature of 2.7.1 signed Pdfs is "etsi-bka-1.0@"
-        if (ids[5].equals("etsi-bka-1.0@"))
-        {
-          neue_bku = true;
-        }
-      }
-      logger_.info("verify ids[5] = " + ids[5]);
-      logger_.info("verify neue_bku = " + neue_bku);
-      if (neue_bku)
-      {
-        // verify_template =
-        // getConnectorValueFromProfile(sigObject.getSignationType(),
-        // "bku.verify.template2");
-        // //"./templates/BKUVerifyTemplateB64_neueBKU.xml";
-        // sig_prop_filename =
-        // getConnectorValueFromProfile(sigObject.getSignationType(),
-        // "bku.verify.template2.SP");
-        // //"./templates/BKUVerifyTemplateSP_neueBKU.xml";
-      }
-
-      String ver_temp_str = FileHelper.readFromFile(SettingsReader.relocateFile(verify_template));
-      String sig_prop_str = FileHelper.readFromFile(SettingsReader.relocateFile(sig_prop_filename));
-      if (logger_.isDebugEnabled())
-      {
-        // logger_.debug(verify_template);
-        logger_.debug(sig_prop_filename);
-      }
-
-      String x509_cert_string = sigObject.getX509CertificateString();
-      if (x509_cert_string == null)
-      {
-        SignatureException se = new SignatureException(313, "Document certificate is not defined.");
-        throw se;
-      }
-      String cert_alg = settings_.getValueFromKey("cert.alg.ecdsa");
-      X509Cert x509_cert = sigObject.getX509Cert();
-      if (x509_cert.isRSA())
-      {
-        cert_alg = settings_.getValueFromKey("cert.alg.rsa");
-      }
-
-      sig_prop_str = sig_prop_str.replaceFirst("SigningTimeReplace", sigObject.getSignationDate());
-
-      String issuer_name = sigObject.getSignationIssuer();
-      // The issuer is already unicode, so it mustn't be encoded again.
-      // byte[] issuer_name =
-      // CodingHelper.encodeUTF8(sigObject.getSignationIssuer());
-      // new String(issuer_name); // this would double encode the String, not to
-      // mention the missing encoding
-      sig_prop_str = sig_prop_str.replaceFirst("X509IssuerNameReplace", issuer_name);
-
-      sig_prop_str = sig_prop_str.replaceFirst("X509SerialNumberReplace", sigObject.getSignationSerialNumber());
-      sig_prop_str = sig_prop_str.replaceFirst("DigestValueX509CertificateReplace", sigObject.getX509CertificateDigest());
-      sig_prop_str = sig_prop_str.replaceFirst("SigIdReplace", ids[0]);
-      sig_prop_str = sig_prop_str.replaceFirst("SigDataRefReplace", ids[1]);
-
-      ver_temp_str = ver_temp_str.replaceFirst("CertAlgReplace", cert_alg);
-      ver_temp_str = ver_temp_str.replaceFirst("TemplateQualifyingPropertiesReplace", sig_prop_str);
-      byte[] sig_prop_code = CodingHelper.buildDigest(sig_prop_str.getBytes("UTF-8"));
-
-      String sig_prop_hash = CodingHelper.encodeBase64(sig_prop_code);
-      logger_.info("XXXXXSignedPropertiesoldbase64bku sig_prop_hash=" + sig_prop_hash);
-      // TODO hotfix
-      // if (neue_bku)
-      // {
-      // BKU Version 2.7.1 builds hash over other than previous
-      final String ETSI_SIGNED_PROPERTIES_START_TAG = "<etsi:SignedProperties"; // xml
-      // name
-      // spaces
-      // follow,
-      // so
-      // this
-      // is
-      // not
-      // a
-      // complete
-      // tag...
-      final String ETSI_SIGNED_PROPERTIES_END_TAG = "</etsi:SignedProperties>";
-
-      final int hash_start = sig_prop_str.indexOf(ETSI_SIGNED_PROPERTIES_START_TAG);
-      assert hash_start >= 0;
-      final int hash_end = sig_prop_str.indexOf(ETSI_SIGNED_PROPERTIES_END_TAG, hash_start) + ETSI_SIGNED_PROPERTIES_END_TAG.length();
-      assert hash_end - ETSI_SIGNED_PROPERTIES_END_TAG.length() >= 0;
-      assert hash_end > hash_start;
-
-      final String string_to_be_hashed = sig_prop_str.substring(hash_start, hash_end);
-      logger_.info("etsi:SignedProperties string to be hashed: " + string_to_be_hashed);
-
-      final byte[] bytes_to_be_hashed = string_to_be_hashed.getBytes("UTF-8");
-      sig_prop_code = CodingHelper.buildDigest(bytes_to_be_hashed);
-      sig_prop_hash = CodingHelper.encodeBase64(sig_prop_code);
-      logger_.info("XXXXXSignedPropertiesnewbase64bku sig_prop_hash=" + sig_prop_hash);
-      // }
-
-      ver_temp_str = ver_temp_str.replaceFirst("DigestValueSignedPropertiesReplace", sig_prop_hash);
-      // logger_.info("DIGEST:" + sig_prop_hash);
-      if (logger_.isDebugEnabled())
-      {
-        logger_.debug("build digest from QualifyingProperties:start");
-        // logger_.debug("DATA :" + sig_prop_str);
-        logger_.debug("DIGEST:" + sig_prop_hash);
-        logger_.debug("build digest from QualifyingProperties:end");
-      }
-
-      ver_temp_str = ver_temp_str.replaceFirst("SignatureValueReplace", sigObject.getSignationValue());
-      ver_temp_str = ver_temp_str.replaceFirst("X509CertificateReplace", x509_cert_string);
-      byte[] data_value = data; // normalizedText.getBytes("UTF-8");
-      byte[] data_value_hash = CodingHelper.buildDigest(data_value);
-      String object_data_hash = CodingHelper.encodeBase64(data_value_hash);
-      // logger_.info("XXXXXXxbase64 object_data_hash="+object_data_hash);
-      // String object_data = new String(data_value);
-      if (logger_.isDebugEnabled())
-      {
-        logger_.debug("build digest from data object:start");
-        // logger_.debug("DATA :" + normalizedText);
-        logger_.debug("DIGEST:" + object_data_hash);
-        logger_.debug("build digest from data object:end");
-      }
-
-      // String raw_b64 = CodingHelper.encodeUTF8AsBase64(normalizedText);
-      String raw_b64 = CodingHelper.encodeBase64(data_value);
-
-      ver_temp_str = ver_temp_str.replaceFirst("Base64ContentReplace", raw_b64);
-      ver_temp_str = ver_temp_str.replaceFirst("DigestValueSignedDataReplace", object_data_hash);
-
-      ver_temp_str = ver_temp_str.replaceAll("SigIdReplace", ids[0]);
-      ver_temp_str = ver_temp_str.replaceAll("SigDataRefReplace", ids[1]);
-      ver_temp_str = ver_temp_str.replaceAll("SigDataObjURIReplace", ids[2]);
-      ver_temp_str = ver_temp_str.replaceAll("EtsiDataRefReplace", ids[3]);
-      ver_temp_str = ver_temp_str.replaceAll("EtsiDataObjURIReplace", ids[4]);
-      if (logger_.isDebugEnabled())
-      {
-        // logger_.debug("VERIFY REQUEST:" + ver_temp_str);
-      }
-
-      return ver_temp_str;
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      throw new SignatureException(310, e);
-    }
-  }
-
-  /**
-   * This method parses the verify response string and return a
-   * SignatureResponse object. The SignatureResponse object is filled out by the
-   * response values from the BKU-response.
-   * 
-   * @param xmlResponse
-   *          the response values from the BKU-verify request
-   * @return SignatureResponse object
-   * @see SignatureResponse
-   */
-  private SignatureResponse parseVerifyXMLResponse(String xmlResponse)
-  {
-    if (logger_.isInfoEnabled())
-    {
-      logger_.info("Try parsing the verify response");
-    }
-
-    Pattern sub_nam_p_s = Pattern.compile("<dsig:X509SubjectName>");
-    Pattern sub_nam_p_e = Pattern.compile("</dsig:X509SubjectName>");
-    Pattern iss_nam_p_s = Pattern.compile("<dsig:X509IssuerName>");
-    Pattern iss_nam_p_e = Pattern.compile("</dsig:X509IssuerName>");
-    Pattern ser_num_p_s = Pattern.compile("<dsig:X509SerialNumber>");
-    Pattern ser_num_p_e = Pattern.compile("</dsig:X509SerialNumber>");
-
-    Pattern sig_chk_p_s = Pattern.compile("<sl:SignatureCheck>");
-    Pattern sig_chk_p_e = Pattern.compile("</sl:SignatureCheck>");
-    Pattern man_chk_p_s = Pattern.compile("<sl:SignatureManifestCheck>");
-    Pattern man_chk_p_e = Pattern.compile("</sl:SignatureManifestCheck>");
-    Pattern cer_chk_p_s = Pattern.compile("<sl:CertificateCheck>");
-    Pattern cer_chk_p_e = Pattern.compile("</sl:CertificateCheck>");
-
-    // [tknall] start qualified certificate
-    Pattern cert_qualified_p = Pattern.compile("<sl:QualifiedCertificate/>");
-    Matcher cert_qualified_m = cert_qualified_p.matcher(xmlResponse);
-    // [tknall] stop qualified certificate
-
-    Pattern code_p_s = Pattern.compile("<sl:Code>");
-    Pattern code_p_e = Pattern.compile("</sl:Code>");
-    Pattern info_p_s = Pattern.compile("<sl:Info>");
-    Pattern info_p_e = Pattern.compile("</sl:Info>");
-
-    Pattern cert_p_s = Pattern.compile("<dsig:X509Certificate>");
-    Pattern cert_p_e = Pattern.compile("</dsig:X509Certificate>");
-
-    Matcher sub_nam_m_s = sub_nam_p_s.matcher(xmlResponse);
-    Matcher sub_nam_m_e = sub_nam_p_e.matcher(xmlResponse);
-    Matcher iss_nam_m_s = iss_nam_p_s.matcher(xmlResponse);
-    Matcher iss_nam_m_e = iss_nam_p_e.matcher(xmlResponse);
-    Matcher ser_num_m_s = ser_num_p_s.matcher(xmlResponse);
-    Matcher ser_num_m_e = ser_num_p_e.matcher(xmlResponse);
-
-    Matcher sig_chk_m_s = sig_chk_p_s.matcher(xmlResponse);
-    Matcher sig_chk_m_e = sig_chk_p_e.matcher(xmlResponse);
-    Matcher man_chk_m_s = man_chk_p_s.matcher(xmlResponse);
-    Matcher man_chk_m_e = man_chk_p_e.matcher(xmlResponse);
-    Matcher cer_chk_m_s = cer_chk_p_s.matcher(xmlResponse);
-    Matcher cer_chk_m_e = cer_chk_p_e.matcher(xmlResponse);
-
-    Matcher cert_m_s = cert_p_s.matcher(xmlResponse);
-    Matcher cert_m_e = cert_p_e.matcher(xmlResponse);
-
-    SignatureResponse sig_res = new SignatureResponse();
-
-    // [tknall] start qualified certificate
-    sig_res.setQualifiedCertificate(cert_qualified_m.find());
-    // [tknall] stop qualified certificate
-
-    if (sub_nam_m_s.find() && sub_nam_m_e.find())
-    {
-      String sub_nam = xmlResponse.substring(sub_nam_m_s.end(), sub_nam_m_e.start());
-      sig_res.setX509SubjectName(sub_nam);
-    }
-    if (iss_nam_m_s.find() && iss_nam_m_e.find())
-    {
-      String iss_nam = xmlResponse.substring(iss_nam_m_s.end(), iss_nam_m_e.start());
-      sig_res.setX509IssuerName(iss_nam);
-    }
-    if (ser_num_m_s.find() && ser_num_m_e.find())
-    {
-      String ser_num = xmlResponse.substring(ser_num_m_s.end(), ser_num_m_e.start());
-      sig_res.setX509SerialNumber(ser_num);
-    }
-    if (sig_chk_m_s.find() && sig_chk_m_e.find())
-    {
-      String sig_chk = xmlResponse.substring(sig_chk_m_s.end(), sig_chk_m_e.start());
-      Matcher code_m_s = code_p_s.matcher(sig_chk);
-      Matcher code_m_e = code_p_e.matcher(sig_chk);
-      Matcher info_m_s = info_p_s.matcher(sig_chk);
-      Matcher info_m_e = info_p_e.matcher(sig_chk);
-      if (code_m_s.find() && code_m_e.find())
-      {
-        String code = sig_chk.substring(code_m_s.end(), code_m_e.start());
-        sig_res.setSignatureCheckCode(code);
-      }
-      if (info_m_s.find() && info_m_e.find())
-      {
-        String info = sig_chk.substring(info_m_s.end(), info_m_e.start());
-        sig_res.setSignatureCheckInfo(info);
-      }
-    }
-    if (man_chk_m_s.find() && man_chk_m_e.find())
-    {
-      String man_chk = xmlResponse.substring(man_chk_m_s.end(), man_chk_m_e.start());
-      Matcher code_m_s = code_p_s.matcher(man_chk);
-      Matcher code_m_e = code_p_e.matcher(man_chk);
-      Matcher info_m_s = info_p_s.matcher(man_chk);
-      Matcher info_m_e = info_p_e.matcher(man_chk);
-      if (code_m_s.find() && code_m_e.find())
-      {
-        String code = man_chk.substring(code_m_s.end(), code_m_e.start());
-        sig_res.setSignatureManifestCheckCode(code);
-      }
-      if (info_m_s.find() && info_m_e.find())
-      {
-        String info = man_chk.substring(info_m_s.end(), info_m_e.start());
-        sig_res.setSignatureManifestCheckInfo(info);
-      }
-    }
-    if (cer_chk_m_s.find() && cer_chk_m_e.find())
-    {
-      String cer_chk = xmlResponse.substring(cer_chk_m_s.end(), cer_chk_m_e.start());
-      Matcher code_m_s = code_p_s.matcher(cer_chk);
-      Matcher code_m_e = code_p_e.matcher(cer_chk);
-      Matcher info_m_s = info_p_s.matcher(cer_chk);
-      Matcher info_m_e = info_p_e.matcher(cer_chk);
-      if (code_m_s.find() && code_m_e.find())
-      {
-        String code = cer_chk.substring(code_m_s.end(), code_m_e.start());
-        sig_res.setCertificateCheckCode(code);
-      }
-      if (info_m_s.find() && info_m_e.find())
-      {
-        String info = cer_chk.substring(info_m_s.end(), info_m_e.start());
-        sig_res.setCertificateCheckInfo(info);
-      }
-    }
-    if (cert_m_s.find() && cert_m_e.find())
-    {
-      String cert_string = xmlResponse.substring(cert_m_s.end(), cert_m_e.start());
-
-      X509Cert resp_cert = X509Cert.initByString(cert_string);
-      sig_res.setCertificate(resp_cert);
-    }
-
-    return sig_res;
-  }
-
-  public String prepareSignRequestDetached(String signType, String sigmode) throws SignatureException
-  {
-    logger_.info("Call " + getType() + " connector sigmode=" + sigmode);
-
-    String keybox_identifier = getSignKeyboxIdentifier(signType);
-    String sign_request_filename = getSignRequestTemplateFileName(signType, sigmode);
-    String sign_req_str = FileHelper.readFromFile(SettingsReader.relocateFile(sign_request_filename));
-
-    if (sign_req_str == null)
-    {
-      throw new SignatureException(300, "Can not read the create xml request template");
-    }
-    sign_req_str = sign_req_str.replaceFirst("KeyboxIdentifierReplace", keybox_identifier);
-    return sign_req_str;
-  }
-
-  // decides if moasigned or BKU
-  public String prepareVerifyRequestDetached(byte[] data,
-      SignatureObject sigObject) throws SignatureException
-  {
-    // get templates
-    String verify_request = "./templates/BKUVerifyRequestDetached.xml"; //getVerifyRequestTemplateFileName(sigObject.getSignationType());
-    String verify_req_str = FileHelper.readFromFile(SettingsReader.relocateFile(verify_request));
-    logger_.info("prepareVerifyRequest TemplateFile=" + verify_request);
-    
-    String verify_template_str = null;
-    // TODO implement MOA
-//    if (sigObject.isMOASigned())
-//    {
-//      MOAConnector moa_conn = new MOAConnector();
-//      // get the MOA-template
-//      verify_template_str = moa_conn.getVerifyTemplate(normalizedText, sigObject);
-//    }
-//    else
-//    {
-      // get the BKU-template
-      verify_template_str = getVerifyTemplate(data, sigObject);
+//  /**
+//   * ConnectorInformation that identifies this Connector to the system.
+//   * 
+//   * @see at.knowcenter.wag.egov.egiz.sig.ConnectorFactory
+//   * @see ConnectorInformation
+//   */
+//  public static final ConnectorInformation CONNECTOR_INFORMATION = new ConnectorInformation("bku", "BKU");
+//
+//  /**
+//   * The SettingsReader instance
+//   */
+//  private SettingsReader settings_ = null;
+//
+//  /**
+//   * The logger definition.
+//   */
+//  private static final Logger logger_ = ConfigLogger.getLogger(BKUConnector.class);
+//
+//  /**
+//   * The empty constructor
+//   */
+//  public BKUConnector() throws SignatureException
+//  {
+//    loadSettings();
+//  }
+//
+//  /**
+//   * load the inital signature settings
+//   * 
+//   * @see SettingsReader
+//   */
+//  private void loadSettings() throws SignatureException
+//  {
+//    if (settings_ == null)
+//    {
+//      try
+//      {
+//        settings_ = SettingsReader.getInstance();
+//      }
+//      catch (SettingsException e)
+//      {
+//        String log_message = "Can not load signature settings. Cause:\n" + e.getMessage();
+//        logger_.error(log_message);
+//        throw new SignatureException(101, log_message, e);
+//      }
 //    }
-
-    verify_req_str = verify_req_str.replaceFirst("XMLContentReplace", verify_template_str);
-    if (logger_.isDebugEnabled())
-    {
-      logger_.debug("verify_req_str.xml : " + verify_req_str);
-    }
-
-    return verify_req_str;
-  }
-
-  /**
-   * Sends the request to the given URL.
-   * 
-   * @param url
-   *          The URL.
-   * @param request_string
-   *          The request string.
-   * @return Returns the response string.
-   * @throws SignatureException
-   *           F.e.
-   */
-  protected Properties sendRequest(String url, String request_string) throws SignatureException
-  {
-    try
-    {
-      Properties response_properties = BKUPostConnection.doPostRequest(url, request_string);
-      return response_properties;
-    }
-    catch (Exception e)
-    {
-      SignatureException se = new SignatureException(320, e);
-      throw se;
-    }
-  }
-
-  /**
-   * 
-   * @param url
-   *          The URL.
-   * @param request_string
-   *          The request string.
-   * @return Returns the response string.
-   * @throws SignatureException
-   *           F.e.
-   */
-  protected Properties sendRequest(String url, String request_string,
-      byte[] signdata, String mimetype) throws SignatureException
-  {
-    try
-    {
-      // Properties response_properties =
-      // BKUPostConnection.doPostRequest272(url, request_string, signdata,
-      // mimetype);
-      Properties response_properties = BKUPostConnection.doPostRequest272(url, request_string, signdata, mimetype);
-      return response_properties;
-    }
-    catch (Exception e)
-    {
-      SignatureException se = new SignatureException(320, e);
-      throw se;
-    }
-  }
-
-  public SignatureObject analyzeSignResponse(Properties response_properties,
-      String sigType) throws SignatureException
-  {
-    // String sign_request_filename = getSignRequestTemplateFileName(sigType);
-
-    // TODO hotfix
-    String response_string = response_properties.getProperty("response_string");
-
-    // TODO debug
-    try
-    {
-      FileOutputStream fos = new FileOutputStream("C:\\wprinz\\Filer\\egiz2\\sign_response.utf8.xml");
-      OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
-      osw.write(response_string);
-      osw.close();
-    }
-    catch (Exception e)
-    {
-      logger_.error(e);
-    }
-
-    SignatureObject sig_obj = new SignatureObject();
-    sig_obj.setRawSignatureResponse(response_string);
-    try
-    {
-      sig_obj.setSigType(sigType);
-      sig_obj.initByType();
-    }
-    catch (SignatureTypesException e)
-    {
-      SignatureException se = new SignatureException(300, "Cannot init signature object with type:" + sigType, e);
-      throw se;
-    }
-    if (logger_.isDebugEnabled())
-    {
-      logger_.debug("Signature Type is:" + sig_obj.getSignationType());
-    }
-
-    if (!response_string.equals(""))
-    {
-      Pattern erc_p_s = Pattern.compile("<[\\w]*:?ErrorCode>");
-      Pattern erc_p_e = Pattern.compile("</[\\w]*:?ErrorCode>");
-      Matcher erc_m_s = erc_p_s.matcher(response_string);
-      Matcher erc_m_e = erc_p_e.matcher(response_string);
-      // System.err.println(response_string);
-
-      if (erc_m_s.find() && erc_m_e.find())
-      {
-        if (logger_.isEnabledFor(Level.ERROR))
-        {
-          // logger_.debug(sign_request_filename + "_response.xml : " +
-          // response_string);
-          logger_.error("BKU Error response: " + response_string);
-        }
-        Pattern erm_p_s = Pattern.compile("<[\\w]*:?Info>");
-        Pattern erm_p_e = Pattern.compile("</[\\w]*:?Info>");
-        Matcher erm_m_s = erm_p_s.matcher(response_string);
-        Matcher erm_m_e = erm_p_e.matcher(response_string);
-        SignatureException se = new SignatureException(0, "BKUSigExc");
-        String error_code = response_string.substring(erc_m_s.end(), erc_m_e.start());
-        se.setExternalErrorCode(error_code);
-        if (erm_m_s.find() && erm_m_e.find())
-        {
-          String error_mess = response_string.substring(erm_m_s.end(), erm_m_e.start());
-          se.setExternalErrorMessage(error_mess);
-        }
-        throw se;
-      }
-      else
-      {
-        if (logger_.isDebugEnabled())
-        {
-          logger_.debug("signature_response_string: " + response_string);
-        }
-        parseCreateXMLResponse(response_properties, sig_obj);
-      }
-    }
-    sig_obj.setSigResponse(response_string);
-    return sig_obj;
-  }
-
-  public SignatureResponse analyzeVerifyResponse(Properties response_properties) throws SignatureException
-  {
-    String response_string = response_properties.getProperty("response_string");
-
-    if (!response_string.equals(""))
-    {
-      Pattern erc_p_s = Pattern.compile("<[\\w]*:?ErrorCode>");
-      Pattern erc_p_e = Pattern.compile("</[\\w]*:?ErrorCode>");
-      Matcher erc_m_s = erc_p_s.matcher(response_string);
-      Matcher erc_m_e = erc_p_e.matcher(response_string);
-
-      if (erc_m_s.find() && erc_m_e.find())
-      {
-        if (logger_.isEnabledFor(Level.ERROR))
-        {
-          // logger_.debug(getType() + "_response.xml : " + response_string);
-          logger_.error(getType() + "_response.xml : " + response_string);
-        }
-        Pattern erm_p_s = Pattern.compile("<[\\w]*:?Info>");
-        Pattern erm_p_e = Pattern.compile("</[\\w]*:?Info>");
-        Matcher erm_m_s = erm_p_s.matcher(response_string);
-        Matcher erm_m_e = erm_p_e.matcher(response_string);
-        SignatureException se = new SignatureException(0, "BKUSigExc");
-        if (erc_m_s.find() && erc_m_e.find())
-        {
-          String error_code = response_string.substring(erc_m_s.end(), erc_m_e.start());
-          se.setExternalErrorCode(error_code);
-        }
-        if (erm_m_s.find() && erm_m_e.find())
-        {
-          String error_mess = response_string.substring(erm_m_s.end(), erm_m_e.start());
-          se.setExternalErrorMessage(error_mess);
-        }
-        throw se;
-      }
-      else
-      {
-        if (logger_.isDebugEnabled())
-        {
-          // logger_.debug(getType() + "_response.xml : " + response_string);
-        }
-        return parseVerifyXMLResponse(response_string);
-      }
-    }
-    return null;
-  }
-
-  protected String getConnectorValueFromProfile(String profile, String key)
-  {
-    String value = settings_.getValueFromKey("sig_obj." + profile + "." + key);
-    if (value == null)
-    {
-      value = settings_.getValueFromKey(key);
-    }
-    return value;
-  }
-
-  public String getSignURL(String profile)
-  {
-    final String key = getType() + "." + ConnectorConfigurationKeys.VALUE_MODE_SIGN + ".url";
-    return getConnectorValueFromProfile(profile, key);
-  }
-
-  protected String getSignRequestTemplateFileName(String profile, String sigmode)
-  {
-    String key = getType() + "." + ConnectorConfigurationKeys.VALUE_MODE_SIGN + ".request" + "." + sigmode;
-    logger_.info("getSignRequestTemplateFileName: profile=" + profile + "" + " key=" + key);
-    String filename = getConnectorValueFromProfile(profile, key);
-    logger_.info("getSignRequestTemplateFileName filename=" + filename);
-    return filename;// getConnectorValueFromProfile(profile, key);
-  }
-
-  protected String getSignKeyboxIdentifier(String profile)
-  {
-    String key = getType() + "." + ConnectorConfigurationKeys.VALUE_MODE_SIGN + ".KeyboxIdentifier";
-    return getConnectorValueFromProfile(profile, key);
-  }
-
-  public String getVerifyURL(String profile)
-  {
-    String key = getType() + "." + ConnectorConfigurationKeys.VALUE_MODE_VERIFY + ".url";
-    return getConnectorValueFromProfile(profile, key);
-  }
-
-  protected String getVerifyRequestTemplateFileName(String profile)
-  {
-    String key = getType() + "." + ConnectorConfigurationKeys.VALUE_MODE_VERIFY + ".request";
-    return getConnectorValueFromProfile(profile, key);
-  }
-
-  protected String getVerifyTemplateFileName(String profile)
-  {
-    String key = getType() + "." + ConnectorConfigurationKeys.VALUE_MODE_VERIFY + ".template";
-    return getConnectorValueFromProfile(profile, key);
-  }
-
-  protected String getSigPropFileName(String profile, String sigmode)
-  {
-    String key = getType() + "." + ConnectorConfigurationKeys.VALUE_MODE_VERIFY + ".template.SP." + sigmode;
-    logger_.info("getSigPropFileName: profile=" + profile + "" + " key=" + key);
-    String filename = getConnectorValueFromProfile(profile, key);
-    logger_.info("getSigPropFileName filename=" + filename);
-    return getConnectorValueFromProfile(profile, key);
-  }
-
-  /**
-   * Returns the type of this BKU-like connector.
-   * 
-   * <p>
-   * All settings keys will be prefixed by this type. So to reuse the BKU
-   * connector, a deriving class has to implement this method specifying an own
-   * type.
-   * </p>
-   * 
-   * @return Returns the type of this BKU-like connector.
-   */
-  protected String getType()
-  {
-    return CONNECTOR_INFORMATION.getIdentifier();
-  }
+//  }
+//
+//  public SignatureObject doSign(String sigType, byte[] data, PdfASID algorithm) throws SignatureException
+//  {
+//    String sigmode = algorithm.getType();
+//
+//    String request_string = prepareSignRequestDetached(sigType, sigmode);
+//
+//    String sign_url = getSignURL(sigType);
+//
+//    String versionstring = algorithm.getVersion();
+//    logger_.info("versionstring=" + versionstring);
+//
+//    String mimetype = "";
+//    if (sigmode.equalsIgnoreCase(SignatorFactory.TYPE_TEXTUAL))
+//    {
+//      mimetype = "text/plain";
+//    }
+//    if (sigmode.equalsIgnoreCase(SignatorFactory.TYPE_BINARY))
+//    {
+//      mimetype = "application/pdf";
+//    }
+//
+//    Properties response_properties = sendRequest(sign_url, request_string, data, mimetype);
+//
+//    return analyzeSignResponse(response_properties, sigType);
+//  }
+//
+//  public SignatureResponse doVerify(byte[] data, SignatureObject sigObject) throws SignatureException
+//  {
+//    String sigmode = sigObject.getKZ().getType();
+//    String sigversion = sigObject.getKZ().getVersion();
+//
+//    // decide which template should be used to verify
+//    // use versionstring to decide if detached Signature
+//    String request_string = prepareVerifyRequestDetached(data, sigObject);
+//    // if (sigversion.equals(SignatorFactory.VERSION_1_1_0))
+//    // {
+//    // TODO support Sign v1.1.0 Remove base64 and write tempfile
+//    // String sigversion=SignatorFactory.TYPE_TEXTUAL;
+//
+//    String mimetype = "";
+//    if (sigmode.equalsIgnoreCase(SignatorFactory.TYPE_TEXTUAL))
+//    {
+//      mimetype = "text/plain";
+//    }
+//    if (sigmode.equalsIgnoreCase(SignatorFactory.TYPE_BINARY))
+//    {
+//      mimetype = "application/pdf";
+//    }
+//
+//    String verify_url = getVerifyURL(sigObject.getSignationType());
+//    Properties response_properties = sendRequest(verify_url, request_string, data, mimetype);
+//
+//    return analyzeVerifyResponse(response_properties);
+//  }
+//
+//  /**
+//   * This method parses the BKU-Response string. It separates the
+//   * SignatureValue, X509IssuerName, SigningTime, X509SerialNumber,
+//   * X509Certificate, CertDigest, DigestValue and the signation id-s. If the
+//   * X509Certificate is extracted it would be stored in the certificates
+//   * directory.
+//   * 
+//   * @param xmlResponse
+//   *          the response string from the BKU sign-request
+//   * @param sigObj
+//   *          the SignatureObject that should be filled
+//   * @throws SignatureException
+//   *           ErrorCode (303, 304)
+//   * @see SignatureObject
+//   * @see CodingHelper
+//   * @see X509Cert
+//   */
+//  private void parseCreateXMLResponse(Properties response_properties,
+//      SignatureObject sigObj) throws SignatureException
+//  {
+//    String xmlResponse = response_properties.getProperty("response_string");
+//
+//    Pattern sig_val_p_s = Pattern.compile("<[\\w]*:?SignatureValue>");
+//    Pattern sig_val_p_e = Pattern.compile("</[\\w]*:?SignatureValue>");
+//    Pattern iss_nam_p_s = Pattern.compile("<[\\w]*:?X509IssuerName>");
+//    Pattern iss_nam_p_e = Pattern.compile("</[\\w]*:?X509IssuerName>");
+//    Pattern sig_tim_p_s = Pattern.compile("<[\\w]*:?SigningTime>");
+//    Pattern sig_tim_p_e = Pattern.compile("</[\\w]*:?SigningTime>");
+//    Pattern ser_num_p_s = Pattern.compile("<[\\w]*:?X509SerialNumber>");
+//    Pattern ser_num_p_e = Pattern.compile("</[\\w]*:?X509SerialNumber>");
+//    Pattern sig_cer_p_s = Pattern.compile("<[\\w]*:?X509Certificate>");
+//    Pattern sig_cer_p_e = Pattern.compile("</[\\w]*:?X509Certificate>");
+//
+//    Pattern sig_cer_d_p_s = Pattern.compile("<[\\w]*:?CertDigest>");
+//    Pattern sig_cer_d_p_e = Pattern.compile("</[\\w]*:?CertDigest>");
+//    Pattern dig_val_p_s = Pattern.compile("<[\\w]*:?DigestValue>");
+//    Pattern dig_val_p_e = Pattern.compile("</[\\w]*:?DigestValue>");
+//
+//    Matcher sig_val_m_s = sig_val_p_s.matcher(xmlResponse);
+//    Matcher sig_val_m_e = sig_val_p_e.matcher(xmlResponse);
+//    Matcher iss_nam_m_s = iss_nam_p_s.matcher(xmlResponse);
+//    Matcher iss_nam_m_e = iss_nam_p_e.matcher(xmlResponse);
+//    Matcher sig_tim_m_s = sig_tim_p_s.matcher(xmlResponse);
+//    Matcher sig_tim_m_e = sig_tim_p_e.matcher(xmlResponse);
+//    Matcher ser_num_m_s = ser_num_p_s.matcher(xmlResponse);
+//    Matcher ser_num_m_e = ser_num_p_e.matcher(xmlResponse);
+//    Matcher sig_cer_m_s = sig_cer_p_s.matcher(xmlResponse);
+//    Matcher sig_cer_m_e = sig_cer_p_e.matcher(xmlResponse);
+//
+//    Matcher sig_cer_d_m_s = sig_cer_d_p_s.matcher(xmlResponse);
+//    Matcher sig_cer_d_m_e = sig_cer_d_p_e.matcher(xmlResponse);
+//
+//    String sig_val = "";
+//    String iss_nam = "";
+//    String ser_num = "";
+//    String sig_tim = "";
+//    String sig_cer = "";
+//    String sig_dig = "";
+//
+//    // SignatureValue
+//    if (sig_val_m_s.find() && sig_val_m_e.find())
+//    {
+//      sig_val = xmlResponse.substring(sig_val_m_s.end(), sig_val_m_e.start());
+//      sig_val = sig_val.replaceAll("\\s", "");
+//      sigObj.setSignationValue(sig_val);
+//    }
+//    // X509IssuerName
+//    if (iss_nam_m_s.find() && iss_nam_m_e.find())
+//    {
+//      iss_nam = xmlResponse.substring(iss_nam_m_s.end(), iss_nam_m_e.start());
+//      sigObj.setSignationIssuer(iss_nam);
+//    }
+//    // X509SerialNumber
+//    if (ser_num_m_s.find() && ser_num_m_e.find())
+//    {
+//      ser_num = xmlResponse.substring(ser_num_m_s.end(), ser_num_m_e.start());
+//      sigObj.setSignationSerialNumber(ser_num);
+//    }
+//    // SigningTime
+//    if (sig_tim_m_s.find() && sig_tim_m_e.find())
+//    {
+//      sig_tim = xmlResponse.substring(sig_tim_m_s.end(), sig_tim_m_e.start());
+//      sigObj.setSignationDate(sig_tim);
+//    }
+//    // CertDigest
+//    if (sig_cer_d_m_s.find() && sig_cer_d_m_e.find())
+//    {
+//      String cert_digest = xmlResponse.substring(sig_cer_d_m_s.end(), sig_cer_d_m_e.start());
+//      Matcher dig_val_m_s = dig_val_p_s.matcher(cert_digest);
+//      Matcher dig_val_m_e = dig_val_p_e.matcher(cert_digest);
+//      if (dig_val_m_s.find() && dig_val_m_e.find())
+//      {
+//        sig_dig = cert_digest.substring(dig_val_m_s.end(), dig_val_m_e.start());
+//        sigObj.setX509CertificateDigest(sig_dig);
+//      }
+//    }
+//    // extract Subject Name from X509Certificate
+//    if (sig_cer_m_s.find() && sig_cer_m_e.find())
+//    {
+//      sig_cer = xmlResponse.substring(sig_cer_m_s.end(), sig_cer_m_e.start());
+//      sig_cer = sig_cer.replaceAll("\\s", "");
+//      sigObj.setX509Certificate(sig_cer);
+//      X509Cert cert = X509Cert.initByString(sig_cer);
+//      if (cert.isX509Cert())
+//      {
+//        sigObj.setX509Certificate(cert.getCertString());
+//        String serial_num = cert.getSerialNumber();
+//        String subject_name = cert.getSubjectName();
+//        if (!ser_num.equals(serial_num))
+//        {
+//          SignatureException se = new SignatureException(303, "Serialnumber of certificate and tag X509SerialNumber differs!");
+//          throw se;
+//        }
+//        sigObj.setSignationName(subject_name);
+//      }
+//    }
+//    // extract Signature Id's
+//    String[] ids = new String[5];
+//    ids[0] = extractId(xmlResponse, "signature-");
+//    ids[1] = extractId(xmlResponse, "signed-data-reference-");
+//    ids[2] = extractId(xmlResponse, "signed-data-object-");
+//    ids[3] = extractId(xmlResponse, "etsi-data-reference-");
+//    ids[4] = extractId(xmlResponse, "etsi-data-object-");
+//    String final_ids = formatSigIds(ids);
+//    sigObj.setSignationIDs(final_ids);
+//  }
+//
+//  protected String formatSigIds(String[] sigIds) throws SignatureException
+//  {
+//    // ids algorithm:
+//    String join = "";
+//    String base = null;
+//    for (int arr_idx = 0; arr_idx < sigIds.length; arr_idx++)
+//    {
+//      String id = sigIds[arr_idx];
+//      if (logger_.isDebugEnabled())
+//      {
+//        logger_.debug("Set BKU id:" + id);
+//      }
+//      int id_idx = id.lastIndexOf("-");
+//      if (arr_idx == 0)
+//      {
+//        base = id.substring(0, id_idx);
+//      }
+//      String cur_id = id.substring(id_idx + 1);
+//      if (cur_id.equalsIgnoreCase(""))
+//      {
+//        cur_id = "0";
+//      }
+//
+//      join += "-" + cur_id;
+//    }
+//    String ids = base + "@" + join.substring(1);
+//    String final_ids = getSigIDprefixValueFromProfile() + ids;
+//    return final_ids;
+//  }
+//
+//  protected String getSigIDprefixValueFromProfile()
+//  {
+//    String key = getType() + ".sign.SIG_IDprefix";
+//    String value = settings_.getValueFromKey(key);
+//    if (value == null)
+//    {
+//      value = "";
+//    }
+//    return value;
+//  }
+//
+//  /**
+//   * This emthod extracts id-values from a text. The id is given by the name.
+//   * 
+//   * @param text
+//   *          the id-value that should extract from
+//   * @param name
+//   *          the id-key
+//   * @return the value of the given key in the text
+//   */
+//  private String extractId(String text, String name)
+//  {
+//    String id = null;
+//    int start_idx = text.indexOf(name) + name.length();
+//    int end_idx = text.indexOf("\"", start_idx);
+//
+//    final int quot_end_idx = end_idx;
+//    final int squot_end_idx = text.indexOf("'", start_idx);
+//    end_idx = Math.min(quot_end_idx, squot_end_idx);
+//    id = text.substring(start_idx, end_idx);
+//    logger_.info("extract id:" + name + id);
+//    if (logger_.isDebugEnabled())
+//    {
+//      logger_.debug("extract id:" + name + id);
+//    }
+//    return id;
+//  }
+//
+//  public String getVerifyTemplate(byte [] data,
+//      SignatureObject sigObject) throws SignatureException
+//  {
+//    // TODO Template selection depending on Sigid
+//    try
+//    {
+//      if (data == null)
+//      {
+//        SignatureException se = new SignatureException(311, "Document can not be verified because data is empty.");
+//        throw se;
+//      }
+//      if (sigObject == null)
+//      {
+//        SignatureException se = new SignatureException(312, "Document can not be verified because no signature object are set.");
+//        throw se;
+//      }
+//
+//      String verify_template = "./templates/BKUVerifyTemplateDetached.xml";//getVerifyTemplateFileName(sigObject.getSignationType());
+//      String sigmode = sigObject.getKZ().getType();
+//
+//      String sig_prop_filename = "./templates/BKUVerifyTemplateSP_neueBKU_text.xml"; //getSigPropFileName(sigObject.getSignationType(), sigmode);
+//      
+//      if (sigObject.getKZ().getType().equals("binaer"))
+//      {
+//        sig_prop_filename = "./templates/BKUVerifyTemplateSP_neueBKU_bin.xml";
+//      }
+//      
+//      
+//      logger_.info(" verify_template= " + verify_template);
+//      logger_.info("sig_prop_filename = " + sig_prop_filename);
+//      String ids_string = sigObject.getSignationIds();
+//      logger_.info("ids_string = " + ids_string);
+//      String[] ids = SignatureObject.parseSigIds(ids_string);
+//
+//      // TODO hotfix
+//      boolean neue_bku = true;
+//      if (ids[5] != null)
+//      {
+//        // Hash has to be made over an other part than in previous versions.
+//        // i dont know how this is in newer versions than 2.7.1
+//        // id[5] of Signature of 2.7.1 signed Pdfs is "etsi-bka-1.0@"
+//        if (ids[5].equals("etsi-bka-1.0@"))
+//        {
+//          neue_bku = true;
+//        }
+//      }
+//      logger_.info("verify ids[5] = " + ids[5]);
+//      logger_.info("verify neue_bku = " + neue_bku);
+//      if (neue_bku)
+//      {
+//        // verify_template =
+//        // getConnectorValueFromProfile(sigObject.getSignationType(),
+//        // "bku.verify.template2");
+//        // //"./templates/BKUVerifyTemplateB64_neueBKU.xml";
+//        // sig_prop_filename =
+//        // getConnectorValueFromProfile(sigObject.getSignationType(),
+//        // "bku.verify.template2.SP");
+//        // //"./templates/BKUVerifyTemplateSP_neueBKU.xml";
+//      }
+//
+//      String ver_temp_str = FileHelper.readFromFile(SettingsReader.relocateFile(verify_template));
+//      String sig_prop_str = FileHelper.readFromFile(SettingsReader.relocateFile(sig_prop_filename));
+//      if (logger_.isDebugEnabled())
+//      {
+//        // logger_.debug(verify_template);
+//        logger_.debug(sig_prop_filename);
+//      }
+//
+//      String x509_cert_string = sigObject.getX509CertificateString();
+//      if (x509_cert_string == null)
+//      {
+//        SignatureException se = new SignatureException(313, "Document certificate is not defined.");
+//        throw se;
+//      }
+//      String cert_alg = settings_.getValueFromKey("cert.alg.ecdsa");
+//      X509Cert x509_cert = sigObject.getX509Cert();
+//      if (x509_cert.isRSA())
+//      {
+//        cert_alg = settings_.getValueFromKey("cert.alg.rsa");
+//      }
+//
+//      sig_prop_str = sig_prop_str.replaceFirst("SigningTimeReplace", sigObject.getSignationDate());
+//
+//      String issuer_name = sigObject.getSignationIssuer();
+//      // The issuer is already unicode, so it mustn't be encoded again.
+//      // byte[] issuer_name =
+//      // CodingHelper.encodeUTF8(sigObject.getSignationIssuer());
+//      // new String(issuer_name); // this would double encode the String, not to
+//      // mention the missing encoding
+//      sig_prop_str = sig_prop_str.replaceFirst("X509IssuerNameReplace", issuer_name);
+//
+//      sig_prop_str = sig_prop_str.replaceFirst("X509SerialNumberReplace", sigObject.getSignationSerialNumber());
+//      sig_prop_str = sig_prop_str.replaceFirst("DigestValueX509CertificateReplace", sigObject.getX509CertificateDigest());
+//      sig_prop_str = sig_prop_str.replaceFirst("SigIdReplace", ids[0]);
+//      sig_prop_str = sig_prop_str.replaceFirst("SigDataRefReplace", ids[1]);
+//
+//      ver_temp_str = ver_temp_str.replaceFirst("CertAlgReplace", cert_alg);
+//      ver_temp_str = ver_temp_str.replaceFirst("TemplateQualifyingPropertiesReplace", sig_prop_str);
+//      byte[] sig_prop_code = CodingHelper.buildDigest(sig_prop_str.getBytes("UTF-8"));
+//
+//      String sig_prop_hash = CodingHelper.encodeBase64(sig_prop_code);
+//      logger_.info("XXXXXSignedPropertiesoldbase64bku sig_prop_hash=" + sig_prop_hash);
+//      // TODO hotfix
+//      // if (neue_bku)
+//      // {
+//      // BKU Version 2.7.1 builds hash over other than previous
+//      final String ETSI_SIGNED_PROPERTIES_START_TAG = "<etsi:SignedProperties"; // xml
+//      // name
+//      // spaces
+//      // follow,
+//      // so
+//      // this
+//      // is
+//      // not
+//      // a
+//      // complete
+//      // tag...
+//      final String ETSI_SIGNED_PROPERTIES_END_TAG = "</etsi:SignedProperties>";
+//
+//      final int hash_start = sig_prop_str.indexOf(ETSI_SIGNED_PROPERTIES_START_TAG);
+//      assert hash_start >= 0;
+//      final int hash_end = sig_prop_str.indexOf(ETSI_SIGNED_PROPERTIES_END_TAG, hash_start) + ETSI_SIGNED_PROPERTIES_END_TAG.length();
+//      assert hash_end - ETSI_SIGNED_PROPERTIES_END_TAG.length() >= 0;
+//      assert hash_end > hash_start;
+//
+//      final String string_to_be_hashed = sig_prop_str.substring(hash_start, hash_end);
+//      logger_.info("etsi:SignedProperties string to be hashed: " + string_to_be_hashed);
+//
+//      final byte[] bytes_to_be_hashed = string_to_be_hashed.getBytes("UTF-8");
+//      sig_prop_code = CodingHelper.buildDigest(bytes_to_be_hashed);
+//      sig_prop_hash = CodingHelper.encodeBase64(sig_prop_code);
+//      logger_.info("XXXXXSignedPropertiesnewbase64bku sig_prop_hash=" + sig_prop_hash);
+//      // }
+//
+//      ver_temp_str = ver_temp_str.replaceFirst("DigestValueSignedPropertiesReplace", sig_prop_hash);
+//      // logger_.info("DIGEST:" + sig_prop_hash);
+//      if (logger_.isDebugEnabled())
+//      {
+//        logger_.debug("build digest from QualifyingProperties:start");
+//        // logger_.debug("DATA :" + sig_prop_str);
+//        logger_.debug("DIGEST:" + sig_prop_hash);
+//        logger_.debug("build digest from QualifyingProperties:end");
+//      }
+//
+//      ver_temp_str = ver_temp_str.replaceFirst("SignatureValueReplace", sigObject.getSignationValue());
+//      ver_temp_str = ver_temp_str.replaceFirst("X509CertificateReplace", x509_cert_string);
+//      byte[] data_value = data; // normalizedText.getBytes("UTF-8");
+//      byte[] data_value_hash = CodingHelper.buildDigest(data_value);
+//      String object_data_hash = CodingHelper.encodeBase64(data_value_hash);
+//      // logger_.info("XXXXXXxbase64 object_data_hash="+object_data_hash);
+//      // String object_data = new String(data_value);
+//      if (logger_.isDebugEnabled())
+//      {
+//        logger_.debug("build digest from data object:start");
+//        // logger_.debug("DATA :" + normalizedText);
+//        logger_.debug("DIGEST:" + object_data_hash);
+//        logger_.debug("build digest from data object:end");
+//      }
+//
+//      // String raw_b64 = CodingHelper.encodeUTF8AsBase64(normalizedText);
+//      String raw_b64 = CodingHelper.encodeBase64(data_value);
+//
+//      ver_temp_str = ver_temp_str.replaceFirst("Base64ContentReplace", raw_b64);
+//      ver_temp_str = ver_temp_str.replaceFirst("DigestValueSignedDataReplace", object_data_hash);
+//
+//      ver_temp_str = ver_temp_str.replaceAll("SigIdReplace", ids[0]);
+//      ver_temp_str = ver_temp_str.replaceAll("SigDataRefReplace", ids[1]);
+//      ver_temp_str = ver_temp_str.replaceAll("SigDataObjURIReplace", ids[2]);
+//      ver_temp_str = ver_temp_str.replaceAll("EtsiDataRefReplace", ids[3]);
+//      ver_temp_str = ver_temp_str.replaceAll("EtsiDataObjURIReplace", ids[4]);
+//      if (logger_.isDebugEnabled())
+//      {
+//        // logger_.debug("VERIFY REQUEST:" + ver_temp_str);
+//      }
+//
+//      return ver_temp_str;
+//    }
+//    catch (UnsupportedEncodingException e)
+//    {
+//      throw new SignatureException(310, e);
+//    }
+//  }
+//
+//  /**
+//   * This method parses the verify response string and return a
+//   * SignatureResponse object. The SignatureResponse object is filled out by the
+//   * response values from the BKU-response.
+//   * 
+//   * @param xmlResponse
+//   *          the response values from the BKU-verify request
+//   * @return SignatureResponse object
+//   * @see SignatureResponse
+//   */
+//  private SignatureResponse parseVerifyXMLResponse(String xmlResponse)
+//  {
+//    if (logger_.isInfoEnabled())
+//    {
+//      logger_.info("Try parsing the verify response");
+//    }
+//
+//    Pattern sub_nam_p_s = Pattern.compile("<dsig:X509SubjectName>");
+//    Pattern sub_nam_p_e = Pattern.compile("</dsig:X509SubjectName>");
+//    Pattern iss_nam_p_s = Pattern.compile("<dsig:X509IssuerName>");
+//    Pattern iss_nam_p_e = Pattern.compile("</dsig:X509IssuerName>");
+//    Pattern ser_num_p_s = Pattern.compile("<dsig:X509SerialNumber>");
+//    Pattern ser_num_p_e = Pattern.compile("</dsig:X509SerialNumber>");
+//
+//    Pattern sig_chk_p_s = Pattern.compile("<sl:SignatureCheck>");
+//    Pattern sig_chk_p_e = Pattern.compile("</sl:SignatureCheck>");
+//    Pattern man_chk_p_s = Pattern.compile("<sl:SignatureManifestCheck>");
+//    Pattern man_chk_p_e = Pattern.compile("</sl:SignatureManifestCheck>");
+//    Pattern cer_chk_p_s = Pattern.compile("<sl:CertificateCheck>");
+//    Pattern cer_chk_p_e = Pattern.compile("</sl:CertificateCheck>");
+//
+//    // [tknall] start qualified certificate
+//    Pattern cert_qualified_p = Pattern.compile("<sl:QualifiedCertificate/>");
+//    Matcher cert_qualified_m = cert_qualified_p.matcher(xmlResponse);
+//    // [tknall] stop qualified certificate
+//
+//    Pattern code_p_s = Pattern.compile("<sl:Code>");
+//    Pattern code_p_e = Pattern.compile("</sl:Code>");
+//    Pattern info_p_s = Pattern.compile("<sl:Info>");
+//    Pattern info_p_e = Pattern.compile("</sl:Info>");
+//
+//    Pattern cert_p_s = Pattern.compile("<dsig:X509Certificate>");
+//    Pattern cert_p_e = Pattern.compile("</dsig:X509Certificate>");
+//
+//    Matcher sub_nam_m_s = sub_nam_p_s.matcher(xmlResponse);
+//    Matcher sub_nam_m_e = sub_nam_p_e.matcher(xmlResponse);
+//    Matcher iss_nam_m_s = iss_nam_p_s.matcher(xmlResponse);
+//    Matcher iss_nam_m_e = iss_nam_p_e.matcher(xmlResponse);
+//    Matcher ser_num_m_s = ser_num_p_s.matcher(xmlResponse);
+//    Matcher ser_num_m_e = ser_num_p_e.matcher(xmlResponse);
+//
+//    Matcher sig_chk_m_s = sig_chk_p_s.matcher(xmlResponse);
+//    Matcher sig_chk_m_e = sig_chk_p_e.matcher(xmlResponse);
+//    Matcher man_chk_m_s = man_chk_p_s.matcher(xmlResponse);
+//    Matcher man_chk_m_e = man_chk_p_e.matcher(xmlResponse);
+//    Matcher cer_chk_m_s = cer_chk_p_s.matcher(xmlResponse);
+//    Matcher cer_chk_m_e = cer_chk_p_e.matcher(xmlResponse);
+//
+//    Matcher cert_m_s = cert_p_s.matcher(xmlResponse);
+//    Matcher cert_m_e = cert_p_e.matcher(xmlResponse);
+//
+//    SignatureResponse sig_res = new SignatureResponse();
+//
+//    // [tknall] start qualified certificate
+//    sig_res.setQualifiedCertificate(cert_qualified_m.find());
+//    // [tknall] stop qualified certificate
+//
+//    if (sub_nam_m_s.find() && sub_nam_m_e.find())
+//    {
+//      String sub_nam = xmlResponse.substring(sub_nam_m_s.end(), sub_nam_m_e.start());
+//      sig_res.setX509SubjectName(sub_nam);
+//    }
+//    if (iss_nam_m_s.find() && iss_nam_m_e.find())
+//    {
+//      String iss_nam = xmlResponse.substring(iss_nam_m_s.end(), iss_nam_m_e.start());
+//      sig_res.setX509IssuerName(iss_nam);
+//    }
+//    if (ser_num_m_s.find() && ser_num_m_e.find())
+//    {
+//      String ser_num = xmlResponse.substring(ser_num_m_s.end(), ser_num_m_e.start());
+//      sig_res.setX509SerialNumber(ser_num);
+//    }
+//    if (sig_chk_m_s.find() && sig_chk_m_e.find())
+//    {
+//      String sig_chk = xmlResponse.substring(sig_chk_m_s.end(), sig_chk_m_e.start());
+//      Matcher code_m_s = code_p_s.matcher(sig_chk);
+//      Matcher code_m_e = code_p_e.matcher(sig_chk);
+//      Matcher info_m_s = info_p_s.matcher(sig_chk);
+//      Matcher info_m_e = info_p_e.matcher(sig_chk);
+//      if (code_m_s.find() && code_m_e.find())
+//      {
+//        String code = sig_chk.substring(code_m_s.end(), code_m_e.start());
+//        sig_res.setSignatureCheckCode(code);
+//      }
+//      if (info_m_s.find() && info_m_e.find())
+//      {
+//        String info = sig_chk.substring(info_m_s.end(), info_m_e.start());
+//        sig_res.setSignatureCheckInfo(info);
+//      }
+//    }
+//    if (man_chk_m_s.find() && man_chk_m_e.find())
+//    {
+//      String man_chk = xmlResponse.substring(man_chk_m_s.end(), man_chk_m_e.start());
+//      Matcher code_m_s = code_p_s.matcher(man_chk);
+//      Matcher code_m_e = code_p_e.matcher(man_chk);
+//      Matcher info_m_s = info_p_s.matcher(man_chk);
+//      Matcher info_m_e = info_p_e.matcher(man_chk);
+//      if (code_m_s.find() && code_m_e.find())
+//      {
+//        String code = man_chk.substring(code_m_s.end(), code_m_e.start());
+//        sig_res.setSignatureManifestCheckCode(code);
+//      }
+//      if (info_m_s.find() && info_m_e.find())
+//      {
+//        String info = man_chk.substring(info_m_s.end(), info_m_e.start());
+//        sig_res.setSignatureManifestCheckInfo(info);
+//      }
+//    }
+//    if (cer_chk_m_s.find() && cer_chk_m_e.find())
+//    {
+//      String cer_chk = xmlResponse.substring(cer_chk_m_s.end(), cer_chk_m_e.start());
+//      Matcher code_m_s = code_p_s.matcher(cer_chk);
+//      Matcher code_m_e = code_p_e.matcher(cer_chk);
+//      Matcher info_m_s = info_p_s.matcher(cer_chk);
+//      Matcher info_m_e = info_p_e.matcher(cer_chk);
+//      if (code_m_s.find() && code_m_e.find())
+//      {
+//        String code = cer_chk.substring(code_m_s.end(), code_m_e.start());
+//        sig_res.setCertificateCheckCode(code);
+//      }
+//      if (info_m_s.find() && info_m_e.find())
+//      {
+//        String info = cer_chk.substring(info_m_s.end(), info_m_e.start());
+//        sig_res.setCertificateCheckInfo(info);
+//      }
+//    }
+//    if (cert_m_s.find() && cert_m_e.find())
+//    {
+//      String cert_string = xmlResponse.substring(cert_m_s.end(), cert_m_e.start());
+//
+//      X509Cert resp_cert = X509Cert.initByString(cert_string);
+//      sig_res.setCertificate(resp_cert);
+//    }
+//
+//    return sig_res;
+//  }
+//
+//  public String prepareSignRequestDetached(String signType, String sigmode) throws SignatureException
+//  {
+//    logger_.info("Call " + getType() + " connector sigmode=" + sigmode);
+//
+//    String keybox_identifier = getSignKeyboxIdentifier(signType);
+//    String sign_request_filename = getSignRequestTemplateFileName(signType, sigmode);
+//    String sign_req_str = FileHelper.readFromFile(SettingsReader.relocateFile(sign_request_filename));
+//
+//    if (sign_req_str == null)
+//    {
+//      throw new SignatureException(300, "Can not read the create xml request template");
+//    }
+//    sign_req_str = sign_req_str.replaceFirst("KeyboxIdentifierReplace", keybox_identifier);
+//    return sign_req_str;
+//  }
+//
+//  // decides if moasigned or BKU
+//  public String prepareVerifyRequestDetached(byte[] data,
+//      SignatureObject sigObject) throws SignatureException
+//  {
+//    // get templates
+//    String verify_request = "./templates/BKUVerifyRequestDetached.xml"; //getVerifyRequestTemplateFileName(sigObject.getSignationType());
+//    String verify_req_str = FileHelper.readFromFile(SettingsReader.relocateFile(verify_request));
+//    logger_.info("prepareVerifyRequest TemplateFile=" + verify_request);
+//    
+//    String verify_template_str = null;
+//    // TODO implement MOA
+////    if (sigObject.isMOASigned())
+////    {
+////      MOAConnector moa_conn = new MOAConnector();
+////      // get the MOA-template
+////      verify_template_str = moa_conn.getVerifyTemplate(normalizedText, sigObject);
+////    }
+////    else
+////    {
+//      // get the BKU-template
+//      verify_template_str = getVerifyTemplate(data, sigObject);
+////    }
+//
+//    verify_req_str = verify_req_str.replaceFirst("XMLContentReplace", verify_template_str);
+//    if (logger_.isDebugEnabled())
+//    {
+//      logger_.debug("verify_req_str.xml : " + verify_req_str);
+//    }
+//
+//    return verify_req_str;
+//  }
+//
+//  /**
+//   * Sends the request to the given URL.
+//   * 
+//   * @param url
+//   *          The URL.
+//   * @param request_string
+//   *          The request string.
+//   * @return Returns the response string.
+//   * @throws SignatureException
+//   *           F.e.
+//   */
+//  protected Properties sendRequest(String url, String request_string) throws SignatureException
+//  {
+//    try
+//    {
+//      Properties response_properties = BKUPostConnection.doPostRequest(url, request_string);
+//      return response_properties;
+//    }
+//    catch (Exception e)
+//    {
+//      SignatureException se = new SignatureException(320, e);
+//      throw se;
+//    }
+//  }
+//
+//  /**
+//   * 
+//   * @param url
+//   *          The URL.
+//   * @param request_string
+//   *          The request string.
+//   * @return Returns the response string.
+//   * @throws SignatureException
+//   *           F.e.
+//   */
+//  protected Properties sendRequest(String url, String request_string,
+//      byte[] signdata, String mimetype) throws SignatureException
+//  {
+//    try
+//    {
+//      // Properties response_properties =
+//      // BKUPostConnection.doPostRequest272(url, request_string, signdata,
+//      // mimetype);
+//      Properties response_properties = BKUPostConnection.doPostRequest272(url, request_string, signdata, mimetype);
+//      return response_properties;
+//    }
+//    catch (Exception e)
+//    {
+//      SignatureException se = new SignatureException(320, e);
+//      throw se;
+//    }
+//  }
+//
+//  public SignatureObject analyzeSignResponse(Properties response_properties,
+//      String sigType) throws SignatureException
+//  {
+//    // String sign_request_filename = getSignRequestTemplateFileName(sigType);
+//
+//    // TODO hotfix
+//    String response_string = response_properties.getProperty("response_string");
+//
+//    // TODO debug
+//    try
+//    {
+//      FileOutputStream fos = new FileOutputStream("C:\\wprinz\\Filer\\egiz2\\sign_response.utf8.xml");
+//      OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
+//      osw.write(response_string);
+//      osw.close();
+//    }
+//    catch (Exception e)
+//    {
+//      logger_.error(e);
+//    }
+//
+//    SignatureObject sig_obj = new SignatureObject();
+//    sig_obj.setRawSignatureResponse(response_string);
+//    try
+//    {
+//      sig_obj.setSigType(sigType);
+//      sig_obj.initByType();
+//    }
+//    catch (SignatureTypesException e)
+//    {
+//      SignatureException se = new SignatureException(300, "Cannot init signature object with type:" + sigType, e);
+//      throw se;
+//    }
+//    if (logger_.isDebugEnabled())
+//    {
+//      logger_.debug("Signature Type is:" + sig_obj.getSignationType());
+//    }
+//
+//    if (!response_string.equals(""))
+//    {
+//      Pattern erc_p_s = Pattern.compile("<[\\w]*:?ErrorCode>");
+//      Pattern erc_p_e = Pattern.compile("</[\\w]*:?ErrorCode>");
+//      Matcher erc_m_s = erc_p_s.matcher(response_string);
+//      Matcher erc_m_e = erc_p_e.matcher(response_string);
+//      // System.err.println(response_string);
+//
+//      if (erc_m_s.find() && erc_m_e.find())
+//      {
+//        if (logger_.isEnabledFor(Level.ERROR))
+//        {
+//          // logger_.debug(sign_request_filename + "_response.xml : " +
+//          // response_string);
+//          logger_.error("BKU Error response: " + response_string);
+//        }
+//        Pattern erm_p_s = Pattern.compile("<[\\w]*:?Info>");
+//        Pattern erm_p_e = Pattern.compile("</[\\w]*:?Info>");
+//        Matcher erm_m_s = erm_p_s.matcher(response_string);
+//        Matcher erm_m_e = erm_p_e.matcher(response_string);
+//        SignatureException se = new SignatureException(0, "BKUSigExc");
+//        String error_code = response_string.substring(erc_m_s.end(), erc_m_e.start());
+//        se.setExternalErrorCode(error_code);
+//        if (erm_m_s.find() && erm_m_e.find())
+//        {
+//          String error_mess = response_string.substring(erm_m_s.end(), erm_m_e.start());
+//          se.setExternalErrorMessage(error_mess);
+//        }
+//        throw se;
+//      }
+//      else
+//      {
+//        if (logger_.isDebugEnabled())
+//        {
+//          logger_.debug("signature_response_string: " + response_string);
+//        }
+//        parseCreateXMLResponse(response_properties, sig_obj);
+//      }
+//    }
+//    sig_obj.setSigResponse(response_string);
+//    return sig_obj;
+//  }
+//
+//  public SignatureResponse analyzeVerifyResponse(Properties response_properties) throws SignatureException
+//  {
+//    String response_string = response_properties.getProperty("response_string");
+//
+//    if (!response_string.equals(""))
+//    {
+//      Pattern erc_p_s = Pattern.compile("<[\\w]*:?ErrorCode>");
+//      Pattern erc_p_e = Pattern.compile("</[\\w]*:?ErrorCode>");
+//      Matcher erc_m_s = erc_p_s.matcher(response_string);
+//      Matcher erc_m_e = erc_p_e.matcher(response_string);
+//
+//      if (erc_m_s.find() && erc_m_e.find())
+//      {
+//        if (logger_.isEnabledFor(Level.ERROR))
+//        {
+//          // logger_.debug(getType() + "_response.xml : " + response_string);
+//          logger_.error(getType() + "_response.xml : " + response_string);
+//        }
+//        Pattern erm_p_s = Pattern.compile("<[\\w]*:?Info>");
+//        Pattern erm_p_e = Pattern.compile("</[\\w]*:?Info>");
+//        Matcher erm_m_s = erm_p_s.matcher(response_string);
+//        Matcher erm_m_e = erm_p_e.matcher(response_string);
+//        SignatureException se = new SignatureException(0, "BKUSigExc");
+//        if (erc_m_s.find() && erc_m_e.find())
+//        {
+//          String error_code = response_string.substring(erc_m_s.end(), erc_m_e.start());
+//          se.setExternalErrorCode(error_code);
+//        }
+//        if (erm_m_s.find() && erm_m_e.find())
+//        {
+//          String error_mess = response_string.substring(erm_m_s.end(), erm_m_e.start());
+//          se.setExternalErrorMessage(error_mess);
+//        }
+//        throw se;
+//      }
+//      else
+//      {
+//        if (logger_.isDebugEnabled())
+//        {
+//          // logger_.debug(getType() + "_response.xml : " + response_string);
+//        }
+//        return parseVerifyXMLResponse(response_string);
+//      }
+//    }
+//    return null;
+//  }
+//
+//  protected String getConnectorValueFromProfile(String profile, String key)
+//  {
+//    String value = settings_.getValueFromKey("sig_obj." + profile + "." + key);
+//    if (value == null)
+//    {
+//      value = settings_.getValueFromKey(key);
+//    }
+//    return value;
+//  }
+//
+//  public String getSignURL(String profile)
+//  {
+//    final String key = getType() + "." + ConnectorConfigurationKeys.VALUE_MODE_SIGN + ".url";
+//    return getConnectorValueFromProfile(profile, key);
+//  }
+//
+//  protected String getSignRequestTemplateFileName(String profile, String sigmode)
+//  {
+//    String key = getType() + "." + ConnectorConfigurationKeys.VALUE_MODE_SIGN + ".request" + "." + sigmode;
+//    logger_.info("getSignRequestTemplateFileName: profile=" + profile + "" + " key=" + key);
+//    String filename = getConnectorValueFromProfile(profile, key);
+//    logger_.info("getSignRequestTemplateFileName filename=" + filename);
+//    return filename;// getConnectorValueFromProfile(profile, key);
+//  }
+//
+//  protected String getSignKeyboxIdentifier(String profile)
+//  {
+//    String key = getType() + "." + ConnectorConfigurationKeys.VALUE_MODE_SIGN + ".KeyboxIdentifier";
+//    return getConnectorValueFromProfile(profile, key);
+//  }
+//
+//  public String getVerifyURL(String profile)
+//  {
+//    String key = getType() + "." + ConnectorConfigurationKeys.VALUE_MODE_VERIFY + ".url";
+//    return getConnectorValueFromProfile(profile, key);
+//  }
+//
+//  protected String getVerifyRequestTemplateFileName(String profile)
+//  {
+//    String key = getType() + "." + ConnectorConfigurationKeys.VALUE_MODE_VERIFY + ".request";
+//    return getConnectorValueFromProfile(profile, key);
+//  }
+//
+//  protected String getVerifyTemplateFileName(String profile)
+//  {
+//    String key = getType() + "." + ConnectorConfigurationKeys.VALUE_MODE_VERIFY + ".template";
+//    return getConnectorValueFromProfile(profile, key);
+//  }
+//
+//  protected String getSigPropFileName(String profile, String sigmode)
+//  {
+//    String key = getType() + "." + ConnectorConfigurationKeys.VALUE_MODE_VERIFY + ".template.SP." + sigmode;
+//    logger_.info("getSigPropFileName: profile=" + profile + "" + " key=" + key);
+//    String filename = getConnectorValueFromProfile(profile, key);
+//    logger_.info("getSigPropFileName filename=" + filename);
+//    return getConnectorValueFromProfile(profile, key);
+//  }
+//
+//  /**
+//   * Returns the type of this BKU-like connector.
+//   * 
+//   * <p>
+//   * All settings keys will be prefixed by this type. So to reuse the BKU
+//   * connector, a deriving class has to implement this method specifying an own
+//   * type.
+//   * </p>
+//   * 
+//   * @return Returns the type of this BKU-like connector.
+//   */
+//  protected String getType()
+//  {
+//    return CONNECTOR_INFORMATION.getIdentifier();
+//  }
 
 }
\ No newline at end of file
diff --git a/src/test/java/test/at/knowcenter/wag/egov/egiz/detached/MOAConnector.java b/src/test/java/test/at/knowcenter/wag/egov/egiz/detached/MOAConnector.java
index e6df790..6c3f06b 100644
--- a/src/test/java/test/at/knowcenter/wag/egov/egiz/detached/MOAConnector.java
+++ b/src/test/java/test/at/knowcenter/wag/egov/egiz/detached/MOAConnector.java
@@ -17,518 +17,141 @@
  */
 package test.at.knowcenter.wag.egov.egiz.detached;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.UnsupportedEncodingException;
-import java.util.Vector;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import javax.xml.namespace.QName;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.rpc.Call;
-import javax.xml.rpc.Service;
-import javax.xml.rpc.ServiceFactory;
-
-import org.apache.axis.message.SOAPBodyElement;
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.apache.xml.serialize.OutputFormat;
-import org.apache.xml.serialize.XMLSerializer;
-import org.w3c.dom.Document;
-
-import at.knowcenter.wag.egov.egiz.PdfASID;
-import at.knowcenter.wag.egov.egiz.cfg.ConfigLogger;
-import at.knowcenter.wag.egov.egiz.cfg.SettingsReader;
-import at.knowcenter.wag.egov.egiz.exceptions.SettingsException;
-import at.knowcenter.wag.egov.egiz.exceptions.SignatureException;
-import at.knowcenter.wag.egov.egiz.exceptions.SignatureTypesException;
-import at.knowcenter.wag.egov.egiz.exceptions.WebException;
-import at.knowcenter.wag.egov.egiz.sig.Connector;
-import at.knowcenter.wag.egov.egiz.sig.ConnectorInformation;
-import at.knowcenter.wag.egov.egiz.sig.SignatureObject;
-import at.knowcenter.wag.egov.egiz.sig.SignatureResponse;
-import at.knowcenter.wag.egov.egiz.sig.X509Cert;
-import at.knowcenter.wag.egov.egiz.sig.connectors.ConnectorConfigurationKeys;
-import at.knowcenter.wag.egov.egiz.tools.CodingHelper;
-import at.knowcenter.wag.egov.egiz.tools.FileHelper;
 
 /**
  * Connector to access the MOA service.
  * 
+ * @deprecated
+ * 
  * @author wlackner
  * @author wprinz
  */
 public class MOAConnector 
 {
-  /**
-   * ConnectorInformation that identifies this Connector to the system.
-   * 
-   * @see at.knowcenter.wag.egov.egiz.sig.ConnectorFactory
-   * @see ConnectorInformation
-   */
-  public static final ConnectorInformation CONNECTOR_INFORMATION = new ConnectorInformation("moa", "MOA");
-
-  /**
-   * The class type value.
-   * 
-   * <p>
-   * Just for convenience.
-   * </p>
-   */
-  private static final String TYPE = CONNECTOR_INFORMATION.getIdentifier();
-
-  /**
-   * The connector description.
-   */
-  public static final String DESCRIPTION = "MOA";
-
-  /**
-   * The SettingsReader instance
-   */
-  private SettingsReader settings_ = null;
-
-  /**
-   * MOA siganture verification mode
-   */
-  public static final String SERVICE_VERIFY = "SignatureVerification";
-
-  /**
-   * MOA siganture creation mode
-   */
-  public static final String SERVICE_SIGN = "SignatureCreation";
-
-  /**
-   * The logger definition.
-   */
-  private static final Logger logger_ = ConfigLogger.getLogger(MOAConnector.class);
-
-  /**
-   * The empty constructor
-   */
-  public MOAConnector() throws SignatureException
-  {
-    loadSettings();
-  }
-
-  /**
-   * load the inital signature settings
-   * 
-   * @see SettingsReader
-   */
-  private void loadSettings() throws SignatureException
-  {
-    if (settings_ == null)
-    {
-      try
-      {
-        settings_ = SettingsReader.getInstance();
-      }
-      catch (SettingsException e)
-      {
-        String log_message = "Can not load signature settings. Cause:\n" + e.getMessage();
-        logger_.error(log_message);
-        throw new SignatureException(101, log_message, e);
-      }
-    }
-  }
-
-  public SignatureObject doSign(String sigType, byte [] data, PdfASID algorithm) throws SignatureException
-  {
-    SignatureObject sig_obj = new SignatureObject();
-    try
-    {
-      sig_obj.setSigType(sigType);
-      sig_obj.initByType();
-    }
-    catch (SignatureTypesException e)
-    {
-      SignatureException se = new SignatureException(300, "Can ot init signature object with type:" + sigType, e);
-      throw se;
-    }
-    if (logger_.isDebugEnabled())
-    {
-      logger_.debug("Signature Type is:" + sig_obj.getSignationType());
-    }
-
-    String url = getSignURL(sigType);
-
-    String sign_request_filename = "./templates/MOASignRequestDetached.xml";//getSignRequestTemplateFileName(sigType);
-    String key_ident = getSignKeyIdentifier(sigType);
-    String sign_req_str = FileHelper.readFromFile(SettingsReader.relocateFile(sign_request_filename));
-    if (sign_req_str == null)
-    {
-      SignatureException se = new SignatureException(300, "File not found:" + sign_request_filename);
-      throw se;
-    }
-
-    sign_req_str = sign_req_str.replaceFirst("KeyIdentifierReplace", key_ident);
-    if (logger_.isDebugEnabled())
-    {
-      //logger_.debug("error_signature_response = " + sign_req_str);
-      // FileHelper.writeToFile(sign_request_filename + "_signText.xml",
-      // signText);
-    }
-    // sign_req_str = sign_req_str.replaceFirst("XMLContentReplace", signText);
-    // now use the the base64 Template
-//    signText = CodingHelper.encodeUTF8AsBase64(signText);
-//    sign_req_str = sign_req_str.replaceFirst("Base64ContentReplace", signText);
-//    if (logger_.isDebugEnabled())
-//    {
-//      //logger_.debug(sign_req_str);
-//      // FileHelper.writeToFile(sign_request_filename + "_request.xml",
-//      // sign_req_str);
-//    }
-
-    String response_string = "";
-    try
-    {
-      response_string = MOAConnector.connectMOA(sign_req_str, MOAConnector.SERVICE_SIGN, url);
-      sig_obj.setRawSignatureResponse(response_string);
-    }
-    catch (WebException we)
-    {
-      if (logger_.isDebugEnabled())
-      {
-        we.printStackTrace();
-      }
-      SignatureException se = new SignatureException(we.getErrorCode(), we);
-      throw se;
-    }
-
-    if (!response_string.equals(""))
-    {
-      if (logger_.isInfoEnabled())
-      {
-        logger_.info("get MOA response");
-      }
-      Pattern erc_p_s = Pattern.compile("<ErrorCode>");
-      Pattern erc_p_e = Pattern.compile("</ErrorCode>");
-      Matcher erc_m_s = erc_p_s.matcher(response_string);
-      Matcher erc_m_e = erc_p_e.matcher(response_string);
-      // System.err.println(response_string);
-
-      if (erc_m_s.find() && erc_m_e.find())
-      {
-        if (logger_.isEnabledFor(Level.ERROR))
-        {
-          logger_.error("error_signature_response = " + response_string);
-          // FileHelper.writeToFile(sign_request_filename + "_response.xml",
-          // response_string);
-          //logger_.error("Write error response to file:" + sign_request_filename + "_response.xml");
-        }
-        Pattern erm_p_s = Pattern.compile("<Info>");
-        Pattern erm_p_e = Pattern.compile("</Info>");
-        Matcher erm_m_s = erm_p_s.matcher(response_string);
-        Matcher erm_m_e = erm_p_e.matcher(response_string);
-
-        String error_code = response_string.substring(erc_m_s.end(), erc_m_e.start());
-        logger_.debug("error_code = " + error_code);
-        String error_mess = "";
-        if (erm_m_s.find() && erm_m_e.find())
-        {
-          error_mess = response_string.substring(erm_m_s.end(), erm_m_e.start());
-          logger_.debug(error_mess);
-        }
-        SignatureException se = new SignatureException(0, "MOASigExc ext error code = " + error_code + ", err_mess = " + error_mess);
-        se.setExternalErrorCode(error_code);
-        se.setExternalErrorMessage(error_mess);
-        throw se;
-      }
-      else
-      {
-        if (logger_.isDebugEnabled())
-        {
-          //logger_.debug("response_string = " + response_string);
-          // FileHelper.writeToFile(sign_request_filename + "_response.xml",
-          // response_string);
-        }
-        parseCreateXMLResponse(response_string, sig_obj);
-      }
-    }
-    sig_obj.setSigResponse(response_string);
-    return sig_obj;
-  }
-
-  /**
-   * This method parses the MOA-Response string. It separates the
-   * SignatureValue, X509IssuerName, SigningTime, X509SerialNumber,
-   * X509Certificate, CertDigest and DigestValues. If the X509Certificate is
-   * extracted it would be stored in the certificates directory.
-   * 
-   * @param xmlResponse
-   *          the response string from the MOA sign-request
-   * @param sigObj
-   *          the SignatureObject that should be filled
-   * @throws SignatureException
-   *           ErrorCode (303, 304)
-   * @see SignatureObject
-   * @see CodingHelper
-   * @see X509Cert
-   */
-  private void parseCreateXMLResponse(String xmlResponse, SignatureObject sigObj) throws SignatureException
-  {
-    Pattern sig_val_p_s = Pattern.compile("<[\\w]*:?SignatureValue>");
-    Pattern sig_val_p_e = Pattern.compile("</[\\w]*:?SignatureValue>");
-    Pattern iss_nam_p_s = Pattern.compile("<[\\w]*:?X509IssuerName>");
-    Pattern iss_nam_p_e = Pattern.compile("</[\\w]*:?X509IssuerName>");
-    Pattern sig_tim_p_s = Pattern.compile("<[\\w]*:?SigningTime>");
-    Pattern sig_tim_p_e = Pattern.compile("</[\\w]*:?SigningTime>");
-    Pattern ser_num_p_s = Pattern.compile("<[\\w]*:?X509SerialNumber>");
-    Pattern ser_num_p_e = Pattern.compile("</[\\w]*:?X509SerialNumber>");
-    Pattern sig_cer_p_s = Pattern.compile("<[\\w]*:?X509Certificate>");
-    Pattern sig_cer_p_e = Pattern.compile("</[\\w]*:?X509Certificate>");
-
-    Pattern sig_cer_d_p_s = Pattern.compile("<[\\w]*:?CertDigest>");
-    Pattern sig_cer_d_p_e = Pattern.compile("</[\\w]*:?CertDigest>");
-    Pattern dig_val_p_s = Pattern.compile("<[\\w]*:?DigestValue>");
-    Pattern dig_val_p_e = Pattern.compile("</[\\w]*:?DigestValue>");
-
-    Matcher sig_val_m_s = sig_val_p_s.matcher(xmlResponse);
-    Matcher sig_val_m_e = sig_val_p_e.matcher(xmlResponse);
-    Matcher iss_nam_m_s = iss_nam_p_s.matcher(xmlResponse);
-    Matcher iss_nam_m_e = iss_nam_p_e.matcher(xmlResponse);
-    Matcher sig_tim_m_s = sig_tim_p_s.matcher(xmlResponse);
-    Matcher sig_tim_m_e = sig_tim_p_e.matcher(xmlResponse);
-    Matcher ser_num_m_s = ser_num_p_s.matcher(xmlResponse);
-    Matcher ser_num_m_e = ser_num_p_e.matcher(xmlResponse);
-    Matcher sig_cer_m_s = sig_cer_p_s.matcher(xmlResponse);
-    Matcher sig_cer_m_e = sig_cer_p_e.matcher(xmlResponse);
-
-    Matcher sig_cer_d_m_s = sig_cer_d_p_s.matcher(xmlResponse);
-    Matcher sig_cer_d_m_e = sig_cer_d_p_e.matcher(xmlResponse);
-
-    String sig_val = "";
-    String iss_nam = "";
-    String ser_num = "";
-    String sig_tim = "";
-    String sig_cer = "";
-    String sig_dig = "";
-
-    // SignatureValue
-    if (sig_val_m_s.find() && sig_val_m_e.find())
-    {
-      sig_val = xmlResponse.substring(sig_val_m_s.end(), sig_val_m_e.start());
-      sig_val = sig_val.replaceAll("\\s", "");
-      sigObj.setSignationValue(sig_val);
-    }
-    // X509IssuerName
-    if (iss_nam_m_s.find() && iss_nam_m_e.find())
-    {
-      iss_nam = xmlResponse.substring(iss_nam_m_s.end(), iss_nam_m_e.start());
-      sigObj.setSignationIssuer(iss_nam);
-    }
-    // X509SerialNumber
-    if (ser_num_m_s.find() && ser_num_m_e.find())
-    {
-      ser_num = xmlResponse.substring(ser_num_m_s.end(), ser_num_m_e.start());
-      sigObj.setSignationSerialNumber(ser_num);
-    }
-    // SigningTime
-    if (sig_tim_m_s.find() && sig_tim_m_e.find())
-    {
-      sig_tim = xmlResponse.substring(sig_tim_m_s.end(), sig_tim_m_e.start());
-      sigObj.setSignationDate(sig_tim);
-    }
-    // CertDigest
-    if (sig_cer_d_m_s.find() && sig_cer_d_m_e.find())
-    {
-      String cert_digest = xmlResponse.substring(sig_cer_d_m_s.end(), sig_cer_d_m_e.start());
-      Matcher dig_val_m_s = dig_val_p_s.matcher(cert_digest);
-      Matcher dig_val_m_e = dig_val_p_e.matcher(cert_digest);
-      if (dig_val_m_s.find() && dig_val_m_e.find())
-      {
-        sig_dig = cert_digest.substring(dig_val_m_s.end(), dig_val_m_e.start());
-        sigObj.setX509CertificateDigest(sig_dig);
-      }
-    }
-    // extract Subject Name from X509Certificate
-    if (sig_cer_m_s.find() && sig_cer_m_e.find())
-    {
-      sig_cer = xmlResponse.substring(sig_cer_m_s.end(), sig_cer_m_e.start());
-      sig_cer = sig_cer.replaceAll("\\s", "");
-      X509Cert cert = X509Cert.initByString(sig_cer);
-      if (cert.isX509Cert())
-      {
-        sigObj.setX509Certificate(cert.getCertString());
-        String serial_num = cert.getSerialNumber();
-        String subject_name = cert.getSubjectName();
-        if (!ser_num.equals(serial_num))
-        {
-          SignatureException se = new SignatureException(303, "Serialnumber of certificate and tag X509SerialNumber differs!");
-          throw se;
-        }
-        sigObj.setSignationName(subject_name);
-      }
-    }
-  }
-
-  /**
-   * This method reads the verify template from the file system and fills out
-   * the template with the SignatureObject values.
-   * 
-   * @param normalizedText
-   *          the normalized text to veryfied
-   * @param sigObject
-   *          the SignatureObject holding the singature values
-   * @return the filled verify template string
-   * @throws SignatureException
-   *           ErrorCode (311, 312, 313)
-   * @see SignatureObject
-   * @see CodingHelper
-   */
-  public String getVerifyTemplate(String normalizedText,
-      SignatureObject sigObject) throws SignatureException
-  {
-    try
-    {
-      if (normalizedText == null || normalizedText.length() == 0)
-      {
-        SignatureException se = new SignatureException(311, "Document can not be verified because normalized text is empty.");
-        throw se;
-      }
-      if (sigObject == null)
-      {
-        SignatureException se = new SignatureException(312, "Document can not be verified because no signature object are set.");
-        throw se;
-      }
-      String verify_template = getVerifyTemplateFileName(sigObject.getSignationType());
-      String sig_prop_template = getSigPropFileName(sigObject.getSignationType());
-      String verify_req_str = FileHelper.readFromFile(SettingsReader.relocateFile(verify_template));
-      String sig_prop_str = FileHelper.readFromFile(SettingsReader.relocateFile(sig_prop_template));
-
-      if (logger_.isDebugEnabled())
-      {
-        //logger_.debug(verify_template);
-        //logger_.debug(sig_prop_template);
-      }
-
-      String x509Certificate = sigObject.getX509CertificateString();
-      if (x509Certificate == null)
-      {
-        SignatureException se = new SignatureException(313, "Document certificate is not defined.");
-        throw se;
-      }
-      String cert_alg = settings_.getValueFromKey("cert.alg.ecdsa");
-      X509Cert x509_cert = sigObject.getX509Cert();
-      if (x509_cert.isRSA())
-      {
-        cert_alg = settings_.getValueFromKey("cert.alg.rsa");
-      }
-
-      sig_prop_str = sig_prop_str.replaceFirst("SigningTimeReplace", sigObject.getSignationDate());
-      // The issuer is already a valid Unicode String.
-      // No need to convert it - not to mention the missing encoding.
-      // byte[] issuer_name =
-      // CodingHelper.encodeUTF8(sigObject.getSignationIssuer());
-      // new String(issuer_name)
-      sig_prop_str = sig_prop_str.replaceFirst("X509IssuerNameReplace", sigObject.getSignationIssuer());
-      sig_prop_str = sig_prop_str.replaceFirst("X509SerialNumberReplace", sigObject.getSignationSerialNumber());
-      sig_prop_str = sig_prop_str.replaceFirst("DigestValueX509CertificateReplace", sigObject.getX509CertificateDigest());
-
-      verify_req_str = verify_req_str.replaceFirst("CertAlgReplace", cert_alg);
-      verify_req_str = verify_req_str.replaceFirst("TemplateSignedPropertiesReplace", sig_prop_str);
-      byte[] sig_prop_code = CodingHelper.buildDigest(sig_prop_str.getBytes("UTF-8")); // added
-      // the
-      // ("UTF-8")
-      // encoding
-      String sig_prop_hash = CodingHelper.encodeBase64(sig_prop_code);
-      verify_req_str = verify_req_str.replaceFirst("DigestValueSignedPropertiesReplace", sig_prop_hash);
-      if (logger_.isDebugEnabled())
-      {
-        logger_.debug("build digest from SignedProperties:start");
-        //logger_.debug("DATA  :" + sig_prop_str);
-        logger_.debug("DIGEST:" + sig_prop_hash);
-        logger_.debug("build digest from SignedProperties:end");
-      }
-
-      verify_req_str = verify_req_str.replaceFirst("SignatureValueReplace", sigObject.getSignationValue());
-      verify_req_str = verify_req_str.replaceFirst("X509CertificateReplace", x509Certificate);
-      byte[] data_value = normalizedText.getBytes("UTF-8");
-      byte[] data_value_hash = CodingHelper.buildDigest(data_value);
-      // byte[] data_value_hash =
-      // CodingHelper.buildDigest(normalizedText.getBytes());
-      String object_data_hash = CodingHelper.encodeBase64(data_value_hash);
-      //String object_data = normalizedText; // new String(data_value);
-      // System.err.println(object_data_hash);
-      // very_req_str = very_req_str.replaceFirst("ObjectDataReplace",
-      // object_data);
-      String raw_b64 = CodingHelper.encodeBase64(data_value);
-      verify_req_str = verify_req_str.replaceFirst("Base64ContentReplace", raw_b64);
-
-      verify_req_str = verify_req_str.replaceFirst("DigestValueSignedDataReplace", object_data_hash);
-      if (logger_.isDebugEnabled())
-      {
-        // FileHelper.writeToFile(verify_template + "_verifyText.xml",
-        // normalizedText);
-        logger_.debug("build digest from data object:start");
-        //logger_.debug("DATA  :" + object_data);
-        logger_.debug("DIGEST:" + object_data_hash);
-        logger_.debug("build digest from data object:end");
-      }
-      return verify_req_str;
-    }
-    catch (UnsupportedEncodingException e)
-    {
-      throw new SignatureException(310, e);
-    }
-  }
-
 //  /**
-//   * This method generates the MOA verify prozess. It checks if the given
-//   * SignatureObject is signed by MOA or BKU. The verify template string is
-//   * filled out by the corresponding method.
+//   * ConnectorInformation that identifies this Connector to the system.
 //   * 
-//   * @param normalizedText
-//   *          the normalized text to verify
-//   * @param sigObject
-//   *          the SignatureObject holding the singature values
-//   * @return a SignatureResponse object if the verify prozess does not fails
-//   * @throws SignatureException
-//   * @see SignatureResponse
+//   * @see at.knowcenter.wag.egov.egiz.sig.ConnectorFactory
+//   * @see ConnectorInformation
 //   */
-//  public SignatureResponse doVerify(String normalizedText,
-//      SignatureObject sigObject) throws SignatureException
+//  public static final ConnectorInformation CONNECTOR_INFORMATION = new ConnectorInformation("moa", "MOA");
+//
+//  /**
+//   * The class type value.
+//   * 
+//   * <p>
+//   * Just for convenience.
+//   * </p>
+//   */
+//  private static final String TYPE = CONNECTOR_INFORMATION.getIdentifier();
+//
+//  /**
+//   * The connector description.
+//   */
+//  public static final String DESCRIPTION = "MOA";
+//
+//  /**
+//   * The SettingsReader instance
+//   */
+//  private SettingsReader settings_ = null;
+//
+//  /**
+//   * MOA siganture verification mode
+//   */
+//  public static final String SERVICE_VERIFY = "SignatureVerification";
+//
+//  /**
+//   * MOA siganture creation mode
+//   */
+//  public static final String SERVICE_SIGN = "SignatureCreation";
+//
+//  /**
+//   * The logger definition.
+//   */
+//  private static final Logger logger_ = ConfigLogger.getLogger(MOAConnector.class);
+//
+//  /**
+//   * The empty constructor
+//   */
+//  public MOAConnector() throws SignatureException
+//  {
+//    loadSettings();
+//  }
+//
+//  /**
+//   * load the inital signature settings
+//   * 
+//   * @see SettingsReader
+//   */
+//  private void loadSettings() throws SignatureException
 //  {
-//    String verify_url = getVerifyURL(sigObject.getSignationType()); // settings_.getValueFromKey(TYPE
-//    // + "." +
-//    // Signature.VALUE_MODE_VERIFY
-//    // +
-//    // ".url");
-//    String verify_request = getVerifyRequestTemplateFileName(sigObject.getSignationType()); // settings_.getValueFromKey(TYPE
-//    // +
-//    // "."
-//    // +
-//    // Signature.VALUE_MODE_VERIFY
-//    // +
-//    // ".request");
-//    String trust_profile = getVerifyTrustProfileID(sigObject.getSignationType());
-//    String verify_req_str = FileHelper.readFromFile(SettingsReader.relocateFile(verify_request));
-//
-//    String verify_template_str = null;
-//    if (sigObject.isMOASigned())
+//    if (settings_ == null)
+//    {
+//      try
+//      {
+//        settings_ = SettingsReader.getInstance();
+//      }
+//      catch (SettingsException e)
+//      {
+//        String log_message = "Can not load signature settings. Cause:\n" + e.getMessage();
+//        logger_.error(log_message);
+//        throw new SignatureException(101, log_message, e);
+//      }
+//    }
+//  }
+//
+//  public SignatureObject doSign(String sigType, byte [] data, PdfASID algorithm) throws SignatureException
+//  {
+//    SignatureObject sig_obj = new SignatureObject();
+//    try
+//    {
+//      sig_obj.setSigType(sigType);
+//      sig_obj.initByType();
+//    }
+//    catch (SignatureTypesException e)
+//    {
+//      SignatureException se = new SignatureException(300, "Can ot init signature object with type:" + sigType, e);
+//      throw se;
+//    }
+//    if (logger_.isDebugEnabled())
 //    {
-//      verify_template_str = getVerifyTemplate(normalizedText, sigObject);
+//      logger_.debug("Signature Type is:" + sig_obj.getSignationType());
 //    }
-//    else
+//
+//    String url = getSignURL(sigType);
+//
+//    String sign_request_filename = "./templates/MOASignRequestDetached.xml";//getSignRequestTemplateFileName(sigType);
+//    String key_ident = getSignKeyIdentifier(sigType);
+//    String sign_req_str = FileHelper.readFromFile(SettingsReader.relocateFile(sign_request_filename));
+//    if (sign_req_str == null)
 //    {
-//      BKUConnector bku_conn = new BKUConnector();
-//      verify_template_str = bku_conn.getVerifyTemplate(normalizedText, sigObject);
+//      SignatureException se = new SignatureException(300, "File not found:" + sign_request_filename);
+//      throw se;
 //    }
-//    verify_req_str = verify_req_str.replaceFirst("XMLContentReplace", verify_template_str);
-//    verify_req_str = verify_req_str.replaceFirst("TrustProfileIDReplace", trust_profile);
 //
+//    sign_req_str = sign_req_str.replaceFirst("KeyIdentifierReplace", key_ident);
 //    if (logger_.isDebugEnabled())
 //    {
-//      //logger_.debug(verify_req_str);
-//      // FileHelper.writeToFile(verify_request + "_request.xml",
-//      // verify_req_str);
+//      //logger_.debug("error_signature_response = " + sign_req_str);
+//      // FileHelper.writeToFile(sign_request_filename + "_signText.xml",
+//      // signText);
 //    }
+//    // sign_req_str = sign_req_str.replaceFirst("XMLContentReplace", signText);
+//    // now use the the base64 Template
+////    signText = CodingHelper.encodeUTF8AsBase64(signText);
+////    sign_req_str = sign_req_str.replaceFirst("Base64ContentReplace", signText);
+////    if (logger_.isDebugEnabled())
+////    {
+////      //logger_.debug(sign_req_str);
+////      // FileHelper.writeToFile(sign_request_filename + "_request.xml",
+////      // sign_req_str);
+////    }
+//
 //    String response_string = "";
 //    try
 //    {
-//      response_string = MOAConnector.connectMOA(verify_req_str, MOAConnector.SERVICE_VERIFY, verify_url);
+//      response_string = MOAConnector.connectMOA(sign_req_str, MOAConnector.SERVICE_SIGN, url);
+//      sig_obj.setRawSignatureResponse(response_string);
 //    }
 //    catch (WebException we)
 //    {
@@ -542,328 +165,671 @@ public class MOAConnector
 //
 //    if (!response_string.equals(""))
 //    {
-//      Pattern erc_p_s = Pattern.compile("<[\\w]*:?ErrorCode>");
-//      Pattern erc_p_e = Pattern.compile("</[\\w]*:?ErrorCode>");
+//      if (logger_.isInfoEnabled())
+//      {
+//        logger_.info("get MOA response");
+//      }
+//      Pattern erc_p_s = Pattern.compile("<ErrorCode>");
+//      Pattern erc_p_e = Pattern.compile("</ErrorCode>");
 //      Matcher erc_m_s = erc_p_s.matcher(response_string);
 //      Matcher erc_m_e = erc_p_e.matcher(response_string);
+//      // System.err.println(response_string);
 //
 //      if (erc_m_s.find() && erc_m_e.find())
 //      {
 //        if (logger_.isEnabledFor(Level.ERROR))
 //        {
-//          //logger_.debug(response_string);
-//          // FileHelper.writeToFile(verify_request + "_response.xml",
+//          logger_.error("error_signature_response = " + response_string);
+//          // FileHelper.writeToFile(sign_request_filename + "_response.xml",
 //          // response_string);
-//          logger_.error("Write error response to file:" + verify_request + "_response.xml");
+//          //logger_.error("Write error response to file:" + sign_request_filename + "_response.xml");
 //        }
-//        Pattern erm_p_s = Pattern.compile("<[\\w]*:?Info>");
-//        Pattern erm_p_e = Pattern.compile("</[\\w]*:?Info>");
+//        Pattern erm_p_s = Pattern.compile("<Info>");
+//        Pattern erm_p_e = Pattern.compile("</Info>");
 //        Matcher erm_m_s = erm_p_s.matcher(response_string);
 //        Matcher erm_m_e = erm_p_e.matcher(response_string);
-//        SignatureException se = new SignatureException(0, "MOASigExc2");
+//
 //        String error_code = response_string.substring(erc_m_s.end(), erc_m_e.start());
-//        se.setExternalErrorCode(error_code);
+//        logger_.debug("error_code = " + error_code);
+//        String error_mess = "";
 //        if (erm_m_s.find() && erm_m_e.find())
 //        {
-//          String error_mess = response_string.substring(erm_m_s.end(), erm_m_e.start());
-//          se.setExternalErrorMessage(error_mess);
+//          error_mess = response_string.substring(erm_m_s.end(), erm_m_e.start());
+//          logger_.debug(error_mess);
 //        }
+//        SignatureException se = new SignatureException(0, "MOASigExc ext error code = " + error_code + ", err_mess = " + error_mess);
+//        se.setExternalErrorCode(error_code);
+//        se.setExternalErrorMessage(error_mess);
 //        throw se;
 //      }
 //      else
 //      {
 //        if (logger_.isDebugEnabled())
 //        {
-//          //logger_.debug(verify_request + "_response.xml " + response_string);
+//          //logger_.debug("response_string = " + response_string);
+//          // FileHelper.writeToFile(sign_request_filename + "_response.xml",
+//          // response_string);
 //        }
-//        return parseVerifyXMLResponse(response_string);
+//        parseCreateXMLResponse(response_string, sig_obj);
 //      }
 //    }
-//    return null;
+//    sig_obj.setSigResponse(response_string);
+//    return sig_obj;
 //  }
-
+//
 //  /**
-//   * This method parses the verify response string and return a
-//   * SignatureResponse object. The SignatureResponse object is filled out by the
-//   * response values from the BKU-response.
+//   * This method parses the MOA-Response string. It separates the
+//   * SignatureValue, X509IssuerName, SigningTime, X509SerialNumber,
+//   * X509Certificate, CertDigest and DigestValues. If the X509Certificate is
+//   * extracted it would be stored in the certificates directory.
 //   * 
 //   * @param xmlResponse
-//   *          the response values from the MOA-verify request
-//   * @return SignatureResponse object
-//   * @see SignatureResponse
+//   *          the response string from the MOA sign-request
+//   * @param sigObj
+//   *          the SignatureObject that should be filled
+//   * @throws SignatureException
+//   *           ErrorCode (303, 304)
+//   * @see SignatureObject
+//   * @see CodingHelper
+//   * @see X509Cert
 //   */
-//  private SignatureResponse parseVerifyXMLResponse(String xmlResponse)
+//  private void parseCreateXMLResponse(String xmlResponse, SignatureObject sigObj) throws SignatureException
 //  {
-//    if (logger_.isInfoEnabled())
-//    {
-//      logger_.info("Try parsing the verify response");
-//    }
-//    Pattern sub_nam_p_s = Pattern.compile("<dsig:X509SubjectName>");
-//    Pattern sub_nam_p_e = Pattern.compile("</dsig:X509SubjectName>");
-//    Pattern iss_nam_p_s = Pattern.compile("<dsig:X509IssuerName>");
-//    Pattern iss_nam_p_e = Pattern.compile("</dsig:X509IssuerName>");
-//    Pattern ser_num_p_s = Pattern.compile("<dsig:X509SerialNumber>");
-//    Pattern ser_num_p_e = Pattern.compile("</dsig:X509SerialNumber>");
-//
-//    // [tknall] start qualified certificate
-//    Pattern cert_qualified_p = Pattern.compile("<QualifiedCertificate/>");
-//    Matcher cert_qualified_m = cert_qualified_p.matcher(xmlResponse);
-//    // [tknall] stop qualified certificate
-//    
-//    Pattern sig_chk_p_s = Pattern.compile("<SignatureCheck>");
-//    Pattern sig_chk_p_e = Pattern.compile("</SignatureCheck>");
-//    Pattern man_chk_p_s = Pattern.compile("<SignatureManifestCheck>");
-//    Pattern man_chk_p_e = Pattern.compile("</SignatureManifestCheck>");
-//    Pattern cer_chk_p_s = Pattern.compile("<CertificateCheck>");
-//    Pattern cer_chk_p_e = Pattern.compile("</CertificateCheck>");
-//
-//    Pattern code_p_s = Pattern.compile("<Code>");
-//    Pattern code_p_e = Pattern.compile("</Code>");
-//
-//    Pattern cert_p_s = Pattern.compile("<dsig:X509Certificate>");
-//    Pattern cert_p_e = Pattern.compile("</dsig:X509Certificate>");
-//
-//    Matcher sub_nam_m_s = sub_nam_p_s.matcher(xmlResponse);
-//    Matcher sub_nam_m_e = sub_nam_p_e.matcher(xmlResponse);
+//    Pattern sig_val_p_s = Pattern.compile("<[\\w]*:?SignatureValue>");
+//    Pattern sig_val_p_e = Pattern.compile("</[\\w]*:?SignatureValue>");
+//    Pattern iss_nam_p_s = Pattern.compile("<[\\w]*:?X509IssuerName>");
+//    Pattern iss_nam_p_e = Pattern.compile("</[\\w]*:?X509IssuerName>");
+//    Pattern sig_tim_p_s = Pattern.compile("<[\\w]*:?SigningTime>");
+//    Pattern sig_tim_p_e = Pattern.compile("</[\\w]*:?SigningTime>");
+//    Pattern ser_num_p_s = Pattern.compile("<[\\w]*:?X509SerialNumber>");
+//    Pattern ser_num_p_e = Pattern.compile("</[\\w]*:?X509SerialNumber>");
+//    Pattern sig_cer_p_s = Pattern.compile("<[\\w]*:?X509Certificate>");
+//    Pattern sig_cer_p_e = Pattern.compile("</[\\w]*:?X509Certificate>");
+//
+//    Pattern sig_cer_d_p_s = Pattern.compile("<[\\w]*:?CertDigest>");
+//    Pattern sig_cer_d_p_e = Pattern.compile("</[\\w]*:?CertDigest>");
+//    Pattern dig_val_p_s = Pattern.compile("<[\\w]*:?DigestValue>");
+//    Pattern dig_val_p_e = Pattern.compile("</[\\w]*:?DigestValue>");
+//
+//    Matcher sig_val_m_s = sig_val_p_s.matcher(xmlResponse);
+//    Matcher sig_val_m_e = sig_val_p_e.matcher(xmlResponse);
 //    Matcher iss_nam_m_s = iss_nam_p_s.matcher(xmlResponse);
 //    Matcher iss_nam_m_e = iss_nam_p_e.matcher(xmlResponse);
+//    Matcher sig_tim_m_s = sig_tim_p_s.matcher(xmlResponse);
+//    Matcher sig_tim_m_e = sig_tim_p_e.matcher(xmlResponse);
 //    Matcher ser_num_m_s = ser_num_p_s.matcher(xmlResponse);
 //    Matcher ser_num_m_e = ser_num_p_e.matcher(xmlResponse);
+//    Matcher sig_cer_m_s = sig_cer_p_s.matcher(xmlResponse);
+//    Matcher sig_cer_m_e = sig_cer_p_e.matcher(xmlResponse);
 //
-//    Matcher sig_chk_m_s = sig_chk_p_s.matcher(xmlResponse);
-//    Matcher sig_chk_m_e = sig_chk_p_e.matcher(xmlResponse);
-//    Matcher man_chk_m_s = man_chk_p_s.matcher(xmlResponse);
-//    Matcher man_chk_m_e = man_chk_p_e.matcher(xmlResponse);
-//    Matcher cer_chk_m_s = cer_chk_p_s.matcher(xmlResponse);
-//    Matcher cer_chk_m_e = cer_chk_p_e.matcher(xmlResponse);
-//
-//    Matcher cert_m_s = cert_p_s.matcher(xmlResponse);
-//    Matcher cert_m_e = cert_p_e.matcher(xmlResponse);
+//    Matcher sig_cer_d_m_s = sig_cer_d_p_s.matcher(xmlResponse);
+//    Matcher sig_cer_d_m_e = sig_cer_d_p_e.matcher(xmlResponse);
 //
-//    SignatureResponse sig_res = new SignatureResponse();
-//    
-//    // [tknall] start qualified certificate
-//    sig_res.setQualifiedCertificate(cert_qualified_m.find());
-//    // [tknall] stop qualified certificate
+//    String sig_val = "";
+//    String iss_nam = "";
+//    String ser_num = "";
+//    String sig_tim = "";
+//    String sig_cer = "";
+//    String sig_dig = "";
 //
-//    if (sub_nam_m_s.find() && sub_nam_m_e.find())
+//    // SignatureValue
+//    if (sig_val_m_s.find() && sig_val_m_e.find())
 //    {
-//      String sub_nam = xmlResponse.substring(sub_nam_m_s.end(), sub_nam_m_e.start());
-//      sig_res.setX509SubjectName(sub_nam);
+//      sig_val = xmlResponse.substring(sig_val_m_s.end(), sig_val_m_e.start());
+//      sig_val = sig_val.replaceAll("\\s", "");
+//      sigObj.setSignationValue(sig_val);
 //    }
+//    // X509IssuerName
 //    if (iss_nam_m_s.find() && iss_nam_m_e.find())
 //    {
-//      String iss_nam = xmlResponse.substring(iss_nam_m_s.end(), iss_nam_m_e.start());
-//      sig_res.setX509IssuerName(iss_nam);
+//      iss_nam = xmlResponse.substring(iss_nam_m_s.end(), iss_nam_m_e.start());
+//      sigObj.setSignationIssuer(iss_nam);
 //    }
+//    // X509SerialNumber
 //    if (ser_num_m_s.find() && ser_num_m_e.find())
 //    {
-//      String ser_num = xmlResponse.substring(ser_num_m_s.end(), ser_num_m_e.start());
-//      sig_res.setX509SerialNumber(ser_num);
+//      ser_num = xmlResponse.substring(ser_num_m_s.end(), ser_num_m_e.start());
+//      sigObj.setSignationSerialNumber(ser_num);
+//    }
+//    // SigningTime
+//    if (sig_tim_m_s.find() && sig_tim_m_e.find())
+//    {
+//      sig_tim = xmlResponse.substring(sig_tim_m_s.end(), sig_tim_m_e.start());
+//      sigObj.setSignationDate(sig_tim);
 //    }
-//    if (sig_chk_m_s.find() && sig_chk_m_e.find())
+//    // CertDigest
+//    if (sig_cer_d_m_s.find() && sig_cer_d_m_e.find())
 //    {
-//      String sig_chk = xmlResponse.substring(sig_chk_m_s.end(), sig_chk_m_e.start());
-//      Matcher code_m_s = code_p_s.matcher(sig_chk);
-//      Matcher code_m_e = code_p_e.matcher(sig_chk);
-//      if (code_m_s.find() && code_m_e.find())
+//      String cert_digest = xmlResponse.substring(sig_cer_d_m_s.end(), sig_cer_d_m_e.start());
+//      Matcher dig_val_m_s = dig_val_p_s.matcher(cert_digest);
+//      Matcher dig_val_m_e = dig_val_p_e.matcher(cert_digest);
+//      if (dig_val_m_s.find() && dig_val_m_e.find())
 //      {
-//        String code = sig_chk.substring(code_m_s.end(), code_m_e.start());
-//        sig_res.setSignatureCheckCode(code);
+//        sig_dig = cert_digest.substring(dig_val_m_s.end(), dig_val_m_e.start());
+//        sigObj.setX509CertificateDigest(sig_dig);
 //      }
 //    }
-//    if (man_chk_m_s.find() && man_chk_m_e.find())
+//    // extract Subject Name from X509Certificate
+//    if (sig_cer_m_s.find() && sig_cer_m_e.find())
 //    {
-//      String man_chk = xmlResponse.substring(man_chk_m_s.end(), man_chk_m_e.start());
-//      Matcher code_m_s = code_p_s.matcher(man_chk);
-//      Matcher code_m_e = code_p_e.matcher(man_chk);
-//      if (code_m_s.find() && code_m_e.find())
+//      sig_cer = xmlResponse.substring(sig_cer_m_s.end(), sig_cer_m_e.start());
+//      sig_cer = sig_cer.replaceAll("\\s", "");
+//      X509Cert cert = X509Cert.initByString(sig_cer);
+//      if (cert.isX509Cert())
 //      {
-//        String code = man_chk.substring(code_m_s.end(), code_m_e.start());
-//        sig_res.setSignatureManifestCheckCode(code);
+//        sigObj.setX509Certificate(cert.getCertString());
+//        String serial_num = cert.getSerialNumber();
+//        String subject_name = cert.getSubjectName();
+//        if (!ser_num.equals(serial_num))
+//        {
+//          SignatureException se = new SignatureException(303, "Serialnumber of certificate and tag X509SerialNumber differs!");
+//          throw se;
+//        }
+//        sigObj.setSignationName(subject_name);
 //      }
 //    }
-//    if (cer_chk_m_s.find() && cer_chk_m_e.find())
+//  }
+//
+//  /**
+//   * This method reads the verify template from the file system and fills out
+//   * the template with the SignatureObject values.
+//   * 
+//   * @param normalizedText
+//   *          the normalized text to veryfied
+//   * @param sigObject
+//   *          the SignatureObject holding the singature values
+//   * @return the filled verify template string
+//   * @throws SignatureException
+//   *           ErrorCode (311, 312, 313)
+//   * @see SignatureObject
+//   * @see CodingHelper
+//   */
+//  public String getVerifyTemplate(String normalizedText,
+//      SignatureObject sigObject) throws SignatureException
+//  {
+//    try
 //    {
-//      String cer_chk = xmlResponse.substring(cer_chk_m_s.end(), cer_chk_m_e.start());
-//      Matcher code_m_s = code_p_s.matcher(cer_chk);
-//      Matcher code_m_e = code_p_e.matcher(cer_chk);
-//      if (code_m_s.find() && code_m_e.find())
+//      if (normalizedText == null || normalizedText.length() == 0)
+//      {
+//        SignatureException se = new SignatureException(311, "Document can not be verified because normalized text is empty.");
+//        throw se;
+//      }
+//      if (sigObject == null)
+//      {
+//        SignatureException se = new SignatureException(312, "Document can not be verified because no signature object are set.");
+//        throw se;
+//      }
+//      String verify_template = getVerifyTemplateFileName(sigObject.getSignationType());
+//      String sig_prop_template = getSigPropFileName(sigObject.getSignationType());
+//      String verify_req_str = FileHelper.readFromFile(SettingsReader.relocateFile(verify_template));
+//      String sig_prop_str = FileHelper.readFromFile(SettingsReader.relocateFile(sig_prop_template));
+//
+//      if (logger_.isDebugEnabled())
+//      {
+//        //logger_.debug(verify_template);
+//        //logger_.debug(sig_prop_template);
+//      }
+//
+//      String x509Certificate = sigObject.getX509CertificateString();
+//      if (x509Certificate == null)
+//      {
+//        SignatureException se = new SignatureException(313, "Document certificate is not defined.");
+//        throw se;
+//      }
+//      String cert_alg = settings_.getValueFromKey("cert.alg.ecdsa");
+//      X509Cert x509_cert = sigObject.getX509Cert();
+//      if (x509_cert.isRSA())
+//      {
+//        cert_alg = settings_.getValueFromKey("cert.alg.rsa");
+//      }
+//
+//      sig_prop_str = sig_prop_str.replaceFirst("SigningTimeReplace", sigObject.getSignationDate());
+//      // The issuer is already a valid Unicode String.
+//      // No need to convert it - not to mention the missing encoding.
+//      // byte[] issuer_name =
+//      // CodingHelper.encodeUTF8(sigObject.getSignationIssuer());
+//      // new String(issuer_name)
+//      sig_prop_str = sig_prop_str.replaceFirst("X509IssuerNameReplace", sigObject.getSignationIssuer());
+//      sig_prop_str = sig_prop_str.replaceFirst("X509SerialNumberReplace", sigObject.getSignationSerialNumber());
+//      sig_prop_str = sig_prop_str.replaceFirst("DigestValueX509CertificateReplace", sigObject.getX509CertificateDigest());
+//
+//      verify_req_str = verify_req_str.replaceFirst("CertAlgReplace", cert_alg);
+//      verify_req_str = verify_req_str.replaceFirst("TemplateSignedPropertiesReplace", sig_prop_str);
+//      byte[] sig_prop_code = CodingHelper.buildDigest(sig_prop_str.getBytes("UTF-8")); // added
+//      // the
+//      // ("UTF-8")
+//      // encoding
+//      String sig_prop_hash = CodingHelper.encodeBase64(sig_prop_code);
+//      verify_req_str = verify_req_str.replaceFirst("DigestValueSignedPropertiesReplace", sig_prop_hash);
+//      if (logger_.isDebugEnabled())
+//      {
+//        logger_.debug("build digest from SignedProperties:start");
+//        //logger_.debug("DATA  :" + sig_prop_str);
+//        logger_.debug("DIGEST:" + sig_prop_hash);
+//        logger_.debug("build digest from SignedProperties:end");
+//      }
+//
+//      verify_req_str = verify_req_str.replaceFirst("SignatureValueReplace", sigObject.getSignationValue());
+//      verify_req_str = verify_req_str.replaceFirst("X509CertificateReplace", x509Certificate);
+//      byte[] data_value = normalizedText.getBytes("UTF-8");
+//      byte[] data_value_hash = CodingHelper.buildDigest(data_value);
+//      // byte[] data_value_hash =
+//      // CodingHelper.buildDigest(normalizedText.getBytes());
+//      String object_data_hash = CodingHelper.encodeBase64(data_value_hash);
+//      //String object_data = normalizedText; // new String(data_value);
+//      // System.err.println(object_data_hash);
+//      // very_req_str = very_req_str.replaceFirst("ObjectDataReplace",
+//      // object_data);
+//      String raw_b64 = CodingHelper.encodeBase64(data_value);
+//      verify_req_str = verify_req_str.replaceFirst("Base64ContentReplace", raw_b64);
+//
+//      verify_req_str = verify_req_str.replaceFirst("DigestValueSignedDataReplace", object_data_hash);
+//      if (logger_.isDebugEnabled())
 //      {
-//        String code = cer_chk.substring(code_m_s.end(), code_m_e.start());
-//        sig_res.setCertificateCheckCode(code);
+//        // FileHelper.writeToFile(verify_template + "_verifyText.xml",
+//        // normalizedText);
+//        logger_.debug("build digest from data object:start");
+//        //logger_.debug("DATA  :" + object_data);
+//        logger_.debug("DIGEST:" + object_data_hash);
+//        logger_.debug("build digest from data object:end");
 //      }
+//      return verify_req_str;
 //    }
-//    if (cert_m_s.find() && cert_m_e.find())
+//    catch (UnsupportedEncodingException e)
 //    {
-//      String cert_string = xmlResponse.substring(cert_m_s.end(), cert_m_e.start());
+//      throw new SignatureException(310, e);
+//    }
+//  }
+//
+////  /**
+////   * This method generates the MOA verify prozess. It checks if the given
+////   * SignatureObject is signed by MOA or BKU. The verify template string is
+////   * filled out by the corresponding method.
+////   * 
+////   * @param normalizedText
+////   *          the normalized text to verify
+////   * @param sigObject
+////   *          the SignatureObject holding the singature values
+////   * @return a SignatureResponse object if the verify prozess does not fails
+////   * @throws SignatureException
+////   * @see SignatureResponse
+////   */
+////  public SignatureResponse doVerify(String normalizedText,
+////      SignatureObject sigObject) throws SignatureException
+////  {
+////    String verify_url = getVerifyURL(sigObject.getSignationType()); // settings_.getValueFromKey(TYPE
+////    // + "." +
+////    // Signature.VALUE_MODE_VERIFY
+////    // +
+////    // ".url");
+////    String verify_request = getVerifyRequestTemplateFileName(sigObject.getSignationType()); // settings_.getValueFromKey(TYPE
+////    // +
+////    // "."
+////    // +
+////    // Signature.VALUE_MODE_VERIFY
+////    // +
+////    // ".request");
+////    String trust_profile = getVerifyTrustProfileID(sigObject.getSignationType());
+////    String verify_req_str = FileHelper.readFromFile(SettingsReader.relocateFile(verify_request));
+////
+////    String verify_template_str = null;
+////    if (sigObject.isMOASigned())
+////    {
+////      verify_template_str = getVerifyTemplate(normalizedText, sigObject);
+////    }
+////    else
+////    {
+////      BKUConnector bku_conn = new BKUConnector();
+////      verify_template_str = bku_conn.getVerifyTemplate(normalizedText, sigObject);
+////    }
+////    verify_req_str = verify_req_str.replaceFirst("XMLContentReplace", verify_template_str);
+////    verify_req_str = verify_req_str.replaceFirst("TrustProfileIDReplace", trust_profile);
+////
+////    if (logger_.isDebugEnabled())
+////    {
+////      //logger_.debug(verify_req_str);
+////      // FileHelper.writeToFile(verify_request + "_request.xml",
+////      // verify_req_str);
+////    }
+////    String response_string = "";
+////    try
+////    {
+////      response_string = MOAConnector.connectMOA(verify_req_str, MOAConnector.SERVICE_VERIFY, verify_url);
+////    }
+////    catch (WebException we)
+////    {
+////      if (logger_.isDebugEnabled())
+////      {
+////        we.printStackTrace();
+////      }
+////      SignatureException se = new SignatureException(we.getErrorCode(), we);
+////      throw se;
+////    }
+////
+////    if (!response_string.equals(""))
+////    {
+////      Pattern erc_p_s = Pattern.compile("<[\\w]*:?ErrorCode>");
+////      Pattern erc_p_e = Pattern.compile("</[\\w]*:?ErrorCode>");
+////      Matcher erc_m_s = erc_p_s.matcher(response_string);
+////      Matcher erc_m_e = erc_p_e.matcher(response_string);
+////
+////      if (erc_m_s.find() && erc_m_e.find())
+////      {
+////        if (logger_.isEnabledFor(Level.ERROR))
+////        {
+////          //logger_.debug(response_string);
+////          // FileHelper.writeToFile(verify_request + "_response.xml",
+////          // response_string);
+////          logger_.error("Write error response to file:" + verify_request + "_response.xml");
+////        }
+////        Pattern erm_p_s = Pattern.compile("<[\\w]*:?Info>");
+////        Pattern erm_p_e = Pattern.compile("</[\\w]*:?Info>");
+////        Matcher erm_m_s = erm_p_s.matcher(response_string);
+////        Matcher erm_m_e = erm_p_e.matcher(response_string);
+////        SignatureException se = new SignatureException(0, "MOASigExc2");
+////        String error_code = response_string.substring(erc_m_s.end(), erc_m_e.start());
+////        se.setExternalErrorCode(error_code);
+////        if (erm_m_s.find() && erm_m_e.find())
+////        {
+////          String error_mess = response_string.substring(erm_m_s.end(), erm_m_e.start());
+////          se.setExternalErrorMessage(error_mess);
+////        }
+////        throw se;
+////      }
+////      else
+////      {
+////        if (logger_.isDebugEnabled())
+////        {
+////          //logger_.debug(verify_request + "_response.xml " + response_string);
+////        }
+////        return parseVerifyXMLResponse(response_string);
+////      }
+////    }
+////    return null;
+////  }
 //
-//      X509Cert resp_cert = X509Cert.initByString(cert_string);
-//      sig_res.setCertificate(resp_cert);
+////  /**
+////   * This method parses the verify response string and return a
+////   * SignatureResponse object. The SignatureResponse object is filled out by the
+////   * response values from the BKU-response.
+////   * 
+////   * @param xmlResponse
+////   *          the response values from the MOA-verify request
+////   * @return SignatureResponse object
+////   * @see SignatureResponse
+////   */
+////  private SignatureResponse parseVerifyXMLResponse(String xmlResponse)
+////  {
+////    if (logger_.isInfoEnabled())
+////    {
+////      logger_.info("Try parsing the verify response");
+////    }
+////    Pattern sub_nam_p_s = Pattern.compile("<dsig:X509SubjectName>");
+////    Pattern sub_nam_p_e = Pattern.compile("</dsig:X509SubjectName>");
+////    Pattern iss_nam_p_s = Pattern.compile("<dsig:X509IssuerName>");
+////    Pattern iss_nam_p_e = Pattern.compile("</dsig:X509IssuerName>");
+////    Pattern ser_num_p_s = Pattern.compile("<dsig:X509SerialNumber>");
+////    Pattern ser_num_p_e = Pattern.compile("</dsig:X509SerialNumber>");
+////
+////    // [tknall] start qualified certificate
+////    Pattern cert_qualified_p = Pattern.compile("<QualifiedCertificate/>");
+////    Matcher cert_qualified_m = cert_qualified_p.matcher(xmlResponse);
+////    // [tknall] stop qualified certificate
+////    
+////    Pattern sig_chk_p_s = Pattern.compile("<SignatureCheck>");
+////    Pattern sig_chk_p_e = Pattern.compile("</SignatureCheck>");
+////    Pattern man_chk_p_s = Pattern.compile("<SignatureManifestCheck>");
+////    Pattern man_chk_p_e = Pattern.compile("</SignatureManifestCheck>");
+////    Pattern cer_chk_p_s = Pattern.compile("<CertificateCheck>");
+////    Pattern cer_chk_p_e = Pattern.compile("</CertificateCheck>");
+////
+////    Pattern code_p_s = Pattern.compile("<Code>");
+////    Pattern code_p_e = Pattern.compile("</Code>");
+////
+////    Pattern cert_p_s = Pattern.compile("<dsig:X509Certificate>");
+////    Pattern cert_p_e = Pattern.compile("</dsig:X509Certificate>");
+////
+////    Matcher sub_nam_m_s = sub_nam_p_s.matcher(xmlResponse);
+////    Matcher sub_nam_m_e = sub_nam_p_e.matcher(xmlResponse);
+////    Matcher iss_nam_m_s = iss_nam_p_s.matcher(xmlResponse);
+////    Matcher iss_nam_m_e = iss_nam_p_e.matcher(xmlResponse);
+////    Matcher ser_num_m_s = ser_num_p_s.matcher(xmlResponse);
+////    Matcher ser_num_m_e = ser_num_p_e.matcher(xmlResponse);
+////
+////    Matcher sig_chk_m_s = sig_chk_p_s.matcher(xmlResponse);
+////    Matcher sig_chk_m_e = sig_chk_p_e.matcher(xmlResponse);
+////    Matcher man_chk_m_s = man_chk_p_s.matcher(xmlResponse);
+////    Matcher man_chk_m_e = man_chk_p_e.matcher(xmlResponse);
+////    Matcher cer_chk_m_s = cer_chk_p_s.matcher(xmlResponse);
+////    Matcher cer_chk_m_e = cer_chk_p_e.matcher(xmlResponse);
+////
+////    Matcher cert_m_s = cert_p_s.matcher(xmlResponse);
+////    Matcher cert_m_e = cert_p_e.matcher(xmlResponse);
+////
+////    SignatureResponse sig_res = new SignatureResponse();
+////    
+////    // [tknall] start qualified certificate
+////    sig_res.setQualifiedCertificate(cert_qualified_m.find());
+////    // [tknall] stop qualified certificate
+////
+////    if (sub_nam_m_s.find() && sub_nam_m_e.find())
+////    {
+////      String sub_nam = xmlResponse.substring(sub_nam_m_s.end(), sub_nam_m_e.start());
+////      sig_res.setX509SubjectName(sub_nam);
+////    }
+////    if (iss_nam_m_s.find() && iss_nam_m_e.find())
+////    {
+////      String iss_nam = xmlResponse.substring(iss_nam_m_s.end(), iss_nam_m_e.start());
+////      sig_res.setX509IssuerName(iss_nam);
+////    }
+////    if (ser_num_m_s.find() && ser_num_m_e.find())
+////    {
+////      String ser_num = xmlResponse.substring(ser_num_m_s.end(), ser_num_m_e.start());
+////      sig_res.setX509SerialNumber(ser_num);
+////    }
+////    if (sig_chk_m_s.find() && sig_chk_m_e.find())
+////    {
+////      String sig_chk = xmlResponse.substring(sig_chk_m_s.end(), sig_chk_m_e.start());
+////      Matcher code_m_s = code_p_s.matcher(sig_chk);
+////      Matcher code_m_e = code_p_e.matcher(sig_chk);
+////      if (code_m_s.find() && code_m_e.find())
+////      {
+////        String code = sig_chk.substring(code_m_s.end(), code_m_e.start());
+////        sig_res.setSignatureCheckCode(code);
+////      }
+////    }
+////    if (man_chk_m_s.find() && man_chk_m_e.find())
+////    {
+////      String man_chk = xmlResponse.substring(man_chk_m_s.end(), man_chk_m_e.start());
+////      Matcher code_m_s = code_p_s.matcher(man_chk);
+////      Matcher code_m_e = code_p_e.matcher(man_chk);
+////      if (code_m_s.find() && code_m_e.find())
+////      {
+////        String code = man_chk.substring(code_m_s.end(), code_m_e.start());
+////        sig_res.setSignatureManifestCheckCode(code);
+////      }
+////    }
+////    if (cer_chk_m_s.find() && cer_chk_m_e.find())
+////    {
+////      String cer_chk = xmlResponse.substring(cer_chk_m_s.end(), cer_chk_m_e.start());
+////      Matcher code_m_s = code_p_s.matcher(cer_chk);
+////      Matcher code_m_e = code_p_e.matcher(cer_chk);
+////      if (code_m_s.find() && code_m_e.find())
+////      {
+////        String code = cer_chk.substring(code_m_s.end(), code_m_e.start());
+////        sig_res.setCertificateCheckCode(code);
+////      }
+////    }
+////    if (cert_m_s.find() && cert_m_e.find())
+////    {
+////      String cert_string = xmlResponse.substring(cert_m_s.end(), cert_m_e.start());
+////
+////      X509Cert resp_cert = X509Cert.initByString(cert_string);
+////      sig_res.setCertificate(resp_cert);
+////    }
+////
+////    return sig_res;
+////  }
+//
+//  protected String getConnectorValueFromProfile(String profile, String key)
+//  {
+//    String value = settings_.getValueFromKey("sig_obj." + profile + "." + key);
+//    if (value == null)
+//    {
+//      value = settings_.getValueFromKey(key);
 //    }
+//    return value;
+//  }
+//
+//  public String getSignURL(String profile)
+//  {
+//    final String key = TYPE + "." + ConnectorConfigurationKeys.VALUE_MODE_SIGN + ".url";
+//    return getConnectorValueFromProfile(profile, key);
+//  }
+//
+//  protected String getSignRequestTemplateFileName(String profile)
+//  {
+//    String key = TYPE + "." + ConnectorConfigurationKeys.VALUE_MODE_SIGN + ".request";
+//    return getConnectorValueFromProfile(profile, key);
+//  }
+//
+//  protected String getSignKeyIdentifier(String profile)
+//  {
+//    String key = TYPE + "." + ConnectorConfigurationKeys.VALUE_MODE_SIGN + ".KeyIdentifier";
+//    return getConnectorValueFromProfile(profile, key);
+//  }
+//
+//  public String getVerifyURL(String profile)
+//  {
+//    String key = TYPE + "." + ConnectorConfigurationKeys.VALUE_MODE_VERIFY + ".url";
+//    return getConnectorValueFromProfile(profile, key);
+//  }
+//
+//  protected String getVerifyRequestTemplateFileName(String profile)
+//  {
+//    String key = TYPE + "." + ConnectorConfigurationKeys.VALUE_MODE_VERIFY + ".request";
+//    return getConnectorValueFromProfile(profile, key);
+//  }
+//
+//  protected String getVerifyTemplateFileName(String profile)
+//  {
+//    String key = TYPE + "." + ConnectorConfigurationKeys.VALUE_MODE_VERIFY + ".template";
+//    return getConnectorValueFromProfile(profile, key);
+//  }
+//
+//  protected String getSigPropFileName(String profile)
+//  {
+//    String key = TYPE + "." + ConnectorConfigurationKeys.VALUE_MODE_VERIFY + ".template.SP";
+//    return getConnectorValueFromProfile(profile, key);
+//  }
+//
+//  protected String getVerifyTrustProfileID(String profile)
+//  {
+//    String key = TYPE + "." + ConnectorConfigurationKeys.VALUE_MODE_VERIFY + ".TrustProfileID";
+//    return getConnectorValueFromProfile(profile, key);
+//  }
+//
+//  /**
+//   * This method connects the moa server getting the requestString, the given
+//   * serviseMode and the endpointUrl. The requestString is the envelope of the
+//   * SOAP Message send and recieve by the AXIS module. The Response SOAP message
+//   * of the MOA server is parsed by AXIS and the message envelope is send back
+//   * to the calling method.
+//   * 
+//   * @param requestString
+//   *          the request string (XML) to send.
+//   * @param serviceMode
+//   *          the mode which connect to MOA
+//   * @param endpointURL
+//   *          the URL which the MOA server is running
+//   * @return the response string (XML) of the MOA server
+//   * @throws WebException
+//   */
+//  public static String connectMOA(String requestString, String serviceMode,
+//      String endpointURL) throws WebException
+//  {
+//    try
+//    {
+//      if (logger_.isInfoEnabled())
+//      {
+//        logger_.info(serviceMode);
+//        logger_.info(endpointURL);
+//      }
+//      // Parser/DOMBuilder instanzieren
+//      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+//      factory.setNamespaceAware(true);
+//      DocumentBuilder builder = factory.newDocumentBuilder();
+//
+//      // XML Datei in einen DOM-Baum umwandeln
+//      ByteArrayInputStream bais = new ByteArrayInputStream(requestString.getBytes("UTF-8"));
+//      Document xmlRequest = builder.parse(bais);
+//
+//      // Call �ffnen
+//      Call call = null;
+//
+//      // Neues BodyElement anlegen und mit dem DOM-Baum f�llen
+//      SOAPBodyElement body = new SOAPBodyElement(xmlRequest.getDocumentElement());
+//      SOAPBodyElement[] params = new SOAPBodyElement[] { body };
+//
+//      // AXIS-Server instanzieren
+//      Service service = ServiceFactory.newInstance().createService(new QName(serviceMode));
+//      call = service.createCall();
+//      call.setTargetEndpointAddress(endpointURL);
+//
+//      // Call ausl�sen und die Antworten speichern
+//      if (logger_.isInfoEnabled())
+//      {
+//        logger_.info("Calling MOA:" + endpointURL);
+//      }
+//      Vector responses = (Vector) call.invoke(params);
+//
+//      // Erstes Body Element auslesen
+//      SOAPBodyElement response = (SOAPBodyElement) responses.get(0);
+//
+//      // Aus der Response den DOM-Baum lesen
+//      Document root_response = response.getAsDocument();
+//      if (logger_.isInfoEnabled())
+//      {
+//        logger_.info("Return from MOA:" + serviceMode);
+//      }
+//
+//      // XML-Formatierung konfiguieren
+//      OutputFormat format = new OutputFormat((Document) root_response);
+//      format.setLineSeparator("\n");
+//      format.setIndenting(false);
+//      format.setPreserveSpace(true);
+//      format.setOmitXMLDeclaration(false);
+//      format.setEncoding("UTF-8");
+//
+//      // Ausgabe der Webservice-Antwort auf die Konsole
+//      // XMLSerializer conSerializer = new XMLSerializer(System.out, format);
+//      // conSerializer.serialize(root_response);
+//
+//      // Ausgabe der Webservice-Antwort in Datei
+//      ByteArrayOutputStream baos = new ByteArrayOutputStream();
+//      XMLSerializer response_serializer = new XMLSerializer(baos, format);
+//      response_serializer.serialize(root_response);
+//      return baos.toString("UTF-8");
+//    }
+//    catch (Exception e)
+//    {
+//      throw new WebException(330, e);
+//    }
+//    // serialize signature only
+//
+//    // if
+//    // (root_response.getDocumentElement().getLocalName().equals("CreateXMLSignatureResponse"))
+//    // {
+//    // Element signature = (Element)
+//    // root_response.getElementsByTagNameNS("http://www.w3.org/2000/09/xmldsig#",
+//    // "Signature").item(0);
+//    // String signatureFile = getProperty(mode + "Request").substring(0,
+//    // getProperty(mode +
+//    // "Request").lastIndexOf('.')) + ".Signature.xml";
+//    // fileSerializer = new XMLSerializer(new FileOutputStream(signatureFile),
+//    // format);
+//    // fileSerializer.serialize(signature);
+//    // }
 //
-//    return sig_res;
 //  }
-
-  protected String getConnectorValueFromProfile(String profile, String key)
-  {
-    String value = settings_.getValueFromKey("sig_obj." + profile + "." + key);
-    if (value == null)
-    {
-      value = settings_.getValueFromKey(key);
-    }
-    return value;
-  }
-
-  public String getSignURL(String profile)
-  {
-    final String key = TYPE + "." + ConnectorConfigurationKeys.VALUE_MODE_SIGN + ".url";
-    return getConnectorValueFromProfile(profile, key);
-  }
-
-  protected String getSignRequestTemplateFileName(String profile)
-  {
-    String key = TYPE + "." + ConnectorConfigurationKeys.VALUE_MODE_SIGN + ".request";
-    return getConnectorValueFromProfile(profile, key);
-  }
-
-  protected String getSignKeyIdentifier(String profile)
-  {
-    String key = TYPE + "." + ConnectorConfigurationKeys.VALUE_MODE_SIGN + ".KeyIdentifier";
-    return getConnectorValueFromProfile(profile, key);
-  }
-
-  public String getVerifyURL(String profile)
-  {
-    String key = TYPE + "." + ConnectorConfigurationKeys.VALUE_MODE_VERIFY + ".url";
-    return getConnectorValueFromProfile(profile, key);
-  }
-
-  protected String getVerifyRequestTemplateFileName(String profile)
-  {
-    String key = TYPE + "." + ConnectorConfigurationKeys.VALUE_MODE_VERIFY + ".request";
-    return getConnectorValueFromProfile(profile, key);
-  }
-
-  protected String getVerifyTemplateFileName(String profile)
-  {
-    String key = TYPE + "." + ConnectorConfigurationKeys.VALUE_MODE_VERIFY + ".template";
-    return getConnectorValueFromProfile(profile, key);
-  }
-
-  protected String getSigPropFileName(String profile)
-  {
-    String key = TYPE + "." + ConnectorConfigurationKeys.VALUE_MODE_VERIFY + ".template.SP";
-    return getConnectorValueFromProfile(profile, key);
-  }
-
-  protected String getVerifyTrustProfileID(String profile)
-  {
-    String key = TYPE + "." + ConnectorConfigurationKeys.VALUE_MODE_VERIFY + ".TrustProfileID";
-    return getConnectorValueFromProfile(profile, key);
-  }
-
-  /**
-   * This method connects the moa server getting the requestString, the given
-   * serviseMode and the endpointUrl. The requestString is the envelope of the
-   * SOAP Message send and recieve by the AXIS module. The Response SOAP message
-   * of the MOA server is parsed by AXIS and the message envelope is send back
-   * to the calling method.
-   * 
-   * @param requestString
-   *          the request string (XML) to send.
-   * @param serviceMode
-   *          the mode which connect to MOA
-   * @param endpointURL
-   *          the URL which the MOA server is running
-   * @return the response string (XML) of the MOA server
-   * @throws WebException
-   */
-  public static String connectMOA(String requestString, String serviceMode,
-      String endpointURL) throws WebException
-  {
-    try
-    {
-      if (logger_.isInfoEnabled())
-      {
-        logger_.info(serviceMode);
-        logger_.info(endpointURL);
-      }
-      // Parser/DOMBuilder instanzieren
-      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
-      factory.setNamespaceAware(true);
-      DocumentBuilder builder = factory.newDocumentBuilder();
-
-      // XML Datei in einen DOM-Baum umwandeln
-      ByteArrayInputStream bais = new ByteArrayInputStream(requestString.getBytes("UTF-8"));
-      Document xmlRequest = builder.parse(bais);
-
-      // Call �ffnen
-      Call call = null;
-
-      // Neues BodyElement anlegen und mit dem DOM-Baum f�llen
-      SOAPBodyElement body = new SOAPBodyElement(xmlRequest.getDocumentElement());
-      SOAPBodyElement[] params = new SOAPBodyElement[] { body };
-
-      // AXIS-Server instanzieren
-      Service service = ServiceFactory.newInstance().createService(new QName(serviceMode));
-      call = service.createCall();
-      call.setTargetEndpointAddress(endpointURL);
-
-      // Call ausl�sen und die Antworten speichern
-      if (logger_.isInfoEnabled())
-      {
-        logger_.info("Calling MOA:" + endpointURL);
-      }
-      Vector responses = (Vector) call.invoke(params);
-
-      // Erstes Body Element auslesen
-      SOAPBodyElement response = (SOAPBodyElement) responses.get(0);
-
-      // Aus der Response den DOM-Baum lesen
-      Document root_response = response.getAsDocument();
-      if (logger_.isInfoEnabled())
-      {
-        logger_.info("Return from MOA:" + serviceMode);
-      }
-
-      // XML-Formatierung konfiguieren
-      OutputFormat format = new OutputFormat((Document) root_response);
-      format.setLineSeparator("\n");
-      format.setIndenting(false);
-      format.setPreserveSpace(true);
-      format.setOmitXMLDeclaration(false);
-      format.setEncoding("UTF-8");
-
-      // Ausgabe der Webservice-Antwort auf die Konsole
-      // XMLSerializer conSerializer = new XMLSerializer(System.out, format);
-      // conSerializer.serialize(root_response);
-
-      // Ausgabe der Webservice-Antwort in Datei
-      ByteArrayOutputStream baos = new ByteArrayOutputStream();
-      XMLSerializer response_serializer = new XMLSerializer(baos, format);
-      response_serializer.serialize(root_response);
-      return baos.toString("UTF-8");
-    }
-    catch (Exception e)
-    {
-      throw new WebException(330, e);
-    }
-    // serialize signature only
-
-    // if
-    // (root_response.getDocumentElement().getLocalName().equals("CreateXMLSignatureResponse"))
-    // {
-    // Element signature = (Element)
-    // root_response.getElementsByTagNameNS("http://www.w3.org/2000/09/xmldsig#",
-    // "Signature").item(0);
-    // String signatureFile = getProperty(mode + "Request").substring(0,
-    // getProperty(mode +
-    // "Request").lastIndexOf('.')) + ".Signature.xml";
-    // fileSerializer = new XMLSerializer(new FileOutputStream(signatureFile),
-    // format);
-    // fileSerializer.serialize(signature);
-    // }
-
-  }
 }
\ No newline at end of file
-- 
cgit v1.2.3