Topic: [SOLVED] wolfSSL 3.15.3, TLSv1.3 and ec_point_formats extensions
Hello,
Build wolfSSL 3.15.3
./configure --enable-all
make
Use wolfSSL client to connect to host
ww.tvnow.de
1. default method wolfTLSv1_2_client_method_ex without wolfSSL_CTX_UseSupportedCurve call
examples/client/.libs/client -S HOST_NAME -h HOST_NAME -p 443 -d -x -C -g -i
client use wolfTLSv1_2_client_method_ex method and in the "Client Hello" message wolfSSL send information about following extensions:
- signature_algorithms
- ec_point_formats
- elliptic_curves
- SessionTicket TLS
- server_name
- Unknown 23
result: SSL handshake successful
2. default method wolfTLSv1_2_client_method_ex with wolfSSL_CTX_UseSupportedCurve call
examples/client/.libs/client -S HOST_NAME -h HOST_NAME -p 443 -d -x -C -g -i -t
client use wolfTLSv1_2_client_method_ex method and in the "Client Hello" message wolfSSL send information about following extensions:
- signature_algorithms
- elliptic_curves
- SessionTicket TLS
- server_name
- Unknown 23
Information about ec_point_formats is missed.
result: SSL handshake failed with error wolfSSL_connect error -313, revcd alert fatal error
3. method wolfSSLv23_client_method_ex
examples/client/.libs/client -S HOST_NAME -h HOST_NAME -p 443 -d -x -C -g -i -v d
client use wolfSSLv23_client_method_ex method and in the "Client Hello" message wolfSSL send information about following extensions:
- Unknown 43
- signature_algorithms
- elliptic_curves
- Unknown 51
- SessionTicket TLS
- server_name
Information about ec_point_formats is missed.
result: SSL handshake failed with error wolfSSL_connect error -313, revcd alert fatal error
Summary:
The wolfSSL does not send information about elliptic_curves extension when:
- method wolfSSLv23_client_method_ex
or
- wolfSSL_CTX_UseSupportedCurve was call
It causes SSL handshake failed.
It looks that host www.tvnow.de need information about ec_point_formats extension, but the wolfSSL in describad cases does not send it?
Can you explain why? It is posible to call some function to add this extension to "Client Hello" message?
Please note that libcurl always call wolfSSL_CTX_UseSupportedCurve
https://github.com/curl/curl/blob/10d8f … s/cyassl.c
CyaSSL_CTX_UseSupportedCurve(BACKEND->ctx, 0x17); /* secp256r1 */
CyaSSL_CTX_UseSupportedCurve(BACKEND->ctx, 0x19); /* secp521r1 */
CyaSSL_CTX_UseSupportedCurve(BACKEND->ctx, 0x18); /* secp384r1 */
and also use wolfSSLv23_client_method as default.
This results to make impossible to connect to some host using libcurl + wolfSSL.
It looks like bug in the wolfSSL library.
Can you please take a look on this and give solution for this problem, please?
Regards,
Sam Sam