On Sunday 05 February 2017 11:13:16 Andreas Bartelt wrote:
> On 02/05/17 07:41, Joel Sing wrote:
> > You can just specify X25519 as a group - it will not appear in `openssl
> > ecparam -list_curves' since it is not a standard EC curve.
> 
> thanks - I didn't notice that capitalization is important here. Maybe
> x25519 and ecdh_x25519 [IANA] should also be accepted as valid names
> [http://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml].

I'll consider this, however all of the RFCs refer to it as X25519 (e.g. 
RFC7748 and draft-ietf-curdle-pkix-03). This is also no different to the fact 
that you cannot use 'Prime256v1' or 'p-384'.

> The definition of the curve itself is provided in RFC 7748 - RFCs for
> some other listed curves (e.g., brainpool) are also only tagged as
> Informational. What is missing with regard to X25519?

There is nothing missing as such - X25519 is a function that performs scalar 
multiplication on a curve known as curve25519. The X25519 function is in turn 
used to perform Diffie-Hellman key exchange. Neither X25519 nor curve25519 fit 
the OpenSSL Elliptic Curve API (largely due to design), hence it does not make 
sense for it to appear in 'openssl ecparam -list_curves', which would require 
it to be treated and manipulated as if it was a standard EC curve.
 
> This is really weird. Although my test results for X25519 were similarly
> confusing -- for simplicity, I'll provide some more results which were
> restricted to explicitly testing secp384r1.
[snip]
> Error messages when failing against httpd:
>  > openssl s_client -connect <servername>:443 -servername <servername>
> 
> -groups secp384r1
> CONNECTED(00000003)
> 12254385780000:error:14FFF410:SSL routines:SSL_internal:sslv3 alert
> handshake failure:/usr/src/lib/libssl/ssl_pkt.c:1205:SSL alert number 40
> 12254385780000:error:14FFF0E5:SSL routines:SSL_internal:ssl handshake
> failure:/usr/src/lib/libssl/ssl_pkt.c:585:

This is the server-side responding with a fatal SSL handshake failure alert - 
there are only a few cases where this will happen, the most likely of which is 
when there is no matching cipher suite.

- Is there any other configuration that would limit the cipher suites in use?

- What cipher suite is used if you connect without specifying -groups?

- What type of public certificate are you using (RSA or ECDSA)?

- If you're still unable to get to the bottom of it, try running 'openssl 
s_client' with -debug and provide the output.

Reply via email to