• SealClient


    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;
        }
      }
    }
  • 相关阅读:
    2017暑期集训Day 4
    2017暑期集训Day 5
    2017暑期集训Day 3
    Codeforces Round #433
    校内集训(20170906)
    校内集训(20170903)
    培训补坑(day10:双指针扫描+矩阵快速幂)
    培训补坑(day8:树上倍增+树链剖分)
    培训补坑(day7:线段树的区间修改与运用)(day6是测试,测试题解以后补坑QAQ)
    培训补坑(day5:最小生成树+负环判断+差分约束)
  • 原文地址:https://www.cnblogs.com/yy123/p/5301660.html
Copyright © 2020-2023  润新知