X-Git-Url: http://git.silcnet.org/gitweb/?p=website.git;a=blobdiff_plain;f=docs%2Ftoolkit%2Fmanual%2Fsilcclient-silc_client_key_exchange.html;fp=docs%2Ftoolkit%2Fmanual%2Fsilcclient-silc_client_key_exchange.html;h=85b5c3ffc7fb280df1b6122430f2c4c43ad88d36;hp=0000000000000000000000000000000000000000;hb=80b80cef93d9dff6acc4bc8e3a522c55fcdc3fca;hpb=43e53f529ca5c7d2ddb7cee8e76e273631e6f1e2 diff --git a/docs/toolkit/manual/silcclient-silc_client_key_exchange.html b/docs/toolkit/manual/silcclient-silc_client_key_exchange.html new file mode 100644 index 0000000..85b5c3f --- /dev/null +++ b/docs/toolkit/manual/silcclient-silc_client_key_exchange.html @@ -0,0 +1,337 @@ + + + + + + + + + + + + + + + + + + + +
Copyright © 2001 - 2007 SILC Project
+ SILC Project Website
+ SILC Toolkit Reference Manual
+ Index
+ + +
+ + + + + + + + + + + + + + +
+ + + +
+
+ + + +SILC Toolkit Reference Manual
+ + +SILC Crypto Library
+    Introduction to SILC RNG
+    SILC RNG Interface
+    SILC Cipher API
+    SILC PKCS API
+    SILC Public Key API
+    SILC PKCS #1 API
+    SILC Hash Interface
+    SILC HMAC Interface
+SILC Core Library
+    SILC Authentication Interface
+    SILC Message Interface
+    SILC Channel Interface
+    SILC Command Interface
+    SILC Notify Interface
+    SILC Status Types
+    SILC Modes
+    SILC ID Interface
+    SILC Argument Interface
+    SILC Attributes Interface
+    Packet Engine Interface
+    SILC Public Key Payload Interface
+SILC Key Exchange Library
+    SILC SKE Interface
+    SILC Connection Authentication Interface
+SILC VCard Library
+    SILC VCard Interface
+SILC Math Library
+    SILC MP Interface
+    SILC Math Interface
+SILC Client Library
+    Using SILC Client Library Tutorial
+    Arguments for command_reply Client Operation
+    SilcStatus Error Arguments in command_reply Client Operation
+    Arguments for notify Client Operation
+    Unicode and UTF-8 Strings in Client Library
+    Client Library Interface Reference
+    Client Entry Interface Reference
+SILC ASN.1 Library
+    SILC ASN.1 Interface
+    SILC BER interface
+SILC HTTP Library
+    SILC HTTP Server Interface
+    SILC HTTP PHP Translator
+SILC Utility Library
+    Basic Types and Definitions
+    Data Buffer Interface
+    Data Buffer Format Interface
+    Hash Table Interface
+    Memory Allocation Interface
+    Data Stack (memory pool) Interface
+    Finite State Machine Interface
+    Thread Interface
+    Mutual Exclusion Lock Interface
+    Condition Variable Interface
+    Atomic Operations Interface
+    Network (TCP and UDP) Interface
+    Scheduler Interface
+    Asynchronous Operation Interface
+    Abstract Stream Interface
+    Socket Stream Interface
+    File Descriptor Stream Interface
+    File Utility Functions
+    String Utility Interface
+    Snprintf Interface
+    UTF-8 String Interface
+    Stringprep Interface
+    Utility Functions
+    List Interface
+    Dynamic List Interface
+    MIME Interface
+    Time Utility Functions
+    Logging Interface
+    Config File Interface
+SILC Key Repository Library
+    SILC SKR Interface
+SILC Application Utility Library
+    SILC Application Utilities
+    SILC ID Cache Interface
+SILC SFTP Library
+    SILC SFTP Interface
+    SFTP Filesystems Interface
+ +
+Resource Links +
+SILC Project Website
+SILC Protocol Documentation
+SILC White Paper
+SILC FAQs
+ +
+



+
+
+ + + + +
+
+ +Function silc_client_key_exchange

+ + +SYNOPSIS + +

+    SilcAsyncOperation
+    silc_client_key_exchange(SilcClient client,
+                             SilcClientConnectionParams *params,
+                             SilcPublicKey public_key,
+                             SilcPrivateKey private_key,
+                             SilcStream stream,
+                             SilcConnectionType conn_type,
+                             SilcClientConnectCallback callback,
+                             void *context);
+
+
+DESCRIPTION + +

