[WIP] DTLS 1.0 preliminary patches
Simon Josefsson
simon at josefsson.org
Wed Jul 29 20:35:36 CEST 2009
Nikos Mavrogiannopoulos <nmav at gnutls.org> writes:
>>> Re 0002-Add-DTLS1.0-protocol-entry.patch: This breaks the API. Can you
>>> re-order the DTLS addition so it is after GNUTLS_TLS1_2 and add a '=
>>> 100' after it so there is room for TLS 1.3 etc? Also, please drop the
>>> GNUTLS_DTLS1 mapping, I think it helps to be specific about version
>>> numbers at all places. I think this patch could be added quickly
>>> without problem.
>> Alright, but DTLS1.0 needs to be sandwiched between TLS1.1 and TLS1.2,
>> mostly for ver < GNUTLS_TLS1_2 checks. Since TLS1.2 is still
>> experimental, could this breakage be tolerated ? I am wide open for a
>> suggestions in this case...
>
> In general I'd agree with simon that DTLS should be distinct from
> TLSx.y. For the specific tests maybe we should move those into
> designated functions such as if (_check_for_feature_xyz(tlsversion)) {
> ... }. And a more complex matching algorithm will be present there.
Exactly.
>>> Re 0004-Add-gnutls_session_datagram-function.patch: this just toggles
>>> one way. DTLS is really a completely new protocol, not just a different
>>> transport method for TLS. So maybe there should really be a new
>>> function that replaces gnutls_init? How about gnutls_init_dtls? It
>>> would return a gnutls_session_t for DTLS.
>
> If there no issues in initialization the obvious place for me to be done
> would be gnutls_priority_set() and gnutls_protocol_set_priority(). There
> the actual version of the protocol that will be used is given and if
> DTLS is there the function should act accordingly. That way the same API
> can be used for both.
Hm. Are you suggesting that DTLS should be enabled through a priority
string? I kind of like that. I'm not sure it is sufficient -- some
other functions called before the handshake may also want to know if
DTLS or normal TLS is going to be used. Then the order of calls will
matter -- i.e., if gnutls_priority_set("DTLS") is called before or after
the call to this other API. So a gnutls_init_dtls seems safer to me.
/Simon
More information about the Gnutls-devel
mailing list