Bonjour,

Voila, j'aimerais concevoir une connection client/serveur securise via clef RSA. Je me suis donc renseigner sur la libssl

Le probleme est que mis a part le man de ssl je manque cruellement de documentation et je suis un peu perdu ...

voici mon ebauche de code du serveur
Le probleme majeur est que SSL_accept echou directement (non bloquant ?) en retournant -1 et un SLL_get_error() derriere renvoi un SSL_ERROR_WANT_READ

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
static void             get_connect(t_socks *socks)
{
  if ((socks->serv.sock = socket(AF_INET, SOCK_STREAM, 0)) < 0)
    die(SERV_SOCK_KO);
  my_putstr(SERV_SOCK_OK);
  addr_context(&socks->serv.ac);
  if (bind(socks->serv.sock, (SOCKADDR *) &socks->serv.ac, socks->serv.ac_sz) < 0)
    die(BIND_KO);
  if (listen(socks->serv.sock, 5) < 0)
    die(LISTEN_KO);
  my_putstr(LISTEN_OK);
  /* if ((socks->guest.sock = accept(socks->serv.sock, (SOCKADDR *) &socks->guest.ac, &socks->guest.ac_sz)) < 0) */
  /*   die(GUEST_KO); */
  /* my_putstr(GUEST_OK); */
}
 
int                     main(void)
{
  t_socks               socks;
  SSL_CTX               *ctx;
  SSL                   *ssl;
 
  socks.guest.ac_sz = sizeof(socks.guest.ac);
  socks.serv.ac_sz = sizeof(socks.serv.ac);
  SSL_library_init();
  if (!(ctx = SSL_CTX_new(SSLv2_server_method())))
    die(CTX_KO);
  if (!(ssl = SSL_new(ctx)))
    die(SSL_KO);
  get_connect(&socks);
  if (!(SSL_set_fd(ssl, socks.serv.sock)))
    die(LINK_SSL_KO);
  if (SSL_accept(ssl) <= 0)
    die(SSL_ACCEPT_KO);
  my_putstr(SSL_OK);
merci d'avance pour votre aide