Hi Max,

Very high level comments:
- Builder::selfSign and Builder::sign are the two methods building the 
X509Certificate.

Both @throws java.lang.IllegalStateException - if the builder is initialized 
with one of the asCA methods 

It reads to me that there is no other method to generate a certificate from a 
builder created from Builder::fromKeyPair factory method.

- is clearExtensions needed only for reusing the Builder?  Would it be 
reasonable to require it to create a Builder that I suppose it’s not too 
expensive?  In that case, the clearExtensions is not needed.

Extension::newSubjectAlternativeNameExtension(boolean isCritical, List<?>... 
names)
Extension::newIssuerAlternativeNameExtension(boolean isCritical, List<?>... 
names)
Extension::newSubjectInformationAccessExtension(List<?>... accessDescriptions)
Extension::newAuthorityInformationAccessExtension(List<?>... accessDescriptions)
- this takes List<?> with 3 entries, each of which is of a specified type.

There may be other better alternatives to define this API.  A builder may fit 
well that can take 3 parameters for each name/accessDescription such that it 
can be statically checked.  Have you considered other options?

Mandy


> On Dec 15, 2015, at 6:26 PM, Wang Weijun <weijun.w...@oracle.com> wrote:
> 
> Hi All
> 
> Here is an updated webrev
> 
>  http://cr.openjdk.java.net/~weijun/8058778/webrev.05/
> 
> Spec change is at
> 
>  
> http://cr.openjdk.java.net/~weijun/8058778/webrev.05/specdiff/java/security/cert/package-summary.html
> 
> These changes are made:
> 
> 1. The Builder is moved into java.security.cert.X509Certificate as an inner 
> class
> 
> 2. There is no more addExtension(String,String,boolean) that tries to parse 
> input value strings (leave them to keytool). Each supported extension has its 
> own addXXXExtension() method in java.security.cert.X509Extension. The input 
> format is the same as the output format of X509Certificate.getXXX() for each 
> extension type. This relieves the requirement to define interfaces for 
> GeneralNames etc at the moment.
> 
> 3. keytool directly calls X509Certificate.Builder now.
> 
> No CertificateRequest at the moment. Builder still using byte[] which is PKCS 
> #10 encoded.
> 
> Many thanks to Mandy, Larry, and Sean for your comments. Mike, we will add 
> more methods later when they are needed.
> 
> --Max
> 

Reply via email to