/*
* Copyright (C) 2012 Intel Corporation
* All rights reserved.
*/
package com.intel.mtwilson.crypto;
import com.intel.dcsg.cpg.x509.X509Util;
import java.io.IOException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import org.apache.commons.codec.binary.Base64;
import org.junit.Test;
/**
*
* @author jbuhacoff
*/
public class X509Test {
// see RsaUtil.toX509Certificate(String)
@Test
public void getAikCertificate() throws CertificateException, IOException {
String pem = "-----BEGIN CERTIFICATE-----\nMIICuzCCAaOgAwIBAgIGATk0IZZzMA0GCSqGSIb3DQEBBQUAMBkxFzAVBgNVBAMMDkhJU19Qcml2\nYWN5X0NBMB4XDTEyMDgxNzEwMjk0MFoXDTIyMDgxNzEwMjk0MFowADCCASIwDQYJKoZIhvcNAQEB\nBQADggEPADCCAQoCggEBAOQp/gShT6ahgewNVksE4+ChgHKX7O1a8O+m9caEkQlOKBO2BqHKoPCd\nLaBJTeEd+3VHVkLqD85hrf34PnO97ZLzMItIqvfR0SuvW4FstUF2G0BlRFsfpujxYwMjVqrWl3pN\nC0QAp0kT/ecqltl+5FcC06UHSTDQsInEKWqBHd7/9bW7opTMD54R6Dxk5xObi5QDG1jq4/etyaG5\nzKZAmai+WJpAIICZRqE7n80CtbQQZXGLtJcUnyqgjJQxzvn57o8VY+JEMs7n1txhzPhRymDXi3Js\n/Al7/zp4tqdNTtdzBPIi7t99rNTRHsOxUQeKfnwyOZQbeomhHfLzzIX7850CAwEAAaMiMCAwHgYD\nVR0RAQH/BBQwEoEQSElTIElkZW50aXR5IEtleTANBgkqhkiG9w0BAQUFAAOCAQEABUXh2KsbZYae\nxjfot4Wpm9sJDvMb5vxoKhvpLhxEYcg+H5DcN4SSFAcTOidhcz5PfyK+UN8lkm03UIRIiFvNiF3T\nEwgTuqjTfOg2HF9jJbg0lID8h203ALefCCAD4vdODm5NOOlCCzm5yXHRv/hRE4ntrwF1SgGrERg5\nLJaHng35XUDsEJrHqyZfNlJRchRbyEzpy62gQqf6X6jSI3Rb6gBHz9Clzu/fqBqAD6WZx7gZY1yc\nNZ79XGREDljsyB9LXGD6P7K4HsPv69gWh7DDj48u/jvJKS7WtKMqiYTQ4dD3igLuxZhtC6LIcPoQ\ndxJD6ypQoF26HkjWo0/9s6E9Bg==\n-----END CERTIFICATE-----";
System.out.println("PEM: "+pem);
String base64 = pem.replace("-----BEGIN CERTIFICATE-----","").replace("-----END CERTIFICATE-----","").replaceAll("\\s+", "");
System.out.println("Base64: "+base64);
X509Certificate cert = X509Util.decodeDerCertificate(Base64.decodeBase64(base64));
cert.checkValidity();
System.out.println("Subject: "+cert.getSubjectX500Principal().getName());
System.out.println("Issuer: "+cert.getIssuerX500Principal().getName());
System.out.println("Signature Algorithm: "+cert.getSigAlgName());
}
}