package org.aoc.applet.servidor.sample;

import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;
import java.util.logging.Logger;

import org.catcert.psis.PSISValidation;
import org.catcert.psis.PSISValidationException;

/**
 * Exemple de com validar un certificat contra PSIS amb les classes de l'applet
 * de signatura.
 * 
 * Aquest codi es distribueix només a mode d'exemple.
 * 
 * @author aciffone
 *
 */
public class ValidadorCertificat {

	private static Logger log = Logger.getLogger(ValidadorCertificat.class.getName());
	
	public static void main(String args[]) throws PSISValidationException, CertificateException{

		// instanciem un certificat de proves
		CertificateFactory cf = CertificateFactory.getInstance("X509");
		Certificate certificatExpirat = cf.generateCertificate(ValidadorCertificat.class.getResourceAsStream("/org/aoc/applet/servidor/resources/CERT_EXPIRAT.crt"));
		Certificate certificat = cf.generateCertificate(ValidadorCertificat.class.getResourceAsStream("/org/aoc/applet/servidor/resources/CERT_PROVES.crt"));
		
		// validem contra PSIS PRE
		PSISValidation validator = new PSISValidation();
		validator.setHost(PSISValidation.PSIS_PRE);
		boolean esValid = validator.Validate(certificatExpirat.getEncoded());
		
		log.info("El certificat expirat validat contra PSIS és valid? : " + esValid);
		
		// ara validem un certificat valid
		esValid = validator.Validate(certificat.getEncoded());
		
		log.info("El certificat valid, validat contra PSIS és valid? : " + esValid);

	}
}
