Creating an EC Public Key using Named Curves
Vincent Ryan
vincent.x.ryan at oracle.com
Tue Oct 8 15:41:23 UTC 2013
Currently, there is no public API for named curves.
However you can generate named curves using the SunEC provider and the ECParameterSpec class.
For example,
AlgorithmParameters parameters = AlgorithmParameters.getInstance("EC", "SunEC");
parameters.init(new ECGenParameterSpec("secp256r1"));
ECParameterSpec ecParameters = parameters.getParameterSpec(ECParameterSpec.class);
return KeyFactory.getInstance("EC", "SunEC").generatePublic(new ECPublicKeySpec(new ECPoint(x, y), ecParameters));
It's not elegant but the list of supported named curves can be extracted from the AlgorithmParameters.EC SupportedCurves
property. For example,
String[] curves = Security.getProvider("SunEC")
.getProperty("AlgorithmParameters.EC SupportedCurves")
.split("\\|");
for (String curve : curves) {
System.out.println(curve.substring(1, curve.indexOf(",")));
}
On 8 Oct 2013, at 13:53, Anders Rundgren wrote:
> If you have the X and Y points and the name of a public key you can create a ECPublicKey using BouncyCastle.
> I cannot find any counterpart in JDK 7. What am I missing?
>
> BC:
>
> return KeyFactory.getInstance ("EC").generatePublic (new ECPublicKeySpec (new ECPoint (x, y), new ECNamedCurveSpec (name,...)));
>
> Cheers
> Anders
More information about the security-dev
mailing list