+    Starts key exchange protocol and authentication protocol in the
+    connection indicated by `stream'.  This function can be be used to
+    start SILC session with remote host (usually server) when the caller
+    has itself created the connection, instead of calling the function
+    silc_client_connect_to_server or silc_client_connect_to_client.  If
+    one of those functions was used this function must not be called as
+    in that case the key exchange is performed automatically.
+
+    Use this function only if you have created the connection by yourself.
+    After creating the connection the socket must be wrapped into a
+    socket stream.  See silcsocketstream.h for more information.  Note that
+    the `stream' must have valid remote IP address (and optionally also
+    hostname) and port set.
+
+    The `params' may be provided to provide various connection parameters.
+    The `public_key' and the `private_key' is your identity used in this
+    session.  The `callback' with `context' will be called after the session
+    has been set up.  It will also be called later when remote host
+    disconnects.  The `conn_type' is the type of session this is going to
+    be.  If the remote is SILC server it is SILC_CONN_SERVER or if it is
+    SILC client it is SILC_CONN_CLIENT.
+
+    Returns SilcAsyncOperation which can be used to cancel the connecting,
+    or NULL on error.  Note that the returned pointer becomes invalid
+    after the `callback' is called.
+
+
+EXAMPLE + +

+    int sock;
+
+    // Create remote connection stream.  Resolve hostname and IP also.
+    sock = create_connection(remote_host, port);
+    silc_socket_tcp_stream_create(sock, TRUE, FALSE, schedule,
+                                  stream_create_cb, app);
+
+    // Stream callback delivers our new SilcStream context
+    void stream_create_cb(SilcSocketStreamStatus status, SilcStream stream,
+                          void *context)
+    {
+      ...
+      if (status != SILC_SOCKET_OK)
+        error(status);
+
+      // Start key exchange
+      silc_client_key_exchange(client, NULL, public_key, private_key,
+                               stream, SILC_CONN_SERVER, connection_cb, app);
+      ...
+    }
+
+
+



+
+
+ + + + +
+
+ +Client Library Interface
+SilcClientConnectionStatus
+SilcClientRunning
+SilcClientStopped
+SilcClientConnectCallback
+SilcClient
+SilcClientConnection
+SilcChannelUser
+SilcClientStats
+SilcKeyAgreementStatus
+SilcKeyAgreementCallback
+SilcPrivateMessageKeys
+SilcChannelPrivateKey
+SilcAskPassphrase
+SilcVerifyPublicKey
+SilcGetAuthMeth
+SilcClientMessageType
+SilcClientOperations
+SilcClientParams
+silc_client_alloc
+silc_client_free
+silc_client_init
+silc_client_run
+silc_client_run_one
+silc_client_stop
+SilcClientConnectionParams
+silc_client_connect_to_server
+silc_client_connect_to_client
+silc_client_key_exchange
+silc_client_close_connection
+silc_client_send_channel_message
+silc_client_send_private_message
+silc_client_private_message_wait_init
+silc_client_private_message_wait_uninit
+silc_client_private_message_wait
+silc_client_on_channel
+silc_client_command_call
+SilcClientCommandReply
+silc_client_command_send
+silc_client_command_pending
+silc_client_add_private_message_key
+silc_client_add_private_message_key_ske
+silc_client_del_private_message_key
+silc_client_list_private_message_keys
+silc_client_free_private_message_keys
+silc_client_private_message_key_is_set
+silc_client_add_channel_private_key
+silc_client_del_channel_private_keys
+silc_client_del_channel_private_key
+silc_client_list_channel_private_keys
+silc_client_current_channel_private_key
+silc_client_send_key_agreement
+silc_client_perform_key_agreement
+silc_client_perform_key_agreement_stream
+silc_client_abort_key_agreement
+silc_client_set_away_message
+SilcClientMonitorStatus
+SilcClientFileError
+SilcClientFileMonitor
+SilcClientFileName
+SilcClientFileAskName
+silc_client_file_send
+silc_client_file_receive
+silc_client_file_close
+silc_client_attribute_add
+silc_client_attribute_del
+silc_client_attributes_get
+silc_client_attributes_request
+silc_client_nickname_format
+silc_client_nickname_parse
+
+ +



+
+
+ + + +
+ + + + + + +
Copyright © 2001 - 2007 SILC Project
+ SILC Project Website
+ SILC Toolkit Reference Manual
+ Index
+ + +