MainClass.java Source code

Java tutorial

Introduction

Here is the source code for MainClass.java

Source

import java.io.FileInputStream;
import java.math.BigInteger;
import java.security.KeyStore;
import java.security.PublicKey;
import java.security.cert.CertPath;
import java.security.cert.CertPathValidator;
import java.security.cert.Certificate;
import java.security.cert.CertificateFactory;
import java.security.cert.PKIXCertPathValidatorResult;
import java.security.cert.PKIXParameters;
import java.security.cert.TrustAnchor;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.List;

public class MainClass {
    public static void main(String args[]) throws Exception {
        CertificateFactory cf = CertificateFactory.getInstance("X.509");

        List mylist = new ArrayList();

        FileInputStream in = new FileInputStream(args[0]);
        Certificate c = cf.generateCertificate(in);
        mylist.add(c);

        CertPath cp = cf.generateCertPath(mylist);

        FileInputStream kin = new FileInputStream(args[0]);
        KeyStore ks = KeyStore.getInstance("JKS");
        ks.load(kin, args[1].toCharArray());

        PKIXParameters params = new PKIXParameters(ks);
        params.setRevocationEnabled(false);

        CertPathValidator cpv = CertPathValidator.getInstance("PKIX");

        PKIXCertPathValidatorResult result = (PKIXCertPathValidatorResult) cpv.validate(cp, params);

        PublicKey pbk = result.getPublicKey();
        byte[] pkenc = pbk.getEncoded();
        BigInteger pk = new BigInteger(pkenc);
        System.out.println(pk.toString(16));

        TrustAnchor anc = result.getTrustAnchor();
        X509Certificate xc = anc.getTrustedCert();
        System.out.println(xc.getSubjectDN());
        System.out.println(xc.getIssuerDN());

    }
}