Page 1 of 1

Conexiune HTTPS cu ajutorul WINSOCK ?

Posted: 13 Mar 2012, 13:22
by Senzo
Salut,

Sunt incepator in programarea c / c++ ma folosesc de cunostintele dobandite cu alte limbaje de programare. De ceva timp (aproximativ 2 luni) dintro ambitie personala am inceput sa lucrez la un proiect care implica conectarea unui id pe Yahoo! Messenger. Pentru aceasta se foloseste protocolul impus de Yahoo! si anume YMSGR, am studiat protocolul si am inteles cum functioneaza. Am folosit WINSOCK pentru connectare la server dar m-am lovit de o problema la unul dintre pasii anteriori autentificarii pe server care necesita o conexiune HTTPS la o pagina yahoo. AIci vine intrebarea. Se poate stabilii o conexiune HTTPS cu ajutorul WINSOCK? (Conexiune HTTP am reusit)

Multumesc anticipat.

Re: Conexiune HTTPS cu ajutorul WINSOCK ?

Posted: 13 Mar 2012, 14:39
by Marius Bancila
HTTPS inseamna HTTP + SSL/TLS. Asta inseamna ca poti folosi WINSOCK pentru HTTP dar ai nevoie si de encryptare SSL/TLS.

Uite niste linkuri:
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
http://www.coastrd.com/c-schannel-smtp

Re: Conexiune HTTPS cu ajutorul WINSOCK ?

Posted: 13 Mar 2012, 19:48
by cristianamarie

Re: Conexiune HTTPS cu ajutorul WINSOCK ?

Posted: 16 Mar 2012, 12:33
by Senzo
Multumesc mult pentru raspunsuri. Dupa cateva zile de incercari tot nu am reusit sa ajung la o varianta de cod compilabila. Compilatorul imi indica niste erori in fisierele header precum wincrypt.h sau sspi.h. Sigur am omis ceva. Daca cineva ar putea sa ma ajute cu un cod pentru conexiunea https compilabil as fii recunoscator.

Multumesc anticipat.

Re: Conexiune HTTPS cu ajutorul WINSOCK ?

Posted: 16 Mar 2012, 13:09
by bu7ch3r
ce erori?
pune:

Code: Select all

#pragma comment(lib, "Secur32.lib")
#pragma comment(lib, "Advapi32.lib")

Re: Conexiune HTTPS cu ajutorul WINSOCK ?

Posted: 16 Mar 2012, 16:07
by cristianamarie
#define SECURITY_WIN32 pentru security.h, parca

Re: Conexiune HTTPS cu ajutorul WINSOCK ?

Posted: 08 Jul 2012, 18:08
by Senzo
Am incercat cam tot ce am gasit pe net despre asta si tot nu am reusit. Cu scuzele de rigoare ca sunt asa insistent va mai cer o data ajutor. Eu am urmatoarea functie cu care fac conexiunile, cum ar trebui modificata pentru ssl?

Code: Select all

string yconnect(string server, string request, int port) {
    string response;
    int resp_leng;

    char buffer[BUFFERSIZE];
    struct sockaddr_in serveraddr;
    int sock;

    WSADATA wsaData;
    char *ipaddress = const_cast<char*>(server.c_str());
    //int port = 5050;

    if (WSAStartup(MAKEWORD(2, 0), &wsaData) != 0)
        die_with_wserror("Functia WSAStartup() failed");

    if ((sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
        die_with_wserror("Functia socket() failed");

    memset(&serveraddr, 0, sizeof(serveraddr));
    serveraddr.sin_family      = AF_INET;
    serveraddr.sin_addr.s_addr = inet_addr(ipaddress);
    serveraddr.sin_port        = htons((unsigned short) port);
    if (connect(sock, (struct sockaddr *) &serveraddr, sizeof(serveraddr)) < 0)
        die_with_wserror("Functia connect() failed");

    if (send(sock, request.c_str(), request.length(), 0) != request.length())
        die_with_wserror("Functia send() numar diferit de biti");

    response = "";
    resp_leng= BUFFERSIZE;
    while (resp_leng == BUFFERSIZE)
    {
        resp_leng= recv(sock, (char*)&buffer, BUFFERSIZE, 0);
    }
    for(int i=0; i<resp_leng; i++) {
         response += char(int(buffer[i]));            
    }
    
    closesocket(sock);

    WSACleanup();
    return response;          
}
Multumesc anticipat.

Re: Conexiune HTTPS cu ajutorul WINSOCK ?

Posted: 26 Jul 2012, 09:44
by cristianamarie
Pai pentru SSL folosesti o librarie de SSL (OpenSSL). Altfel cu WinInet si cu flagul de secure connection.