Information Security Stack Exchange is a question and answer site for information security professionals. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I tried searching online but can't seem to find whether or not OpenSSL support both NamedCurve.arbitrary_explicit_prime_curves and NamedCurve.arbitrary_explicit_char2_curves? As far as I can tell bouncy castle are the only SSL/TLS implementation that supports it, any others that anyone known of?

share|improve this question
openssl ciphers will list supported ECC ciphers. openssl ecparam -list_curves will list the specific curves. But the names you refer to I don't recognise in the openssl list. Even if openssl does support your curves under a different name, they might only be available for s_client mode (i.e. SSL/TLS but not files). And GnuPG 2.1 with ECC hasn't been released yet. – LateralFractal Oct 17 '13 at 10:46
up vote 2 down vote accepted

The code for arbitrary curves is in the library; see the source code, file crypto/ec/ec_lcl.h, in particular function ec_GFp_simple_group_set_curve(). The OpenSSL code includes specialized function for some specific curves (in particular NIST curves) but also has functions for the general case.

Code for encoding and decoding arbitrary curve parameters in ASN.1 (e.g. for use with a public key in an X.509 certificate) also appears to be present (in crypto/ec/ec_asn1.c). However, I doubt this code gets much used, since most of the rest of the world supports only a few specific curves; so even if the code is there, it was probably not thoroughly tested.

share|improve this answer
But it seems like we can't use arbitrary curves for SSL/TLS connection. Or am I right? – Tantaryu Oct 18 '13 at 1:28
Arbitrary curves are supported at the protocol level (see RFC 4492, section 5.4) but I am not sure whether OpenSSL implements it. The EC code is there (at least for prime fields), but maybe not the glue at the TLS level. Of course, if you control both sides, you could just define your own "named curve". – Tom Leek Oct 18 '13 at 11:14

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.