| Function silc_ske_initiator
 
 SYNOPSIS
 
    SilcAsyncOperation
    silc_ske_initiator(SilcSKE ske,
                       SilcPacketStream stream,
                       SilcSKEParams params,
                       SilcSKEStartPayload start_payload);
DESCRIPTION
    Starts the SILC Key Exchange protocol as initiator.  The completion
    callback that was set in silc_ske_set_callbacks will be called once
    the protocol has completed.  The `stream' is the network connection
    to the remote host.  The SKE library will handle all key exchange
    packets sent and received in the `stream' connection.  The library will
    also set the remote host's ID automatically to the `stream' if it is
    present in the exchanged packets.  The `params' include SKE parameters,
    and it must be provided.
    If the `start_payload' is NULL the library will generate it
    automatically.  Caller may provide it if it wants to send its own
    security properties instead of using the default ones library
    generates.  If caller provides it, it must not free it once it has
    been given as argument to this function.
    This function returns SilcAsyncOperation operation context which can
    be used to control the protocol from the application.  Application may
    for example safely abort the protocol at any point, if needed.  Returns
    NULL on error.
 
 
 
 |