[gnutls-help] Asynchronous transport

Nikos Mavrogiannopoulos nmav at gnutls.org
Thu Oct 29 09:36:45 CET 2015


On Wed, Oct 28, 2015 at 3:37 PM, Yury Shvedov
<yshvedov at wimarksystems.com> wrote:
> I overcame the issue!
>
> The problem was on the server side: I forgot to initialize the
> prestate(gnutls_dtls_prestate_st) structure.
> But in my opinion the case when client side behave the undocumented way if
> server sends garbage is a bug on the client side too.
>
> I haven't reproduce it with exaples but reproduced it with the next code on
> server side:
> gnutls_dtls_prestate_st prestate;
>
> memset(&prestate, 0, sizeof(prestate));
>
> prestate.record_seq = 105791312;
>
> prestate.hsk_read_seq = 0;
>
> prestate.hsk_write_seq = 67166359;

That should be fairly easy to reproduce. If you modify for example
mini-dtls-hello-verify.c from tests/ with that, does it block
indefinitely?

> No I have the next issue withing handshake.
> Gnutls: REC[0x65ddbb0]: INVALID VERSION PACKET: (-1) 254.255

The comment on that error states:
"Reject record packets that have a different version than the one negotiated"

You'd better see with wireshark the versions negotiated and placed in
record packets.

regards,
Nikos



More information about the Gnutls-help mailing list