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





Structure SilcClientConnectionParams

NAME

    typedef struct { ... } SilcClientConnectionParams;

DESCRIPTION

    Client connection parameters.  This can be filled by the application
    and given as argument to silc_client_connect_to_server,
    silc_client_connect_to_client, silc_client_key_exchange or
    silc_client_send_key_agreement.

SOURCE
    typedef struct SilcClientConnectionParamsStruct {
      /* If this is provided the user's nickname in the network will be the
         string given here.  If it is given, it must be UTF-8 encoded.  If this
         string is not given, the user's username by default is used as nickname.
         The nickname may later be changed by using NICK command.  The maximum
         length for the nickname string is 128 bytes. */
      char *nickname;
    
      /* If this key repository pointer is non-NULL then public key received in
         the key exchange protocol will be verified from this repository.  If
         this is not provided then the `verify_public_key' client operation will
         be called back to application.  If the boolean `verify_notfound' is set
         to TRUE then the `verify_public_key' client operation will be called
         in case the public key is not found in `repository'.  Only public keys
         added with at least SILC_SKR_USAGE_KEY_AGREEMENT in the repository will
         be checked, other keys will be ignored. */
      SilcSKR repository;
      SilcBool verify_notfound;
    
      /* Authentication data.  Application may set here the authentication data
         and authentication method to be used in connecting.  If `auth_set'
         boolean is TRUE then authentication data is provided by application.
         If the authentication method is public key authentication then the key
         pair given as argument when connecting will be used and `auth' field
         is NULL.  If it is passphrase authentication, it can be provided in
         `auth' and `auth_len' fields.  If `auth_set' is FALSE
         the `get_auth_method' client operation will be called to get the
         authentication method and data from application. */
      SilcBool auth_set;
      SilcAuthMethod auth_method;
      void *auth;
      SilcUInt32 auth_len;
    
      /* If this boolean is set to TRUE then the connection will use UDP instead
         of TCP.  If UDP is set then also the next `local_ip' and `local_port'
         must be set. */
      SilcBool udp;
    
      /* The `local_ip' specifies the local IP address used with the connection.
         It must be non-NULL if `udp' boolean is TRUE.  If the `local_port' is
         non-zero it will be used as local port with UDP connection.  The remote
         host will also send packets to the specified address and port.  If the
         `bind_ip' is non-NULL a listener is bound to that address instead of
         `local_ip'. */
      char *local_ip;
      char *bind_ip;
      int local_port;
    
      /* If this boolean is set to TRUE then the key exchange is done with
         perfect forward secrecy. */
      SilcBool pfs;
    
      /* If this boolean is set to TRUE then connection authentication protocol
         is not performed during connecting.  Only key exchange protocol is
         performed.  This usually must be set to TRUE when connecting to another
         client, but must be FALSE with server connections. */
      SilcBool no_authentication;
    
      /* The SILC session detachment data that was returned in the `command_reply'
         client operation for SILC_COMMAND_DETACH command.  If this is provided
         here the client library will attempt to resume the session in the network.
         After the connection is created and the session has been resumed the
         client will receive SILC_COMMAND_NICK command_reply for the client's
         nickname in the network and SILC_COMMAND_JOIN command reply for all the
         channels that the client has joined in the network.  It may also receive
         SILC_COMMAND_UMODE command reply to set user's mode on the network. */
      unsigned char *detach_data;
      SilcUInt32 detach_data_len;
    
      /* Connection timeout.  If non-zero, the connection will timeout unless
         the SILC connection is completed in the specified amount of time. */
      SilcUInt32 timeout_secs;
    
      /* Rekey timeout in seconds.  The client will perform rekey in this
         time interval.  If set to zero, the default value will be used
         (3600 seconds, 1 hour). */
      SilcUInt32 rekey_secs;
    
      /* If this is set to TRUE then the client will ignore all incoming
         Requested Attributes queries and does not reply anything back.  This
         usually leads into situation where server does not anymore send
         the queries after seeing that client does not reply anything back.
         If your application does not support Requested Attributes or you do
         not want to use them set this to TRUE.  See SilcAttribute and
         silc_client_attribute_add for more information on attributes. */
      SilcBool ignore_requested_attributes;
    
      /* User context for SilcClientConnection.  If non-NULL this context is
         set to the 'context' field in SilcClientConnection when the connection
         context is created. */
      void *context;
    } SilcClientConnectionParams;





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