import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.security.KeyStore;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManagerFactory;
import cfca.seal.util.Base64;
import cfca.seal.util.StringUtil;
public class SealClient
{
public static final String ASSIST_SEAL_SERVLET = "AssistSealServlet";
public static final String MAKE_SEAL_SERVLET = "MakeSealServlet";
public static final String WEB_SEAL_SERVLET = "WebSealServlet";
public static final String PDF_SEAL_SERVLET = "PdfSealServlet";
public static final String BUSINESS_SEAL_SERVLET = "BusinessSealServlet";
public static final String DEFAULT_CHARSET = "UTF-8";
public static final String SLASH = "/";
private String urlString;
private int connectTimeout = 30000;
private int readTimeout = 30000;
private String keyStorePath = "";
private String keyStorePassword = "";
private String trustStorePath = "";
private String trustStorePassword = "";
public SealClient(String urlString, String keyStorePath, String keyStorePassword, String trustStorePath, String trustStorePassword) {
this.keyStorePath = keyStorePath;
this.keyStorePassword = keyStorePassword;
this.trustStorePath = trustStorePath;
this.trustStorePassword = trustStorePassword;
this.urlString = urlString;
}
public SealClient(String urlString) {
this.urlString = urlString;
}
public SealClient(String urlString, int connectTimeout, int readTimeout) {
this.urlString = urlString;
this.connectTimeout = connectTimeout;
this.readTimeout = readTimeout;
}
public String reqAndRes(String urlString, String parameterData) throws Exception {
String result = "";
if ((StringUtil.isNotEmpty(urlString)) && (urlString.startsWith("https://")))
result = reqAndResForHttps(urlString, parameterData);
else if ((StringUtil.isNotEmpty(urlString)) && (urlString.startsWith("http://"))) {
result = reqAndResForHttp(urlString, parameterData);
}
return result;
}
public String reqAndResForHttps(String urlString, String parameterData) throws Exception
{
OutputStream outputStream = null;
OutputStreamWriter outputStreamWriter = null;
InputStream inputStream = null;
InputStreamReader inputStreamReader = null;
BufferedReader reader = null;
StringBuffer resultBuffer = new StringBuffer();
try
{
SSLContext sslContext = getSSLContext(this.keyStorePath, this.keyStorePassword, this.trustStorePath, this.trustStorePassword);
URL url = new URL(urlString);
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection();
conn.setSSLSocketFactory(sslContext.getSocketFactory());
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestProperty("Accept-Charset", "utf-8");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
System.setProperty("sun.net.client.defaultConnectTimeout", String.valueOf(this.connectTimeout));
System.setProperty("sun.net.client.defaultReadTimeout", String.valueOf(this.readTimeout));
conn.setHostnameVerifier(new HostnameVerifier() {
public boolean verify(String hostname, SSLSession session) {
return true;
}
});
conn.setRequestProperty("Content-Length", String.valueOf(parameterData.length()));
outputStream = conn.getOutputStream();
outputStreamWriter = new OutputStreamWriter(outputStream);
outputStreamWriter.write(parameterData);
outputStreamWriter.flush();
inputStream = conn.getInputStream();
inputStreamReader = new InputStreamReader(inputStream);
reader = new BufferedReader(inputStreamReader);
String tempLine = null;
while ((tempLine = reader.readLine()) != null)
resultBuffer.append(tempLine);
}
catch (MalformedURLException e) {
throw e;
} catch (IOException e) {
throw e;
} finally {
if (outputStreamWriter != null) {
outputStreamWriter.close();
}
if (outputStream != null) {
outputStream.close();
}
if (reader != null) {
reader.close();
}
if (inputStreamReader != null) {
inputStreamReader.close();
}
if (inputStream != null) {
inputStream.close();
}
}
return resultBuffer.toString();
}
public String reqAndResForHttp(String urlString, String parameterData) throws Exception {
OutputStream outputStream = null;
OutputStreamWriter outputStreamWriter = null;
InputStream inputStream = null;
InputStreamReader inputStreamReader = null;
BufferedReader reader = null;
StringBuffer resultBuffer = new StringBuffer();
try
{
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Accept-Charset", "utf-8");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(parameterData.length()));
System.setProperty("sun.net.client.defaultConnectTimeout", String.valueOf(this.connectTimeout));
System.setProperty("sun.net.client.defaultReadTimeout", String.valueOf(this.readTimeout));
outputStream = conn.getOutputStream();
outputStreamWriter = new OutputStreamWriter(outputStream);
outputStreamWriter.write(parameterData);
outputStreamWriter.flush();
inputStream = conn.getInputStream();
inputStreamReader = new InputStreamReader(inputStream);
reader = new BufferedReader(inputStreamReader);
String tempLine = null;
while ((tempLine = reader.readLine()) != null)
resultBuffer.append(tempLine);
}
catch (MalformedURLException e) {
throw e;
} catch (IOException e) {
throw e;
} finally {
if (outputStreamWriter != null) {
outputStreamWriter.close();
}
if (outputStream != null) {
outputStream.close();
}
if (reader != null) {
reader.close();
}
if (inputStreamReader != null) {
inputStreamReader.close();
}
if (inputStream != null) {
inputStream.close();
}
}
return resultBuffer.toString();
}
public SSLContext getSSLContext(String keyStorePath, String keyStorePassword, String trustStorePath, String trustStorePassword) throws Exception
{
SSLContext ctx = SSLContext.getInstance("SSL");
String jdkvs = System.getProperty("java.vm.vendor");
KeyManagerFactory kmf = null;
TrustManagerFactory tmf = null;
if ((null != jdkvs) && (jdkvs.startsWith("IBM"))) {
kmf = KeyManagerFactory.getInstance("IbmX509");
tmf = TrustManagerFactory.getInstance("IbmPKIX");
} else {
kmf = KeyManagerFactory.getInstance("SunX509");
tmf = TrustManagerFactory.getInstance("SunX509");
}
KeyStore ks = null;
if (keyStorePath.indexOf("jks") >= 0)
ks = KeyStore.getInstance("JKS");
else if (keyStorePath.indexOf("pfx") >= 0) {
ks = KeyStore.getInstance("PKCS12");
}
KeyStore tks = KeyStore.getInstance("JKS");
ks.load(new FileInputStream(keyStorePath), keyStorePassword.toCharArray());
tks.load(new FileInputStream(trustStorePath), trustStorePassword.toCharArray());
kmf.init(ks, keyStorePassword.toCharArray());
tmf.init(tks);
ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
return ctx;
}
public String makeSeal(byte[] pfx, String pfxPassword, byte[] image, String sealInfoXML)
throws Exception
{
try
{
String pfxString = new String(Base64.encode(pfx), "UTF-8");
pfxString = URLEncoder.encode(pfxString, "UTF-8");
pfxPassword = new String(Base64.encode(pfxPassword.getBytes("UTF-8")), "UTF-8");
pfxPassword = URLEncoder.encode(pfxPassword, "UTF-8");
String imageString = new String(Base64.encode(image), "UTF-8");
imageString = URLEncoder.encode(imageString, "UTF-8");
sealInfoXML = new String(Base64.encode(sealInfoXML.getBytes("UTF-8")), "UTF-8");
sealInfoXML = URLEncoder.encode(sealInfoXML, "UTF-8");
String parameterData = "type=makeSeal&pfx=" + pfxString + "&pfxPassword=" + pfxPassword + "&image=" + imageString + "&sealInfoXML=" + sealInfoXML;
String resultString = reqAndRes(this.urlString, parameterData);
return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public String makeNamedSeal(byte[] pfx, String pfxPassword, String sealInfoXML)
throws Exception
{
try
{
String pfxString = new String(Base64.encode(pfx), "UTF-8");
pfxString = URLEncoder.encode(pfxString, "UTF-8");
pfxPassword = new String(Base64.encode(pfxPassword.getBytes("UTF-8")), "UTF-8");
pfxPassword = URLEncoder.encode(pfxPassword, "UTF-8");
sealInfoXML = new String(Base64.encode(sealInfoXML.getBytes("UTF-8")), "UTF-8");
sealInfoXML = URLEncoder.encode(sealInfoXML, "UTF-8");
String parameterData = "type=makeNamedSeal&pfx=" + pfxString + "&pfxPassword=" + pfxPassword + "&sealInfoXML=" + sealInfoXML;
String resultString = reqAndRes(this.urlString, parameterData);
return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public String updateSeal(byte[] pfx, String pfxPassword, byte[] image, String sealInfoXML)
throws Exception
{
try
{
String pfxString = new String(Base64.encode(pfx), "UTF-8");
pfxString = URLEncoder.encode(pfxString, "UTF-8");
pfxPassword = new String(Base64.encode(pfxPassword.getBytes("UTF-8")), "UTF-8");
pfxPassword = URLEncoder.encode(pfxPassword, "UTF-8");
String imageString = new String(Base64.encode(image), "UTF-8");
imageString = URLEncoder.encode(imageString, "UTF-8");
sealInfoXML = new String(Base64.encode(sealInfoXML.getBytes("UTF-8")), "UTF-8");
sealInfoXML = URLEncoder.encode(sealInfoXML, "UTF-8");
String parameterData = "type=updateSeal&pfx=" + pfxString + "&pfxPassword=" + pfxPassword + "&image=" + imageString + "&sealInfoXML=" + sealInfoXML;
String resultString = reqAndRes(this.urlString, parameterData);
return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public String updateNamedSeal(byte[] pfx, String pfxPassword, String sealInfoXML)
throws Exception
{
try
{
String pfxString = new String(Base64.encode(pfx), "UTF-8");
pfxString = URLEncoder.encode(pfxString, "UTF-8");
pfxPassword = new String(Base64.encode(pfxPassword.getBytes("UTF-8")), "UTF-8");
pfxPassword = URLEncoder.encode(pfxPassword, "UTF-8");
sealInfoXML = new String(Base64.encode(sealInfoXML.getBytes("UTF-8")), "UTF-8");
sealInfoXML = URLEncoder.encode(sealInfoXML, "UTF-8");
String parameterData = "type=updateNamedSeal&pfx=" + pfxString + "&pfxPassword=" + pfxPassword + "&sealInfoXML=" + sealInfoXML;
String resultString = reqAndRes(this.urlString, parameterData);
return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public byte[] sealAutoPdf(byte[] pdf, String sealStrategyXML)
throws Exception
{
try
{
String pdfString = new String(Base64.encode(pdf), "UTF-8");
pdfString = URLEncoder.encode(pdfString, "UTF-8");
sealStrategyXML = new String(Base64.encode(sealStrategyXML.getBytes("UTF-8")), "UTF-8");
sealStrategyXML = URLEncoder.encode(sealStrategyXML, "UTF-8");
String parameterData = "type=sealAutoPdf&pdf=" + pdfString + "&sealStrategyXML=" + sealStrategyXML;
String resultString = reqAndRes(this.urlString, parameterData);
return Base64.decode(resultString.getBytes("UTF-8"));
}
catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public byte[] batchSealAutoPdf(byte[] pdf, String batchSealStrategyXML)
throws Exception
{
try
{
String pdfString = new String(Base64.encode(pdf), "UTF-8");
pdfString = URLEncoder.encode(pdfString, "UTF-8");
batchSealStrategyXML = new String(Base64.encode(batchSealStrategyXML.getBytes("UTF-8")), "UTF-8");
batchSealStrategyXML = URLEncoder.encode(batchSealStrategyXML, "UTF-8");
String parameterData = "type=batchSealAutoPdf&pdf=" + pdfString + "&batchSealStrategyXML=" + batchSealStrategyXML;
String resultString = reqAndRes(this.urlString, parameterData);
return Base64.decode(resultString.getBytes("UTF-8"));
}
catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public String sealBase64PdfFunction(String pdfBase64, String pfxBase64, String pfxPassword, String imageBase64, String sealFunctionStrategyXML)
throws Exception
{
try
{
pdfBase64 = new String(Base64.encode(pdfBase64.getBytes("UTF-8")), "UTF-8");
pdfBase64 = URLEncoder.encode(pdfBase64, "UTF-8");
pfxBase64 = new String(Base64.encode(pfxBase64.getBytes("UTF-8")), "UTF-8");
pfxBase64 = URLEncoder.encode(pfxBase64, "UTF-8");
pfxPassword = new String(Base64.encode(pfxPassword.getBytes("UTF-8")), "UTF-8");
pfxPassword = URLEncoder.encode(pfxPassword, "UTF-8");
imageBase64 = new String(Base64.encode(imageBase64.getBytes("UTF-8")), "UTF-8");
imageBase64 = URLEncoder.encode(imageBase64, "UTF-8");
sealFunctionStrategyXML = new String(Base64.encode(sealFunctionStrategyXML.getBytes("UTF-8")), "UTF-8");
sealFunctionStrategyXML = URLEncoder.encode(sealFunctionStrategyXML, "UTF-8");
String parameterData = "type=sealBase64PdfFunction&pdfBase64=" + pdfBase64 + "&pfxBase64=" + pfxBase64 + "&pfxPassword=" + pfxPassword + "&imageBase64=" + imageBase64 + "&sealFunctionStrategyXML=" + sealFunctionStrategyXML;
return reqAndRes(this.urlString, parameterData);
}
catch (Exception e)
{
e.printStackTrace();
throw e;
}
}
public byte[] sealPdfFunction(byte[] pdf, byte[] pfx, String pfxPassword, byte[] image, String sealFunctionStrategyXML)
throws Exception
{
try
{
String pdfString = new String(Base64.encode(pdf), "UTF-8");
pdfString = URLEncoder.encode(pdfString, "UTF-8");
String pfxString = new String(Base64.encode(pfx), "UTF-8");
pfxString = URLEncoder.encode(pfxString, "UTF-8");
pfxPassword = new String(Base64.encode(pfxPassword.getBytes("UTF-8")), "UTF-8");
pfxPassword = URLEncoder.encode(pfxPassword, "UTF-8");
String imageString = new String(Base64.encode(image), "UTF-8");
imageString = URLEncoder.encode(imageString, "UTF-8");
sealFunctionStrategyXML = new String(Base64.encode(sealFunctionStrategyXML.getBytes("UTF-8")), "UTF-8");
sealFunctionStrategyXML = URLEncoder.encode(sealFunctionStrategyXML, "UTF-8");
String parameterData = "type=sealPdfFunction&pdfString=" + pdfString + "&pfxString=" + pfxString + "&pfxPassword=" + pfxPassword + "&imageString=" + imageString + "&sealFunctionStrategyXML=" + sealFunctionStrategyXML;
return Base64.decode(reqAndRes(this.urlString, parameterData));
}
catch (Exception e)
{
e.printStackTrace();
throw e;
}
}
public byte[] sealAutoCrossPdf(byte[] pdf, String crossSealStrategyXML)
throws Exception
{
try
{
String pdfString = new String(Base64.encode(pdf), "UTF-8");
pdfString = URLEncoder.encode(pdfString, "UTF-8");
crossSealStrategyXML = new String(Base64.encode(crossSealStrategyXML.getBytes("UTF-8")), "UTF-8");
crossSealStrategyXML = URLEncoder.encode(crossSealStrategyXML, "UTF-8");
String parameterData = "type=sealAutoCrossPdf&pdf=" + pdfString + "&crossSealStrategyXML=" + crossSealStrategyXML;
String resultString = reqAndRes(this.urlString, parameterData);
return Base64.decode(resultString.getBytes("UTF-8"));
}
catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public byte[] sealAutoSynthesizedBusinessPdf(byte[] pdf, String businessXML, String sealStrategyXML)
throws Exception
{
try
{
String pdfString = new String(Base64.encode(pdf), "UTF-8");
pdfString = URLEncoder.encode(pdfString, "UTF-8");
businessXML = new String(Base64.encode(businessXML.getBytes("UTF-8")), "UTF-8");
businessXML = URLEncoder.encode(businessXML, "UTF-8");
sealStrategyXML = new String(Base64.encode(sealStrategyXML.getBytes("UTF-8")), "UTF-8");
sealStrategyXML = URLEncoder.encode(sealStrategyXML, "UTF-8");
String parameterData = "type=sealAutoSynthesizedBusinessPdf&pdf=" + pdfString + "&businessXML=" + businessXML + "&sealStrategyXML=" + sealStrategyXML;
String resultString = reqAndRes(this.urlString, parameterData);
return Base64.decode(resultString.getBytes("UTF-8"));
}
catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public byte[] addWaterMark2Pdf(byte[] pdf, String waterMarkStrategyXML)
throws Exception
{
try
{
String pdfString = new String(Base64.encode(pdf), "UTF-8");
pdfString = URLEncoder.encode(pdfString, "UTF-8");
waterMarkStrategyXML = new String(Base64.encode(waterMarkStrategyXML.getBytes("UTF-8")), "UTF-8");
waterMarkStrategyXML = URLEncoder.encode(waterMarkStrategyXML, "UTF-8");
String parameterData = "type=addWaterMark2Pdf&pdf=" + pdfString + "&waterMarkStrategyXML=" + waterMarkStrategyXML;
String resultString = reqAndRes(this.urlString, parameterData);
return Base64.decode(resultString.getBytes("UTF-8"));
}
catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public byte[] signWebSeal(String sourceBase64, String sealStrategyXml)
throws Exception
{
try
{
sourceBase64 = new String(Base64.encode(sourceBase64.getBytes("UTF-8")), "UTF-8");
sourceBase64 = URLEncoder.encode(sourceBase64, "UTF-8");
sealStrategyXml = new String(Base64.encode(sealStrategyXml.getBytes("UTF-8")), "UTF-8");
sealStrategyXml = URLEncoder.encode(sealStrategyXml, "UTF-8");
String parameterData = "type=signWebSeal&sourceBase64=" + sourceBase64 + "&sealStrategyXml=" + sealStrategyXml;
String resultString = reqAndRes(this.urlString, parameterData);
return Base64.decode(resultString.getBytes("UTF-8"));
}
catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public String verifyPdfSeal(byte[] sealedPdf, String verifyStrategyXML)
throws Exception
{
try
{
String sealedPdfString = new String(Base64.encode(sealedPdf), "UTF-8");
sealedPdfString = URLEncoder.encode(sealedPdfString, "UTF-8");
verifyStrategyXML = new String(Base64.encode(verifyStrategyXML.getBytes("UTF-8")), "UTF-8");
verifyStrategyXML = URLEncoder.encode(verifyStrategyXML, "UTF-8");
String parameterData = "type=verifyPdfSeal&sealedPdf=" + sealedPdfString + "&verifyStrategyXML=" + verifyStrategyXML;
String resultString = reqAndRes(this.urlString, parameterData);
return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public String verifyWebSeal(String webSealSource, String sourceBase64, String verifyStrategyXML)
throws Exception
{
try
{
webSealSource = new String(Base64.encode(webSealSource.getBytes("UTF-8")), "UTF-8");
webSealSource = URLEncoder.encode(webSealSource, "UTF-8");
sourceBase64 = new String(Base64.encode(sourceBase64.getBytes("UTF-8")), "UTF-8");
sourceBase64 = URLEncoder.encode(sourceBase64, "UTF-8");
verifyStrategyXML = new String(Base64.encode(verifyStrategyXML.getBytes("UTF-8")), "UTF-8");
verifyStrategyXML = URLEncoder.encode(verifyStrategyXML, "UTF-8");
String parameterData = "type=verifyWebSeal&webSealSource=" + webSealSource + "&sourceBase64=" + sourceBase64 + "&verifyStrategyXML=" + verifyStrategyXML;
String resultString = reqAndRes(this.urlString, parameterData);
return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public byte[] synthesizeAutoBusinessPdf(byte[] pdf, String businessXML)
throws Exception
{
try
{
String pdfString = new String(Base64.encode(pdf), "UTF-8");
pdfString = URLEncoder.encode(pdfString, "UTF-8");
businessXML = new String(Base64.encode(businessXML.getBytes("UTF-8")), "UTF-8");
businessXML = URLEncoder.encode(businessXML, "UTF-8");
String parameterData = "type=synthesizeAutoBusinessPdf&pdf=" + pdfString + "&businessXML=" + businessXML;
String resultString = reqAndRes(this.urlString, parameterData);
return Base64.decode(resultString.getBytes("UTF-8"));
}
catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public byte[] transformToPdf(byte[] source, String fileType)
throws Exception
{
try
{
String sourceString = new String(Base64.encode(source), "UTF-8");
sourceString = URLEncoder.encode(sourceString, "UTF-8");
fileType = new String(Base64.encode(fileType.getBytes("UTF-8")), "UTF-8");
fileType = URLEncoder.encode(fileType, "UTF-8");
String parameterData = "type=transformToPdf&sourceString=" + sourceString + "&fileType=" + fileType;
String resultString = reqAndRes(this.urlString, parameterData);
return Base64.decode(resultString.getBytes("UTF-8"));
}
catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public String p1Sign(byte[] source, String signStrategyXML)
throws Exception
{
try
{
String sourceString = new String(Base64.encode(source), "UTF-8");
sourceString = URLEncoder.encode(sourceString, "UTF-8");
signStrategyXML = new String(Base64.encode(signStrategyXML.getBytes("UTF-8")), "UTF-8");
signStrategyXML = URLEncoder.encode(signStrategyXML, "UTF-8");
String parameterData = "type=p1Sign&source=" + sourceString + "&signStrategyXML=" + signStrategyXML;
String resultString = reqAndRes(this.urlString, parameterData);
return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public String p7SignDetached(byte[] source, String signStrategyXML)
throws Exception
{
try
{
String sourceString = new String(Base64.encode(source), "UTF-8");
sourceString = URLEncoder.encode(sourceString, "UTF-8");
signStrategyXML = new String(Base64.encode(signStrategyXML.getBytes("UTF-8")), "UTF-8");
signStrategyXML = URLEncoder.encode(signStrategyXML, "UTF-8");
String parameterData = "type=p7SignDetached&source=" + sourceString + "&signStrategyXML=" + signStrategyXML;
String resultString = reqAndRes(this.urlString, parameterData);
return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public String p7VerifyDetached(String signatureBase64, byte[] source, String verifyStrategyXML)
throws Exception
{
try
{
signatureBase64 = new String(Base64.encode(signatureBase64.getBytes("UTF-8")), "UTF-8");
signatureBase64 = URLEncoder.encode(signatureBase64, "UTF-8");
String sourceString = new String(Base64.encode(source), "UTF-8");
sourceString = URLEncoder.encode(sourceString, "UTF-8");
verifyStrategyXML = new String(Base64.encode(verifyStrategyXML.getBytes("UTF-8")), "UTF-8");
verifyStrategyXML = URLEncoder.encode(verifyStrategyXML, "UTF-8");
String parameterData = "type=p7VerifyDetached&signatureBase64=" + signatureBase64 + "&source=" + sourceString + "&verifyStrategyXML=" + verifyStrategyXML;
String resultString = reqAndRes(this.urlString, parameterData);
return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public String getSealInfo(String sealCode)
throws Exception
{
try
{
sealCode = new String(Base64.encode(sealCode.getBytes("UTF-8")), "UTF-8");
sealCode = URLEncoder.encode(sealCode, "UTF-8");
String parameterData = "type=getSealInfo&sealCode=" + sealCode;
String resultString = reqAndRes(this.urlString, parameterData);
return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public String bindSeal(String bindSealXML)
throws Exception
{
try
{
bindSealXML = new String(Base64.encode(bindSealXML.getBytes("UTF-8")), "UTF-8");
bindSealXML = URLEncoder.encode(bindSealXML, "UTF-8");
String parameterData = "type=bindSeal&bindSealXML=" + bindSealXML;
String resultString = reqAndRes(this.urlString, parameterData);
return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
public String autoGenerateImage(String imageStrategyXML)
throws Exception
{
try
{
imageStrategyXML = new String(Base64.encode(imageStrategyXML.getBytes("UTF-8")), "UTF-8");
imageStrategyXML = URLEncoder.encode(imageStrategyXML, "UTF-8");
String parameterData = "type=autoGenerateImage&imageStrategyXML=" + imageStrategyXML;
String resultString = reqAndRes(this.urlString, parameterData);
return new String(Base64.decode(resultString.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
}