Hi,

We have problems authenticating a a CERT while LC_CTYPE is set to tr_TR.UTF-8

The issue is triggered in libcurl but it seems to come out of libssl. It seems to be

related to http://mattryall.net/blog/2009/02/the-infamous-turkish-locale-bug

Sample code below. We link against libssl 1.0.1s. Is this a known issue ? Would

it help to switch to a newer Version ?

Any help is highly apprecjaited....



<snip>



#include <string>
#include <iostream>
#include <stdio.h>

#include <curl/curl.h>

void doCurlCall()
{
std::cout << "Running with LC_CTYPE: " << setlocale(LC_CTYPE, NULL) << std::endl;

    CURL *curl = curl_easy_init();

    curl_easy_setopt(curl, CURLOPT_URL, "https://www.hotmail.com";);

    curl_easy_setopt(curl, CURLOPT_CAPATH, "/opt/etc/ssl/certs/");
    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1);


    CURLcode res = curl_easy_perform(curl);
    if(res == CURLE_OK)
    {
std::cout << std::endl << "curl_easy_perform() succeeded" << std::endl;
    }
    else
    {
std::cout << std::endl << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;
    }
    curl_easy_cleanup(curl);
}

int main(int /*argc*/, char ** /*argv*/)
{
    setlocale(LC_CTYPE, "tr_TR.UTF-8");

    curl_global_init(CURL_GLOBAL_DEFAULT);

    // This call will fail with curl error:
    // Peer certificate cannot be authenticated with given CA certificates
    doCurlCall();

    setlocale(LC_CTYPE, "C");

    // This call will pass
    doCurlCall();

    curl_global_cleanup();
    return 0;
}


</snip>

--
**********************************
Dr. Sebastian Kloska
Hohenstaufenstr. 67
10781   Berlin
Handy:  +49-176-24621622
web:    www.oncaphillis.net
e-mail: sebastian.klo...@snafu.de
**********************************

--
openssl-dev mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-dev

Reply via email to