aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/test/at/knowcenter/wag/egov/egiz/detached/BKUConnector.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/test/at/knowcenter/wag/egov/egiz/detached/BKUConnector.java')
-rw-r--r--src/test/java/test/at/knowcenter/wag/egov/egiz/detached/BKUConnector.java960
1 files changed, 0 insertions, 960 deletions
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
deleted file mode 100644
index 072c277..0000000
--- a/src/test/java/test/at/knowcenter/wag/egov/egiz/detached/BKUConnector.java
+++ /dev/null
@@ -1,960 +0,0 @@
-/*
- * <copyright> Copyright (c) 2006 by Know-Center, Graz, Austria </copyright>
- *
- * This software is the confidential and proprietary information of Know-Center,
- * Graz, Austria. You shall not disclose such Confidential Information and shall
- * use it only in accordance with the terms of the license agreement you entered
- * into with Know-Center.
- *
- * KNOW-CENTER MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
- * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
- * NON-INFRINGEMENT. KNOW-CENTER SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY
- * LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
- * DERIVATIVES.
- *
- * $Id: BKUConnector.java,v 1.5 2006/10/31 08:18:41 wprinz Exp $
- */
-package test.at.knowcenter.wag.egov.egiz.detached;
-
-
-/**
- * Connector for communicating with BKU.
- *
- * @author wlackner
- * @author wprinz
- */
-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);
-//// }
-//
-// 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