diff options
Diffstat (limited to 'pki/base/util/src/netscape/security/util/CertPrettyPrint.java')
-rw-r--r-- | pki/base/util/src/netscape/security/util/CertPrettyPrint.java | 238 |
1 files changed, 115 insertions, 123 deletions
diff --git a/pki/base/util/src/netscape/security/util/CertPrettyPrint.java b/pki/base/util/src/netscape/security/util/CertPrettyPrint.java index cd103d307..caf7e6481 100644 --- a/pki/base/util/src/netscape/security/util/CertPrettyPrint.java +++ b/pki/base/util/src/netscape/security/util/CertPrettyPrint.java @@ -17,6 +17,7 @@ // --- END COPYRIGHT BLOCK --- package netscape.security.util; + import java.security.MessageDigest; import java.security.PublicKey; import java.security.cert.Certificate; @@ -37,55 +38,54 @@ import org.mozilla.jss.asn1.SET; import org.mozilla.jss.pkcs7.ContentInfo; import org.mozilla.jss.pkcs7.SignedData; + /** - * This class will display the certificate content in predefined format. - * + * This class will display the certificate content in predefined + * format. + * * @author Jack Pan-Chen * @version $Revision$, $Date$ */ -public class CertPrettyPrint { +public class CertPrettyPrint +{ - /* - * ========================================================== constants - * ========================================================== - */ + /*========================================================== + * constants + *==========================================================*/ private final static String CUSTOM_LOCALE = "Custom"; - /* - * ========================================================== variables - * ========================================================== - */ + /*========================================================== + * variables + *==========================================================*/ private X509CertImpl mX509Cert = null; private Certificate mCert = null; private PrettyPrintFormat pp = null; private byte[] mCert_b = null; - /* - * ========================================================== constructors - * ========================================================== - */ + /*========================================================== + * constructors + *==========================================================*/ public CertPrettyPrint(Certificate cert) { if (cert instanceof X509CertImpl) mX509Cert = (X509CertImpl) cert; - + pp = new PrettyPrintFormat(":"); } - + public CertPrettyPrint(byte[] certb) { mCert_b = certb; pp = new PrettyPrintFormat(":"); } - /* - * ========================================================== public methods - * ========================================================== - */ + /*========================================================== + * public methods + *==========================================================*/ /** - * This method return string representation of the certificate in predefined - * format using specified client local. I18N Support. - * + * This method return string representation of the certificate + * in predefined format using specified client local. I18N Support. + * * @param clientLocale Locale to be used for localization * @return string representation of the certificate */ @@ -93,25 +93,25 @@ public class CertPrettyPrint { if (mX509Cert != null) return X509toString(clientLocale); - else if (mCert_b != null) + else if (mCert_b != null) return pkcs7toString(clientLocale); else return null; } - + public String pkcs7toString(Locale clientLocale) { String content = ""; try { mX509Cert = new X509CertImpl(mCert_b); return toString(clientLocale); - } catch (Exception e) { + } catch (Exception e) { } ContentInfo ci = null; try { - ci = (ContentInfo) ASN1Util.decode(ContentInfo.getTemplate(), - mCert_b); + ci = (ContentInfo) + ASN1Util.decode(ContentInfo.getTemplate(), mCert_b); } catch (Exception e) { return ""; } @@ -128,11 +128,11 @@ public class CertPrettyPrint { SET certs = sd.getCertificates(); for (int i = 0; i < certs.size(); i++) { - org.mozilla.jss.pkix.cert.Certificate cert = (org.mozilla.jss.pkix.cert.Certificate) certs - .elementAt(i); + org.mozilla.jss.pkix.cert.Certificate cert = (org.mozilla.jss.pkix.cert.Certificate) certs.elementAt(i); X509CertImpl certImpl = null; try { - certImpl = new X509CertImpl(ASN1Util.encode(cert)); + certImpl = new X509CertImpl( + ASN1Util.encode(cert)); } catch (Exception e) { } @@ -150,17 +150,17 @@ public class CertPrettyPrint { public String stripCertBrackets(String s) { if (s == null) { - return s; - } + return s; + } - if ((s.startsWith("-----BEGIN CERTIFICATE-----")) - && (s.endsWith("-----END CERTIFICATE-----"))) { + if ((s.startsWith("-----BEGIN CERTIFICATE-----")) && + (s.endsWith("-----END CERTIFICATE-----"))) { return (s.substring(27, (s.length() - 25))); } // To support Thawte's header and footer - if ((s.startsWith("-----BEGIN PKCS #7 SIGNED DATA-----")) - && (s.endsWith("-----END PKCS #7 SIGNED DATA-----"))) { + if ((s.startsWith("-----BEGIN PKCS #7 SIGNED DATA-----")) && + (s.endsWith("-----END PKCS #7 SIGNED DATA-----"))) { return (s.substring(35, (s.length() - 33))); } @@ -187,24 +187,23 @@ public class CertPrettyPrint { public String X509toString(Locale clientLocale) { - // get I18N resources - ResourceBundle resource = ResourceBundle - .getBundle(PrettyPrintResources.class.getName()); + //get I18N resources + ResourceBundle resource = ResourceBundle.getBundle( + PrettyPrintResources.class.getName()); DateFormat dateFormater = DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.FULL, clientLocale); - // get timezone and timezone ID + //get timezone and timezone ID String tz = " "; String tzid = " "; - + StringBuffer sb = new StringBuffer(); try { - X509CertInfo info = (X509CertInfo) mX509Cert.get(X509CertImpl.NAME - + "." + X509CertImpl.INFO); - String serial2 = mX509Cert.getSerialNumber().toString(16) - .toUpperCase(); + X509CertInfo info = (X509CertInfo) mX509Cert.get( + X509CertImpl.NAME + "." + X509CertImpl.INFO); + String serial2 = mX509Cert.getSerialNumber().toString(16).toUpperCase(); - // get correct instance of key + //get correct instance of key PublicKey pKey = mX509Cert.getPublicKey(); X509Key key = null; @@ -217,98 +216,95 @@ public class CertPrettyPrint { key = (X509Key) pKey; } - // take care of spki - sb.append(pp.indent(4) - + resource - .getString(PrettyPrintResources.TOKEN_CERTIFICATE) - + "\n"); - sb.append(pp.indent(8) - + resource.getString(PrettyPrintResources.TOKEN_DATA) - + "\n"); - sb.append(pp.indent(12) - + resource.getString(PrettyPrintResources.TOKEN_VERSION) - + " v"); + //take care of spki + sb.append(pp.indent(4) + resource.getString( + PrettyPrintResources.TOKEN_CERTIFICATE) + "\n"); + sb.append(pp.indent(8) + resource.getString( + PrettyPrintResources.TOKEN_DATA) + "\n"); + sb.append(pp.indent(12) + resource.getString( + PrettyPrintResources.TOKEN_VERSION) + " v"); sb.append((mX509Cert.getVersion() + 1) + "\n"); - sb.append(pp.indent(12) - + resource.getString(PrettyPrintResources.TOKEN_SERIAL) - + "0x" + serial2 + "\n"); - // XXX I18N Algorithm Name ? - sb.append(pp.indent(12) - + resource.getString(PrettyPrintResources.TOKEN_SIGALG) - + mX509Cert.getSigAlgName() + " - " - + mX509Cert.getSigAlgOID() + "\n"); - // XXX I18N IssuerDN ? - sb.append(pp.indent(12) - + resource.getString(PrettyPrintResources.TOKEN_ISSUER) - + mX509Cert.getIssuerDN().toString() + "\n"); - sb.append(pp.indent(12) - + resource.getString(PrettyPrintResources.TOKEN_VALIDITY) - + "\n"); + sb.append(pp.indent(12) + resource.getString( + PrettyPrintResources.TOKEN_SERIAL) + "0x" + serial2 + "\n"); + //XXX I18N Algorithm Name ? + sb.append(pp.indent(12) + resource.getString( + PrettyPrintResources.TOKEN_SIGALG) + mX509Cert.getSigAlgName() + + " - " + mX509Cert.getSigAlgOID() + "\n"); + //XXX I18N IssuerDN ? + sb.append(pp.indent(12) + resource.getString( + PrettyPrintResources.TOKEN_ISSUER) + + mX509Cert.getIssuerDN().toString() + "\n"); + sb.append(pp.indent(12) + resource.getString( + PrettyPrintResources.TOKEN_VALIDITY) + "\n"); String notBefore = dateFormater.format(mX509Cert.getNotBefore()); String notAfter = dateFormater.format(mX509Cert.getNotAfter()); - // get timezone and timezone ID + //get timezone and timezone ID if (TimeZone.getDefault() != null) { tz = TimeZone.getDefault().getDisplayName( - TimeZone.getDefault().inDaylightTime( - mX509Cert.getNotBefore()), TimeZone.SHORT, - clientLocale); + TimeZone.getDefault().inDaylightTime( + mX509Cert.getNotBefore()), + TimeZone.SHORT, + clientLocale); tzid = TimeZone.getDefault().getID(); } // Specify notBefore if (tz.equals(tzid) || tzid.equals(CUSTOM_LOCALE)) { // Do NOT append timezone ID sb.append(pp.indent(16) - + resource - .getString(PrettyPrintResources.TOKEN_NOT_BEFORE) - + notBefore + "\n"); + + resource.getString( + PrettyPrintResources.TOKEN_NOT_BEFORE) + + notBefore + + "\n"); } else { // Append timezone ID sb.append(pp.indent(16) - + resource - .getString(PrettyPrintResources.TOKEN_NOT_BEFORE) - + notBefore + " " + tzid + "\n"); + + resource.getString( + PrettyPrintResources.TOKEN_NOT_BEFORE) + + notBefore + + " " + tzid + "\n"); } // re-get timezone (just in case it is different . . .) if (TimeZone.getDefault() != null) { tz = TimeZone.getDefault().getDisplayName( - TimeZone.getDefault().inDaylightTime( - mX509Cert.getNotAfter()), TimeZone.SHORT, - clientLocale); + TimeZone.getDefault().inDaylightTime( + mX509Cert.getNotAfter()), + TimeZone.SHORT, + clientLocale); } // Specify notAfter if (tz.equals(tzid) || tzid.equals(CUSTOM_LOCALE)) { // Do NOT append timezone ID sb.append(pp.indent(16) - + resource - .getString(PrettyPrintResources.TOKEN_NOT_AFTER) - + notAfter + "\n"); + + resource.getString( + PrettyPrintResources.TOKEN_NOT_AFTER) + + notAfter + + "\n"); } else { // Append timezone ID sb.append(pp.indent(16) - + resource - .getString(PrettyPrintResources.TOKEN_NOT_AFTER) - + notAfter + " " + tzid + "\n"); + + resource.getString( + PrettyPrintResources.TOKEN_NOT_AFTER) + + notAfter + + " " + tzid + "\n"); } - // XXX I18N SubjectDN ? - sb.append(pp.indent(12) - + resource.getString(PrettyPrintResources.TOKEN_SUBJECT) - + mX509Cert.getSubjectDN().toString() + "\n"); - sb.append(pp.indent(12) - + resource.getString(PrettyPrintResources.TOKEN_SPKI) - + "\n"); + //XXX I18N SubjectDN ? + sb.append(pp.indent(12) + resource.getString( + PrettyPrintResources.TOKEN_SUBJECT) + + mX509Cert.getSubjectDN().toString() + "\n"); + sb.append(pp.indent(12) + resource.getString( + PrettyPrintResources.TOKEN_SPKI) + "\n"); PubKeyPrettyPrint pkpp = new PubKeyPrettyPrint(key); sb.append(pkpp.toString(clientLocale, 16, 16)); - // take care of extensions - CertificateExtensions extensions = (CertificateExtensions) info - .get(X509CertInfo.EXTENSIONS); + //take care of extensions + CertificateExtensions extensions = (CertificateExtensions) + info.get(X509CertInfo.EXTENSIONS); - sb.append(pp.indent(12) - + resource.getString(PrettyPrintResources.TOKEN_EXTENSIONS) - + "\n"); + sb.append(pp.indent(12) + resource.getString( + PrettyPrintResources.TOKEN_EXTENSIONS) + "\n"); if (extensions != null) for (int i = 0; i < extensions.size(); i++) { Extension ext = (Extension) extensions.elementAt(i); @@ -317,23 +313,19 @@ public class CertPrettyPrint { sb.append(extpp.toString()); } - // take care of signature - sb.append(pp.indent(8) - + resource.getString(PrettyPrintResources.TOKEN_SIGNATURE) - + "\n"); - // XXX I18N Algorithm Name ? - sb.append(pp.indent(12) - + resource.getString(PrettyPrintResources.TOKEN_ALGORITHM) - + mX509Cert.getSigAlgName() + " - " - + mX509Cert.getSigAlgOID() + "\n"); - sb.append(pp.indent(12) - + resource.getString(PrettyPrintResources.TOKEN_SIGNATURE) - + "\n"); + //take care of signature + sb.append(pp.indent(8) + resource.getString( + PrettyPrintResources.TOKEN_SIGNATURE) + "\n"); + //XXX I18N Algorithm Name ? + sb.append(pp.indent(12) + resource.getString( + PrettyPrintResources.TOKEN_ALGORITHM) + + mX509Cert.getSigAlgName() + " - " + mX509Cert.getSigAlgOID() + "\n"); + sb.append(pp.indent(12) + resource.getString( + PrettyPrintResources.TOKEN_SIGNATURE) + "\n"); sb.append(pp.toHexString(mX509Cert.getSignature(), 16, 16)); // fingerprints - String[] hashes = new String[] { "MD2", "MD5", "SHA1", "SHA256", - "SHA512" }; + String[] hashes = new String[] {"MD2", "MD5", "SHA1", "SHA256", "SHA512"}; String certFingerprints = ""; sb.append(pp.indent(8) + "FingerPrint\n"); @@ -341,8 +333,8 @@ public class CertPrettyPrint { MessageDigest md = MessageDigest.getInstance(hashes[i]); md.update(mX509Cert.getEncoded()); - certFingerprints += pp.indent(12) + hashes[i] + ":\n" - + pp.toHexString(md.digest(), 16, 16); + certFingerprints += pp.indent(12) + hashes[i] + ":\n" + + pp.toHexString(md.digest(), 16, 16); } sb.append(certFingerprints); @@ -351,5 +343,5 @@ public class CertPrettyPrint { return sb.toString(); } - + } |