<div dir="ltr">Just ran through a debugger, and it hits the lines that you were referring to. Some of my configuration for the SSL_CTX is being applied. For example, the handshake fails for any connection that is not using one of the ciphers I have configured in <span style="font-size:12.8px">initialize_ssl(). But the callbacks are still not being used</span></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jan 21, 2016 at 1:36 PM, Chris Buchter <span dir="ltr"><<a href="mailto:buchtcj@gmail.com" target="_blank">buchtcj@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">I have the server running and I use openssl s_client to make a psk client session. It just automatically completes the handshake, without calling my psk server callback. </p><div class="HOEnZb"><div class="h5">
<div class="gmail_quote">On Jan 21, 2016 1:19 PM, "Francis Brosnan Blázquez" <<a href="mailto:francis@aspl.es" target="_blank">francis@aspl.es</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u>


  
  

<div>
Hi Chris,<br>
<br>
I see no error in your code :-?<br>
<br>
Calling to nopoll_ctx_set_ssl_context_creator, configures internal<br>
handlers that are called by the listener by the line 4011 at <a href="https://github.com/ASPLes/nopoll/blob/master/src/nopoll_conn.c" target="_blank">https://github.com/ASPLes/nopoll/blob/master/src/nopoll_conn.c</a><br>
<br>
..which in turns calles your handler at the line 466 in the same file..<br>
<br>
Do you have a ready to use (make enabled) working example to test? <br>
<br>
Best Regards,<br>
<br>
<br>
<blockquote type="CITE">
    Hi Everyone,
</blockquote>
<blockquote type="CITE">
    <br>
    <br>
</blockquote>
<blockquote type="CITE">
    I am trying to set up custom callbacks using the function nopoll_ctx_set_ssl_context_creator.Here is what I have:<br>
    <br>
    In Main:
</blockquote>
<blockquote type="CITE">
    noPollCtx *np_ctx = nopoll_ctx_new();
</blockquote>
<blockquote type="CITE">
    nopoll_ctx_set_ssl_context_creator(np_ctx, (noPollSslContextCreator)my_ssl_ctx_creator, NULL);
</blockquote>
<blockquote type="CITE">
    noPollConn *listener = nopoll_listener_tls_new_opts(np_ctx,opts, "0.0.0.0", "8091");
</blockquote>
<blockquote type="CITE">
    if(! nopoll_conn_is_ok(listener)){printf("Error\n");return 1;}
</blockquote>
<blockquote type="CITE">
    nopoll_ctx_set_on_msg(np_ctx, (noPollOnMessageHandler)message_handler, NULL);
</blockquote>
<blockquote type="CITE">
    nopoll_loop_wait(np_ctx, 0);
</blockquote>
<blockquote type="CITE">
    <br>
    <br>
</blockquote>
<blockquote type="CITE">
    ------------------------------------------------------------------------------------------------------------------------------------------
</blockquote>
<blockquote type="CITE">
    <br>
    <br>
</blockquote>
<blockquote type="CITE">
    SSL_CTX * my_ssl_ctx_creator (noPollCtx * ctx, noPollConn * conn, noPollConnOpts * opts, nopoll_bool is_client, noPollPtr user_data)
</blockquote>
<blockquote type="CITE">
    {
</blockquote>
<blockquote type="CITE">
        printf("ctx_creator\n");
</blockquote>
<blockquote type="CITE">
        SSL_CTX *ssl_ctx = initialize_ssl();
</blockquote>
<blockquote type="CITE">
        return ssl_ctx;
</blockquote>
<blockquote type="CITE">
    }
</blockquote>
<blockquote type="CITE">
    <br>
    <br>
</blockquote>
<blockquote type="CITE">
    SSL_CTX* initialize_ssl()
</blockquote>
<blockquote type="CITE">
    {
</blockquote>
<blockquote type="CITE">
        const SSL_METHOD *method;
</blockquote>
<blockquote type="CITE">
        SSL_CTX *ctx;
</blockquote>
<blockquote type="CITE">
        SSL_library_init();
</blockquote>
<blockquote type="CITE">
        SSL_load_error_strings();
</blockquote>
<blockquote type="CITE">
        OpenSSL_add_all_algorithms();
</blockquote>
<blockquote type="CITE">
        method = TLSv1_server_method();
</blockquote>
<blockquote type="CITE">
        ctx = SSL_CTX_new(method);
</blockquote>
<blockquote type="CITE">
        SSL_CTX_set_psk_server_callback(ctx, psk_server_cb);
</blockquote>
<blockquote type="CITE">
        SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER|SSL_VERIFY_FAIL_IF_NO_PEER_CERT|SSL_VERIFY_CLIENT_ONCE, cert_server_cb);
