Hi Max:

In Java plugin, we display the detail information of certificate in both Java Control panel and certificate dialog box from security warning, we also extract entension from certificate to make sure they are valid to use.

Currently we are parsing the X509Certificate object to extract all the detail information of certificate, the fields of certificate we need to display are match to IE browser certificate information.

Yes, it would be helpful to provide a API/Object for deployment code to retrieve those information.

Dennis

Weijun Wang wrote:

Hi All

I was talking with Xuelei on how to better display certificate info. There are 3 cases we can currently think of:

1. debug output
2. keytool/jarsigner output
3. Java plugin display

The 1st one is the most primitive one and can be a single string, the 2nd is also a string but have some format and needs to localized, the third is a series of Swing controls.

But the contents of all 3 are the same, and hopefully can be provided in a single method. Each consumer can just display it in its own style, with no need to understand Certificate fields, OIDs, etc. It's just like XSLT transformation of XML files.

So what shall I do? Let toString() outputs a long string in XML or JSON?

Or, create a new method describe() or toDescription() that returns a UnmodifiableMap (based on a LinkedHashMap to preserve order)?

I prefer the latter because there is no need to parse the output, and at least in the case of certificate, since a certificate contains extensions, it's very easy to stuff several maps inside another one. The map's keys are strings, and values can be another map or a simple data object, say, primitive, string, or Date.

So this needs a new interface Descriptable. It can either be:

   interface sun.security.util.Descriptable;
   sun.security.x509.X509CertImpl implements Descriptable;
   sun.security.x509.Extension implements Descriptable;

or

   interface java.security.Descriptable;
   java.security.cert.X509Certificate implements Descriptable;
   java.security.cert.Extension implements Descriptable;

or if there are other people find it useful, it can be inside the java.util package.

What's your ideas? Do you also need such a method?

Thanks
Max

Reply via email to