Search code examples
encryptioncryptographybouncycastleasn.1elliptic-curve

Which of these "Safe" ECC curves are available in Bouncy Castle?


I'm trying to figure out which "safe" ECC curves are supported in Bouncy Castle. I found a few curves in the namespace Org.BouncyCastle.Asn1, but they are hard to find, and I'm sure I'm missing some.

Do any of the following curves exist in Bouncy Castle? (should I use them?)

  • M-221
  • E-222
  • Curve1174
  • Curve25519
  • E-382
  • M-383
  • Curve383187
  • Curve41417
  • Ed448-Goldilocks
  • M-511
  • E-521

Solution

  • I found an (apparently) definitive list of the ECC curves supported by Bouncy Castle. It seems to match the named curves defined in the codebase.

    None of the curve names match the names you listed.

    However, there is nothing preventing you from tracking down1 and using the parameters that define any of the curves you have listed to define an ECParameterSpec ... or a ECNamedCurveParameterSpec.


    1 - The parameters are in the paper you linked to. According to @mentalurg, it is not simple to get them into the correct form. However, this is an open source project, so if >>you<< care about this, there is nothing preventing you from doing the work and submitting a patch. Or if you don't have the time, sponsoring them to do the work for you.