</blockquote>
<blockquote type="CITE">
        printf("setup certs\n");
</blockquote>
<blockquote type="CITE">
        SSL_CTX_use_certificate_file(ctx, "./cert.pem", SSL_FILETYPE_PEM);
</blockquote>
<blockquote type="CITE">
        SSL_CTX_use_PrivateKey_file(ctx, "./key.pem", SSL_FILETYPE_PEM);
</blockquote>
<blockquote type="CITE">
        if(SSL_CTX_set_cipher_list(ctx, ciphers) == 0)
</blockquote>
<blockquote type="CITE">
        {
</blockquote>
<blockquote type="CITE">
            printf("Fail to select ciphers\n");
</blockquote>
<blockquote type="CITE">
            exit(1);
</blockquote>
<blockquote type="CITE">
        }
</blockquote>
<blockquote type="CITE">
        if(ctx == NULL)
</blockquote>
<blockquote type="CITE">
        {
</blockquote>
<blockquote type="CITE">
            printf("CTX Error\n");
</blockquote>
<blockquote type="CITE">
            exit(1);
</blockquote>
<blockquote type="CITE">
        }
</blockquote>
<blockquote type="CITE">
        return ctx;
</blockquote>
<blockquote type="CITE">
    }
</blockquote>
<blockquote type="CITE">
    <br>
    <br>
</blockquote>
<blockquote type="CITE">
    Unfortunely, noPoll does not hit my callbacks when performing the handshake....
</blockquote>
<blockquote type="CITE">
    <br>
    <br>
</blockquote>
<blockquote type="CITE">
    Any help?
</blockquote>
<blockquote type="CITE">
    <br>
    <br>
</blockquote>
<blockquote type="CITE">
    Thanks
</blockquote>
<blockquote type="CITE">
<pre>_______________________________________________
noPoll mailing list
<a href="mailto:noPoll@lists.aspl.es" target="_blank">noPoll@lists.aspl.es</a>
<a href="http://lists.aspl.es/cgi-bin/mailman/listinfo/nopoll" target="_blank">http://lists.aspl.es/cgi-bin/mailman/listinfo/nopoll</a>
</pre>
</blockquote>
<br>
<table cellspacing="0" cellpadding="0" width="100%">
<tbody><tr>
<td>
<pre>-- 
Francis Brosnan Blázquez - ASPL
91 134 14 22 - 91 134 14 45 - 91 116 07 57

<a href="http://aspl.es" target="_blank">http://aspl.es</a>
<a href="http://asplhosting.com" target="_blank">http://asplhosting.com</a>
<a href="http://twitter.com/aspl_es" target="_blank">http://twitter.com/aspl_es</a>
<a href="http://twitter.com/asplhosting" target="_blank">http://twitter.com/asplhosting</a>

AVISO LEGAL

Este mensaje se dirige exclusivamente a su destinatario. Los datos
incluidos en el presente correo son confidenciales y sometidos a secreto
profesional, se prohíbe divulgarlos, en virtud de las leyes vigentes. Si
usted no lo es y lo ha recibido por error o tiene conocimiento del mismo
por cualquier motivo, le rogamos que nos lo comunique por este medio y
proceda a destruirlo o borrarlo.

En virtud de lo dispuesto en la Ley Orgánica 15/1999, de 13 de
diciembre, de Protección de Datos de Carácter Personal, le informamos de
que sus datos de carácter personal, recogidos de fuentes accesibles al
público o datos que usted nos ha facilitado previamente, proceden de
bases de datos propiedad de Advanced Software Production Line, S.L.
(ASPL). No obstante, usted puede ejercitar sus derechos de acceso,
rectificación, cancelación y oposición dispuestos en la mencionada Ley
Orgánica, notificándolo por escrito a:
ASPL - Protección Datos, C/Antonio Suárez 10 A-102, 28802, Alcalá de
Henares (Madrid).
</pre>
</td>
</tr>
</tbody></table>
</div>

</blockquote></div>
</div></div></blockquote></div><br></div>