supplemental data handshake message

Simon Josefsson simon at josefsson.org
Wed May 5 14:51:27 CEST 2010


Carolin Latze <carolin.latze at unifr.ch> writes:

> Hi Simon,
>
>
>>
>> It is difficult to tell from just description of the problem...  Try
>> printing the entire buffer that is sent by _gnutls_gen_supplement and
>> the buffer received by _gnutls_parse_supplemental and hand-check that
>> they are correct and match.  
> If I did not do something completely wrong (which is ofc always
> possible), they do not match, which is weird. Like you will see in the
> source code below, I printed buf at the end of
> _gnutls_gen_supplemental as well as data at the beginning of
> _gnutls_parse_supplemental.

There is a bug in your printing code, it has to be:

_gnutls_debug_log ("EXT[%p]: supp send buffer: ",session);
for(i=0;i<buf->length;i++) _gnutls_debug_log ("%02x",buf->data[i] & 0xFF);

Check the warnings when you build the code, it would catch issues like
that.

With that, the buffers sent and received are identical:

|<2>| EXT[0x9073780]: supp send buffer: |<2>| 00|<2>| 00|<2>| 07|<2>| 00|<2>| 01|<2>| 00|<2>| 03|<2>| 6c|<2>| 6c|<2>| 6f|<2>| 

|<2>| EXT[0x8de9c58]: recv supp buf: |<2>| 00|<2>| 00|<2>| 07|<2>| 00|<2>| 01|<2>| 00|<2>| 03|<2>| 6c|<2>| 6c|<2>| 6f|<2>| 

Another bug was that your ext_helloworld.c cleared out the buffer, you
need to remove this call:

	_gnutls_buffer_init(buf);

>> Maybe you could push a git branch with your
>> work somewhere, so we can more easily reproduce the problem?
>>
>>   
> Due to the lack of a git server, I put my GnuTLS version on a webserver:
> http://diuf.unifr.ch/people/latzec/gnutls-2.9.11-CL.tar.gz
>
> If you prefer a git branch, I need to get a server first :-) (which is
> probably not impossible, but needs more time :))

A tarball is fine.  You can push to free git servers out there, such as
repo.or.cz.

/Simon





More information about the Gnutls-help mailing list