/** * Calculates the hash of the certificate known as the "thumbprint" and returns it as a string * representation. * * @param cert The certificate to hash. * @param algorithm The hash algorithm to use. * @return The SHA-1 hash of the certificate. * @throws CertificateException */ private static String getThumbprint(X509Certificate cert, String algorithm) throws CertificateException { MessageDigest digest; try { digest = MessageDigest.getInstance(algorithm); } catch (NoSuchAlgorithmException e) { throw new CertificateException(e); } byte[] encodedCert = cert.getEncoded(); StringBuilder sb = new StringBuilder(encodedCert.length * 2); Formatter f = new Formatter(sb); try { for (byte b : digest.digest(encodedCert)) f.format("%02x", b); } finally { f.close(); } return sb.toString(); }
public static void main(String[] args) throws Exception { Provider p = new com.sun.exp.provider.EXP(); Security.insertProviderAt(p, 1); Object[] signers = p.getClass().getSigners(); if (signers == null || signers.length <= 0) { throw new SecurityException("Test Failed"); } else { for (int i = 0; i < signers.length; i++) { System.out.println("signer [" + i + "] = " + signers[i]); } } MessageDigest md = MessageDigest.getInstance("SHA1"); System.out.println("test passed"); }