Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
//License from project: Open Source License 

import java.security.cert.CertPath;
import java.security.cert.CertPathValidator;

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.Arrays;
import java.util.Collections;

public class Main {
    public static PKIXCertPathValidatorResult validateCertificate(X509Certificate entity,
            X509Certificate intermediate, X509Certificate CA) throws Exception {
        /*  KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
          ks.load(null, null);
          String alias = "validationCA";
          ks.setCertificateEntry(alias, CA);
            
         */
        /*  KeyStore intermediatesStore = KeyStore.getInstance(KeyStore.getDefaultType());
        intermediatesStore.load(null, null);
        String alias_intermediate = "validationIntermediate";
        intermediatesStore.setCertificateEntry(alias_intermediate, intermediate);*//*
                                                                                        
                                                                                        
                                                                                    X509CertSelector target = new X509CertSelector();
                                                                                    target.setCertificate(entity);
                                                                                    PKIXBuilderParameters params = new PKIXBuilderParameters(ks, target);
                                                                                    ArrayList<X509Certificate> chain = new ArrayList<>();
                                                                                    chain.add(intermediate);
                                                                                    chain.add(intermediate);
                                                                                    CertStoreParameters intermediates = new CollectionCertStoreParameters(chain);
                                                                                    params.addCertStore(CertStore.getInstance("Collection", intermediates));
                                                                                    CertPathBuilder builder = CertPathBuilder.getInstance("PKIX");
                                                                                     *//*
                                                                                        * If build() returns successfully, the certificate is valid. More details
                                                                                        * about the valid path can be obtained through the PKIXBuilderResult.
                                                                                        * If no valid path can be found, a CertPathBuilderException is thrown.
                                                                                        *//*
                                                                                              PKIXCertPathBuilderResult result = (PKIXCertPathBuilderResult)builder.build(params);
                                                                                              return result;*/

        CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
        CertPath certPath = certificateFactory
                .generateCertPath(Arrays.asList(new X509Certificate[] { entity, intermediate }));

        TrustAnchor trustAnchor = new TrustAnchor(CA, null);

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

        PKIXParameters pkixParams = new PKIXParameters(Collections.singleton(trustAnchor));
        pkixParams.setRevocationEnabled(true);

        return (PKIXCertPathValidatorResult) cpv.validate(certPath, pkixParams);
    }
}