import java.io.FileInputStream; import java.security.PublicKey; import java.security.cert.Certificate; import java.security.cert.CertificateFactory; public class MainClass { public static void main(String args[]) throws Exception { Certificate[] certpath = new Certificate[args.length - 1]; CertificateFactory cf = CertificateFactory.getInstance("X.509"); int i; for (i = 0; i < args.length - 1; i++) { FileInputStream in = new FileInputStream(args[i]); certpath[i] = cf.generateCertificate(in); } FileInputStream in = new FileInputStream(args[i]); Certificate trust = cf.generateCertificate(in); boolean pass = false; String reason = ""; for (i = 0; i < certpath.length; i++) { try { PublicKey pbk; if (i == certpath.length - 1) { pbk = trust.getPublicKey(); } else { pbk = certpath[i + 1].getPublicKey(); } certpath[i].verify(pbk); pass = true; } catch (Exception e) { pass = false; reason += i + " " + e.toString(); break; } } System.out.println(pass); } }