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

Reply via email to