Java SHA512 & .net SHA512 – Hash Matching for SOAP ( Hash API only )

Java SHA512 & .net SHA512 – Hash Sharing for SOAP ( Hash API only )

   Java Side
 
   package org.tempuri;
 
   import java.io.FileInputStream;
   import java.security.KeyStore;
   import java.security.cert.Certificate;
   import java.security.MessageDigest;
 
   public class CertDAO
   {
 
      … …
 
      public static String loadKey(String keystoreFilename) throws Exception
      {
 
         //Keystore File Path = "C:\\Cert\\WCFServer.jks";
 
         char[] password = "password".toCharArray();
         String alias = "wcfserver";
         FileInputStream fIn = new FileInputStream(keystoreFilename);
         KeyStore keystore = KeyStore.getInstance("JKS");
         keystore.load(fIn, password);
         Certificate cert = keystore.getCertificate(alias);
         //System.out.println(cert);
         byte[] certBuf = cert.getEncoded();
         String certResult= new sun.misc.BASE64Encoder().encode(certBuf);
         //System.out.println(">>>" + certResult);
 
         MessageDigest md = MessageDigest.getInstance("SHA-512");
         md.update(certResult.getBytes());
         byte[] digestBuf = md.digest();
         String digString = new sun.misc.BASE64Encoder().encode(digestBuf);
         //System.out.println(">>>" + digString);
 
         return digString;
 
      }
   }
 
   .net Side
 
   using System;
   using System.Collections.Generic;
   using System.Linq;
   using System.Text;
   using System.Threading.Tasks;
   using System.Security.Cryptography.X509Certificates;
   using System.Security.Cryptography;
   using System.Configuration;
 
   namespace WCF_DAO.DAO
   {
      public class CertDAO
      {
         public String getCertExport()
         {
 
            String CertFilePath = ConfigurationManager.AppSettings[“CertFilePath"].ToString(); \\ File Path : C:\Cert\Cert.pfx"
            String CertFilePassword = ConfigurationManager.AppSettings[“CertFilePasswd"].ToString(); \\ In PlainText
 
            X509Certificate2 cert = new X509Certificate2(CertFilePath, CertFilePassword);
 
            return ExportToPEM(cert);
 
         }
 
         private string ExportToPEM(X509Certificate2 cert)
         {
 
            StringBuilder builder = new StringBuilder();
 
            String CertHash = Convert.ToBase64String(cert.Export(X509ContentType.Cert), Base64FormattingOptions.InsertLineBreaks);
 
            SHA512Managed sha = new SHA512Managed();
 
            return Convert.ToBase64String(sha.ComputeHash(Encoding.ASCII.GetBytes(CertHash))).ToString();
 
         }
      }
   }