Https en c

topl Messages postés 5 Date d'inscription mercredi 14 mai 2003 Statut Membre Dernière intervention 20 avril 2004 - 19 avril 2004 à 10:51
cs_slims Messages postés 14 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 9 avril 2005 - 9 avril 2005 à 05:39
Bonjour,

Je voudrais savoir comment effectuer une connexion web en utilisant le https.

Je connais pas trop le protocole et tout la phase de négociation des certificats.

Donc si kelkun connait une librairie fiable avec un tuto pour faire ca merci!!!

lolo le rigolo

6 réponses

MetalDwarf Messages postés 241 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 23 janvier 2006
19 avril 2004 à 11:27
la librairie OpenSSL si tu veux faire du bas niveau. Elle est disponible sous Linux et Windows au moins.
OpenSSL permet de faire un serveur ou un client, mais si tu veux simplement recuperer une page web pas HTTPS, le plus simple est d utiliser libcurl qui fait tout a ta place!

http://curl.haxx.se/libcurl/c

Voila!!
0
lpikachu58 Messages postés 351 Date d'inscription samedi 2 février 2002 Statut Membre Dernière intervention 6 mai 2004 2
19 avril 2004 à 13:12
ou reprend des librairie d'apache

be linux
0
MetalDwarf Messages postés 241 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 23 janvier 2006
19 avril 2004 à 16:34
En fait Apache utilise OpenSSL...
0
lpikachu58 Messages postés 351 Date d'inscription samedi 2 février 2002 Statut Membre Dernière intervention 6 mai 2004 2
20 avril 2004 à 09:21
ok dsl
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
topl Messages postés 5 Date d'inscription mercredi 14 mai 2003 Statut Membre Dernière intervention 20 avril 2004
20 avril 2004 à 15:36
Pour les interesse g reussi avec libssl(livre avec openssl).

#include <openssl/ssl.h>

int s;
SSL *ssl=NULL;
SSL_CTX *sslctx;

/* conection a une socket 's' sur le server sur port 443*/

SSL_load_error_strings();
SSL_library_init();if ((sslctx SSL_CTX_new(SSLv23_client_method())) NULL) { fprintf(stderr, "SSL_CTX_new() error\n"); exit(1); }if ((ssl SSL_new(sslctx)) NULL) { fprintf(stderr, "SSL_new() error\n"); exit(1);}
if (SSL_set_fd(ssl, s) != 1) { fprintf(stderr, "SSL_set_fd() error\n"); exit(1)}
if (SSL_connect(ssl) != 1) { fprintf(stderr, "SSL_connect() error\n"); exit(1);}
sprintf(tmp,"GET %s \r\n\r\n",purl);
if (SSL_write(ssl, tmp, strlen(tmp)) != strlen(tmp)) { perror("write() error"); exit(1); }

while (SSL_read(ssl, bufrec, sizeof(bufrec))>0)
{
printf("%s",bufrec);
}

lolo le rigolo
0
cs_slims Messages postés 14 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 9 avril 2005
9 avril 2005 à 05:39
Bonjour aux lecteurs,
merci topl d avoir copier le bout de code utilisant la librairie openssl, cela m a fais gagner du temps sur un projet perso.
Cependant me semble qu il y a une petite erreur sur ces lignes.
while (SSL_read(ssl, bufrec, sizeof(bufrec))>0)
{
printf("%s",bufrec);
}

Se serait mieux si tu recuperais la valeur de retour de SSL_read() a fin de mettre un '\0' en fin de tampon pour eviter le debordement memoire.

int nb_read;

while ((nb_read = SSL_read(ssl, buffer, sizeof(buffer))) > 0)
{
buffer[nb_read] = '\0';
printf("%s", buffer);
}
printf("\n");
Amicalement,
slims42.
0
Rejoignez-nous