TLS SNI с C # - PullRequest
       61

TLS SNI с C #

2 голосов
/ 05 мая 2011

Я пытаюсь использовать libcurl.net в моем проекте для выполнения HTTP-запросов через SSL. (Классы System.Net не поддерживают расширение имени сервера, и я использую Windows XP)

Код в SSLContextFunction:

public CURLcode OnSSLContext(SSLContext ctx, Object extraData)
{
    IntPtr ssl = SSL_new(ctx.Context);
    SSL_set_tlsext_host_name(ssl, "hostname");
    return CURLcode.CURLE_OK;
}

[DllImport("ssleay32.dll")]
internal static extern IntPtr SSL_new(IntPtr ctx);

[DllImport("ssleay32.dll")]
internal static extern void SSL_set_tlsext_host_name(IntPtr ssl, string message);

При вызове SSL_new выдается ошибка: «Попытка чтения или записи в защищенную память. Это часто свидетельствует о повреждении другой памяти.»

Также попытался вызвать метод OpenSSL SSL_library_init (), но безрезультатно.

Спасибо

1 Ответ

0 голосов
/ 05 мая 2011

Вы установили платформу процессора в соответствии с используемой библиотекой?Например, используйте x86, если у вас есть x86 DLL или x64 для x64.(Даже если это не ваша проблема, и у вас есть только 32-битная система, ваше приложение будет работать на Win64 в противном случае)

Я не использовал его, но я нашел существующую оболочкудля libcurl, может быть, это может вам помочь: http://sourceforge.net/projects/libcurl-net/

...