Java tutorial
/************************************************************************* * * * EJBCA: The OpenSource Certificate Authority * * * * This software is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or any later version. * * * * See terms of license at gnu.org. * * * *************************************************************************/ package org.ejbca.ui.cli; import java.io.FileInputStream; import java.security.cert.Certificate; import java.util.Collection; import java.util.Iterator; import org.bouncycastle.asn1.ASN1InputStream; import org.bouncycastle.asn1.DERObject; import org.bouncycastle.asn1.util.ASN1Dump; import org.ejbca.util.CertTools; import org.ejbca.util.CryptoProviderTools; /** * Dumps PEM or DER file as readable ASN1' * * @version $Id: Asn1Dump.java 10934 2010-12-21 13:39:01Z anatom $ */ public class Asn1Dump extends BaseCommand { public String getMainCommand() { return null; } public String getSubCommand() { return "asn1dump"; } public String getDescription() { return "Dumps PEM or DER file as readable ASN1"; } public void execute(String[] args) throws ErrorAdminCommandException { if (args.length < 2) { getLogger().info( "Usage: " + getCommand() + " <filename-of-pem-encoded-certs|filename-of-der-encoded-asn1>"); return; } try { String filename = args[1]; boolean iscert = true; Collection<Certificate> coll = null; CryptoProviderTools.installBCProvider(); try { coll = CertTools.getCertsFromPEM(filename); if (coll.isEmpty()) { iscert = false; } } catch (Exception e) { iscert = false; } if (!iscert) { ASN1InputStream ais = new ASN1InputStream(new FileInputStream(filename)); DERObject obj = ais.readObject(); String dump = ASN1Dump.dumpAsString(obj); getLogger().info(dump); } else { Iterator<Certificate> iter = coll.iterator(); while (iter.hasNext()) { Certificate cert = iter.next(); String dump = ASN1Dump.dumpAsString(cert); getLogger().info(dump); } } } catch (Exception e) { throw new ErrorAdminCommandException(e); } } }