NewbieContest

Général => Général => Discussion démarrée par: jfcl1 le 06 Mai 2021 à 15:32:02



Titre: Erreur de connexion à Newbie Contest avec libcurl/C++
Posté par: jfcl1 le 06 Mai 2021 à 15:32:02
Salut à tous,

Je reprends ma procédure de connexion à Newbie Contesr avec CodeBlocks / C++ / Libcurl.
J'utilise curl_easy_setopt().
Cette procédure, que je n'ai pas changée, et même en reprenant un ancien exécutable, ne marche plus.
Je reçois l'erreur :
error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

Y aurait-il quelque chose de changé dans la connexion à Newbie Contest ? (nb : mes anciennes solutions avec php marchent toujours)
Avez-vous une idée du problème et d'une solution ? (cette erreur est très souvent citée sur le Web mais je ne trouve pas la parade)
MayDay

jfcl1


Titre: Re : Erreur de connexion à Newbie Contest avec libcurl/C++
Posté par: the lsd le 07 Mai 2021 à 08:18:55
Tu as un warning sur ssl3 qui est un vieux protocole SSL/TLS désactivé depuis des années sur NC (heureusement ^^'). De souvenir, on ne parle qu'en TLS1.2 (peut être 1.1 si j'ai fait de la compatibilité avec les anciens browsers, mais bref).

Regarde si ton problème ne vient pas de là :)

Enjoy

The lsd


Titre: Re : Erreur de connexion à Newbie Contest avec libcurl/C++
Posté par: jfcl1 le 09 Mai 2021 à 20:02:32
Merci lsd pour ta réponse.

En fait précédemment je ne précisais pas la version.
J'avais alors le message :

* Connected to www.newbiecontest.org (212.83.176.16) port 443 (#0)
* Unknown SSL protocol error in connection to www.newbiecontest.org:443

Si je précise : curl_easy_setopt(curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);
=>
* error:1409442E:SSL routines:SSL3_READ_BYTES:tlsv1 alert protocol version

Tu as raison, les protocoles SSL2 et 3 ne sont plus utilisés (on dit dans la doc : "SSLv2 and SSLv3 are refused completely since curl 7.77.0 ")

J'ai fait des tests avec - je crois - tous les protocoles possibles..

Voici ma requête :

if(curl)
{
    curl_easy_setopt(curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
    curl_easy_setopt(curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_DEFAULT);

    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);

    curl_easy_setopt(curl, CURLOPT_COOKIE, SMFCOOkie89);

    curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
    curl_easy_setopt(curl, CURLOPT_URL, url_epreuve);

    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
    curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);

    res = curl_easy_perform(curl);
    ...
 }

PS : j'utilise la dernière version curl-7.76.1-win32-mingw

jfcl1


Titre: Re : Erreur de connexion à Newbie Contest avec libcurl/C++
Posté par: jfcl1 le 01 Juin 2021 à 19:36:07
OK j'ai compris !
Depuis les dernières versions, windows10 inclut curl.
Il s'agit de curl 7.55 avec winSSL...
J'avais installé et compilé avec curl-win32-minGW (OpenSSL) alors qu'à l'exécution windows10 lance par défaut sa version, ce qui ne se produisait pas précédemment.
Donc solution : ajouter dans le path le lien vers le répertoire bin de curl-win32-minGW utilisé pour la compilation et LE PLACER AVANT LE CHEMIN VERS "c:/windows/system32" ou copier la bonne libcurl.dll dans le répertoire de l'exécutable, ou encore compiler avec l'option -static.


Titre: Re : Erreur de connexion à Newbie Contest avec libcurl/C++
Posté par: the lsd le 07 Juin 2021 à 13:08:52
Ah oui ! C'est un tricks bon à savoir ! GG pour avoir trouvé

Enjoy

The lsd


Titre: Re : Erreur de connexion à Newbie Contest avec libcurl/C++
Posté par: Alfiory le 06 Août 2021 à 08:48:55
Quelle idée d'être sur Windows aussi...  :/

Trollement,
Alfio.