Java CertPath example: read CertPath from file
May 24, 2011 09:15:14 Last update: May 24, 2011 09:15:14
Java built-in X.509 certificate factory reads CertPath objects encoded in
Example code:
PKCS7 files can also be generated by openssl from certificate file(s):
Convert PKCS7 from DER to PEM:
Sample PKCS7 file:
PkiPath or PKCS7 formats. The META-INF/<key_alias>.RSA file generated by Java jarsigner is in PKCS7 format.
Example code:
import java.util.*; import java.io.*; import java.security.cert.*; public class ReadCertPath { public static void main(String[] args) throws Exception { ReadCertPath r = new ReadCertPath(); r.readCertPath(new File("CertPathInPKCS7.pem")); } public void readCertPath(File f) throws Exception { CertificateFactory cf = CertificateFactory.getInstance("X.509"); InputStream in = new FileInputStream(f); CertPath certPath = cf.generateCertPath(in, "PKCS7"); in.close(); List<?extends Certificate> certs = certPath.getCertificates(); for (Certificate cert: certs) { System.out.println("Cert:\n===================\n" + cert.toString() + "\n"); } } }
PKCS7 files can also be generated by openssl from certificate file(s):
openssl crl2pkcs7 -nocrl -certfile Certs.pem -out certs.pk7 -outform der
Convert PKCS7 from DER to PEM:
openssl pkcs7 -in certs.pk7 -inform DER -out certs.pem -outform PEM
Sample PKCS7 file:
-----BEGIN PKCS7----- MIIERwYJKoZIhvcNAQcCoIIEODCCBDQCAQExADALBgkqhkiG9w0BBwGgggQaMIIB 5TCCAU6gAwIBAgIETHbZXzANBgkqhkiG9w0BAQUFADA3MQswCQYDVQQGEwJVUzEQ MA4GA1UEChMHQW5kcm9pZDEWMBQGA1UEAxMNQW5kcm9pZCBEZWJ1ZzAeFw0xMDA4 MjYyMTE1MTFaFw0xMTA4MjYyMTE1MTFaMDcxCzAJBgNVBAYTAlVTMRAwDgYDVQQK EwdBbmRyb2lkMRYwFAYDVQQDEw1BbmRyb2lkIERlYnVnMIGfMA0GCSqGSIb3DQEB AQUAA4GNADCBiQKBgQCZ7BuGdUN0W28Uu8zECnFQ8RX6MlNuavqWZNFK6dVfOrs1 b95UhqATDoPESWJi8AvnVthm7lJdTbFKb5AP7oR162kRTCxQcteQT3z7ZbHCxLVV etqQhzzfy8AHAnTyBpSYNbqoP1OKlxczD7scR3oaVkoedUqH9bkwjLPNhCV+NQID AQABMA0GCSqGSIb3DQEBBQUAA4GBAJJ8aQibmBC0uTXMzvPU9R023QK9xlkjIq4O Ti6Z7z6o+ND6gWuCC1PLdWgug14vwEaWKkNiNgpWL+VXTX4JGGS3tBPnNLNwRuoq pftG/+ooBs1YWe0ilo63oal+udscklL5lnMWlJ+fNL00X3kayEKhLL1xvK9uc4OT Hod3CrmfMIICLTCCAZYCCQDqN/hYgXobVjANBgkqhkiG9w0BAQUFADA3MQswCQYD VQQGEwJVUzEQMA4GA1UEChMHQW5kcm9pZDEWMBQGA1UEAxMNQW5kcm9pZCBEZWJ1 ZzAeFw0xMTA1MTgxODI0MDJaFw0xMjA1MTcxODI0MDJaMH8xCzAJBgNVBAYTAlVT MQswCQYDVQQIEwJUWDETMBEGA1UEBxMKUmljaGFyZHNvbjEdMBsGA1UEChMUSm9l J3MgRmx5aW5nIFNhdWNlcnMxHTAbBgNVBAsTFEpvZSdzIEZseWluZyBTYXVjZXJz MRAwDgYDVQQDEwdJVCBEZXB0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCm MsR0CvyVljOU7hOk2ilWTN3ARlhqje9QZcmWaAS64S6Wnfd9ie3S8/RcMH3g2RXY FXfqLvnHFmFW7opb2TCrRYjseLE8KolKapOoDYxLATDtJgGveTcc0FN8ruS7/iXX /2ddBELoBOW+TjFPP02wX+RjbDR1yaHKDCjs8pkmGwIDAQABMA0GCSqGSIb3DQEB BQUAA4GBAJdQ1WrpdsmmeRgsbfu9LYrR2dAvihNGBXG0lpPjewKaKAM9CqBWYhLH ZhBWWOmCRpteyZgr3aJ9Ve34Y3tQ/1JAy9BWu/mCd+dfcSJaO1dA5laMOjzLHKbx ChAn3uhFVujEQfZN3cnmi6OK44yDwk24sB6+FLMwwtfANjEKnjVToQAxAA== -----END PKCS7-----