Search in sources :

Example 16 with CertificateX509Key

use of android.sun.security.x509.CertificateX509Key in project jss by dogtagpki.

the class CertPrettyPrint method X509toString.

public String X509toString(Locale clientLocale) {
    // get I18N resources
    ResourceBundle resource = ResourceBundle.getBundle(PrettyPrintResources.class.getName());
    DateFormat dateFormater = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, clientLocale);
    // 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();
        // get correct instance of key
        PublicKey pKey = mX509Cert.getPublicKey();
        X509Key key = null;
        if (pKey instanceof CertificateX509Key) {
            CertificateX509Key certKey = (CertificateX509Key) pKey;
            key = (X509Key) certKey.get(CertificateX509Key.KEY);
        }
        if (pKey instanceof X509Key) {
            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");
        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.getIssuerX500Principal() + "\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
        if (TimeZone.getDefault() != null) {
            tz = TimeZone.getDefault().getDisplayName(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");
        } else {
            // Append timezone ID
            sb.append(pp.indent(16) + 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);
        }
        // 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");
        } else {
            // Append timezone ID
            sb.append(pp.indent(16) + resource.getString(PrettyPrintResources.TOKEN_NOT_AFTER) + notAfter + " " + tzid + "\n");
        }
        // XXX I18N SubjectDN ?
        sb.append(pp.indent(12) + resource.getString(PrettyPrintResources.TOKEN_SUBJECT) + mX509Cert.getSubjectX500Principal() + "\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);
        sb.append(pp.indent(12) + resource.getString(PrettyPrintResources.TOKEN_EXTENSIONS) + "\n");
        if (extensions != null)
            for (int i = 0; i < extensions.size(); i++) {
                Extension ext = extensions.elementAt(i);
                ExtPrettyPrint extpp = new ExtPrettyPrint(ext, 16);
                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");
        sb.append(pp.toHexString(mX509Cert.getSignature(), 16, 16));
        // fingerprints
        String[] hashes = new String[] { "MD2", "MD5", "SHA-1", "SHA-256", "SHA-512" };
        StringBuffer certFingerprints = new StringBuffer();
        sb.append(pp.indent(8) + "FingerPrint\n");
        for (int i = 0; i < hashes.length; i++) {
            MessageDigest md = MessageDigest.getInstance(hashes[i]);
            md.update(mX509Cert.getEncoded());
            certFingerprints.append(pp.indent(12) + hashes[i] + ":\n" + pp.toHexString(md.digest(), 16, 16));
        }
        sb.append(certFingerprints.toString());
    } catch (Exception e) {
        e.printStackTrace();
    }
    return sb.toString();
}
Also used : X509CertInfo(org.mozilla.jss.netscape.security.x509.X509CertInfo) PublicKey(java.security.PublicKey) CertificateExtensions(org.mozilla.jss.netscape.security.x509.CertificateExtensions) X509Key(org.mozilla.jss.netscape.security.x509.X509Key) CertificateX509Key(org.mozilla.jss.netscape.security.x509.CertificateX509Key) CertificateX509Key(org.mozilla.jss.netscape.security.x509.CertificateX509Key) Extension(org.mozilla.jss.netscape.security.x509.Extension) DateFormat(java.text.DateFormat) ResourceBundle(java.util.ResourceBundle) MessageDigest(java.security.MessageDigest)

Example 17 with CertificateX509Key

use of android.sun.security.x509.CertificateX509Key in project jss by dogtagpki.

the class X509CertTest method createX509CertInfo.

public static X509CertInfo createX509CertInfo(X509Key x509key, BigInteger serialno, CertificateIssuerName issuernameObj, String subjname, Date notBefore, Date notAfter, String alg) throws Exception {
    X509CertInfo info = new X509CertInfo();
    info.set(X509CertInfo.VERSION, new CertificateVersion(CertificateVersion.V3));
    info.set(X509CertInfo.SERIAL_NUMBER, new CertificateSerialNumber(serialno));
    if (issuernameObj != null) {
        info.set(X509CertInfo.ISSUER, issuernameObj);
    }
    info.set(X509CertInfo.SUBJECT, new CertificateSubjectName(new X500Name(subjname)));
    info.set(X509CertInfo.VALIDITY, new CertificateValidity(notBefore, notAfter));
    info.set(X509CertInfo.ALGORITHM_ID, new CertificateAlgorithmId(AlgorithmId.get(alg)));
    info.set(X509CertInfo.KEY, new CertificateX509Key(x509key));
    info.set(X509CertInfo.EXTENSIONS, new CertificateExtensions());
    return info;
}
Also used : CertificateSerialNumber(org.mozilla.jss.netscape.security.x509.CertificateSerialNumber) CertificateSubjectName(org.mozilla.jss.netscape.security.x509.CertificateSubjectName) X509CertInfo(org.mozilla.jss.netscape.security.x509.X509CertInfo) CertificateVersion(org.mozilla.jss.netscape.security.x509.CertificateVersion) CertificateValidity(org.mozilla.jss.netscape.security.x509.CertificateValidity) CertificateExtensions(org.mozilla.jss.netscape.security.x509.CertificateExtensions) X500Name(org.mozilla.jss.netscape.security.x509.X500Name) CertificateAlgorithmId(org.mozilla.jss.netscape.security.x509.CertificateAlgorithmId) CertificateX509Key(org.mozilla.jss.netscape.security.x509.CertificateX509Key)

Aggregations

CertificateX509Key (sun.security.x509.CertificateX509Key)13 CertificateAlgorithmId (sun.security.x509.CertificateAlgorithmId)12 CertificateSerialNumber (sun.security.x509.CertificateSerialNumber)12 CertificateValidity (sun.security.x509.CertificateValidity)12 X509CertInfo (sun.security.x509.X509CertInfo)12 BigInteger (java.math.BigInteger)11 CertificateVersion (sun.security.x509.CertificateVersion)11 X509CertImpl (sun.security.x509.X509CertImpl)11 AlgorithmId (sun.security.x509.AlgorithmId)10 X500Name (sun.security.x509.X500Name)9 CertificateIssuerName (sun.security.x509.CertificateIssuerName)8 CertificateSubjectName (sun.security.x509.CertificateSubjectName)8 PrivateKey (java.security.PrivateKey)7 SecureRandom (java.security.SecureRandom)7 Date (java.util.Date)6 CertificateException (java.security.cert.CertificateException)5 PublicKey (java.security.PublicKey)3 CertificateExtensions (org.mozilla.jss.netscape.security.x509.CertificateExtensions)3 CertificateX509Key (org.mozilla.jss.netscape.security.x509.CertificateX509Key)3 X509CertInfo (org.mozilla.jss.netscape.security.x509.X509CertInfo)3