[PATCH]: Support for brainpool curves from CurveDB in SunEC

Adam Petcher adam.petcher at oracle.com
Fri Dec 15 19:50:11 UTC 2017


On 12/15/2017 11:31 AM, Tobias Wagner wrote:

> Hi,
>
> in our current project, we have the requirement to support brainpool curves for TLS connections (RFC 7027).
>
> As part of this requirement, we introduced the brainpoolP*r1 curves to SunEC, as they are already known in sun.security.util.CurveDB. It does not introduce the twisted curves from RFC 5639. We want to share this patch, hoping it might be useful for others. Especially for public funded projects (e.g. health care or eID) in Europe, the use or at least support for these curves is often mandatory.

Great! You are going to make it a happy Christmas for a lot of people. I 
would be happy to sponsor this change, and I have a few initial 
requests/comments/questions before I look at the patch in more detail:

1) Please include a test which checks the new curves against some test 
vectors. Ideally, these vectors come from a standard (e.g. RFC 7027 has 
some).
2) The existing tests will check for some form of correctness for all 
enabled curves, but this doesn't ensure that the Brainpool curves are 
enabled. So you should also add a test that ensures that the new curves 
are enabled. This can be combined with the previously mentioned test 
against the test vectors.
3) We can't push this change to the repo without also fixing 
JDK-8189594. So I think you have a couple of options. Either submit a 
separate patch for JDK-8189594 first (which may be tricky because you 
will need to find a way to write a test for it) or include the fix for 
JDK-8189594 in this patch.
4) How important are the 224-bit and smaller curves? We can't use them 
in TLS, and I don't think we should add curves that are already obsolete 
unless there is a good reason.




More information about the security-dev mailing list