SKE: support for simplified key exchange
authorPekka Riikonen <priikone@silcnet.org>
Mon, 28 Apr 2014 19:39:06 +0000 (22:39 +0300)
committerPekka Riikonen <priikone@silcnet.org>
Mon, 28 Apr 2014 19:39:06 +0000 (22:39 +0300)
commit7f26bf8964b7269f9a9f295afdff1b870ecc68e2
tree9828389294ec42042a9ec3bbdbda5323f631e18d
parent705167687caeaa66c371dce7cc88719687337b9e
SKE: support for simplified key exchange

This commit adds support for simplified SILC Key Exchange protocol by
allowing the caller to specify the security properties to be used in
the key exchange.  This will stop the library from exchanging the
SILC_PACKET_KEY_EXCHANGE packet containing the properties.

Support for not sending the SILC_PACKET_SUCCESS acks after a successful
key exchange.

These two changes allow the SKE to be simplified to exchanging only
the SILC_PACKET_KEY_EXHANGE_1 and SILC_PACKET_KEY_EXCHANGE_2 packets
to produce the shared key and to do mutual authentication.

The commit also adds support for generating small proposals in
SILC_PACKET_KEY_EXCHANGE packet by including only one security property
per item instead of listing all of them in the proposal.

Additionally the commit adds support for probe timeout which affects
the first packet sent by initiator.  If responder does not respond to
the first packet in the specified timeframe the key exchange will
timeout.  If it replies the normal key exchange timeout has effect after
that.
lib/silcske/groups.c
lib/silcske/payload.c
lib/silcske/silcske.c
lib/silcske/silcske.h
lib/silcske/silcske_groups.h
lib/silcske/silcske_i.h