[Help-gnutls] Re: handshake

kristian.martens at freenet.de kristian.martens at freenet.de
Tue Nov 4 10:17:45 CET 2008


Maybe you were missing (see gnutls manual) 

....
int sd;

/* connect to
the peer
*/
sd = tcp_connect ();
gnutls_transport_set_ptr (session,
(gnutls_transport_ptr_t) sd);
....



         -----Ursprüngliche
Nachricht-----
       Von: \"Martin Knappe\" [martin.knappe at gmail.com]
 
     Gesendet: Di. 04.11.08 (09:19)
       An: help-gnutls at gnu.org
     
 Betreff: [Help-gnutls] Re: handshake

          I\'ll also post the
output of strace; I really don\'t understand what\'s going on
here...

write(1, \"BEFORE HANDSHAKEn\", 14BEFORE HANDSHAKE
)         =
14
gettimeofday({1225793748, 165856}, NULL) = 0
getrusage(RUSAGE_SELF,
{ru_utime={0, 664041}, ru_stime={0, 0}, ...}) = 0
time(NULL)            
                 = 1225793748
times({tms_utime=66, tms_stime=0,
tms_cutime=0, tms_cstime=0}) = 1845603364
gettimeofday({1225793748,
167291}, NULL) = 0
getrusage(RUSAGE_SELF, {ru_utime={0, 664041},
ru_stime={0, 0}, ...}) = 0
time(NULL)                              =
1225793748
times({tms_utime=66, tms_stime=0, tms_cutime=0,
tms_cstime=0}) = 1845603364
recv(5, 

here the client blocks, when it
has to do a send instead of a receive!


On Mon, Nov 3, 2008 at 5:39 PM,
Martin Knappe <martin.knappe at gmail.com> wrote:
hi

im having a problem
with making a handshake between client and server
the problem is that my
client seems to \"think\" it is really a server, because instead of
sending a client hello. it does a receive when initiating the handshake
(i checked with strace)
could someone have a look at this snippet and
tell me why this client might think it is a server:

    if
(gnutls_init(&session, GNUTLS_CLIENT) != 0) {
        return
E_GNUTLS_INIT;
    }
    if (gnutls_set_default_priority(session) != 0)
{
        return E_GNUTLS_SET_DEFAULT_PRIORITY;
    }
    if
(gnutls_kx_set_priority(session, (const int[]) {GNUTLS_KX_DHE_PSK, 0}))
{
        return E_GNUTLS_KX_SET_PRIORITY;
    }
    if
(gnutls_credentials_set (session, GNUTLS_CRD_PSK, psk_cred) != 0) {
    
   return E_GNUTLS_CREDENTIALS_SET;
    }
   
gnutls_transport_set_ptr(session, (gnutls_transport_ptr_t) sockfd);
   
printf(\"BEFORE
HANDSHAKE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!n\");
    if
(gnutls_handshake(session) < 0) {
        return E_HANDSHAKE;
    }
   
printf(\"AFTER
HANDSHAKE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!n\");
    return
E_SUCCESS;

when i execute this, I get the message \"BEFORE
HANDSHAKE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\", and then my
client blocks!

many thanks

martin



   -----Ursprüngliche Nachricht
Ende-----




#adBox3 {display:none;}



-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/attachments/20081104/2e8f4352/attachment.htm>


More information about the Gnutls-help mailing list