[dcc2] required tokens / options
Dan Smith
dan at algenta.com
Thu Feb 12 10:53:16 EST 2004
>Immediately a couple of considerations:
>
>One usually *requires* the connection to be encrypted. In fact, this is
>probably the most common case.
>There should be a way to specify mandatory and non mandatory options. A
>first solution might be:
>
> DCC2 Cmd=SEND Sid=1234 File=filehandle Size=1234
> Options=IPv4,IPv6 Require=SSLv2,NAT
> "The sender requires the connection to be encrypted with SSLv2
> and asserts that it is unable to listen"
That is a good point about required options, and it currently isn't
addressed for encryption! The current draft only stats SSL3 and TLS1 are
valid types of connections (which is a glaring omission, sorry!). This
could be solved by defining the connection more precisely. We could define
a token for a non encrypted connection, NOCRYPT for example.
Then when a user initiates a DCC2 negotiation, they can mix and match which
types they will accept. To make encryption mandatory, they could include
their supported encryption protocols and no NOCRYPT token.
Example with mandatory encryption:
DCC2 connection type=ircchat ipv4 ipv6 ssl2 tls1
Example with optional encryption:
DCC2 connection type=ircchat ipv4 ipv6 nocrypt ssl2 tls1
If the receiving client is unable to support the required encryption, it
could then send back a CANNOTACCEPT message (or silently ignore). I think
this fits in more closely with the publish-negotiate paradigm. Boolean
tokens such as NAT are self described as a "required" token for connection,
and tokens in a options group can become required by not publishing the
other options. Can anyone think of any cases that would require explicit
"required" tokens? If so, then we should look into a nomenclature for
marking a token as required.
Cheers!
Dan
---------------------------
Dan Smith (dan at algenta.com)
+1 608-213-2867
Algenta Technologies, LLC
More information about the dcc2
mailing list