updates.
[website.git] / docs / toolkit / manual / silcclient-SilcClientOperations.html
1
2 <html>
3 <head>
4  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-a" />
5  <meta http-equiv="Content-Language" content="en" />
6  <meta name="description" content="SILC Secure Internet Live Conferencing" />
7  <meta name="keywords" content="SILC, secure, chat, protocol, cipher, encrypt, SKE" />
8  <meta content="INDEX, FOLLOW" name="ROBOTS" />
9  <style type="text/css">
10   <!--
11   body { color: #000000; background: #f0f0f0; font-family: Helvetica, Arial, Sans-serif; }
12   a:link { text-decoration: none; color: #2f488f; }
13   a:visited { text-decoration: none;color: #2f488f; }
14   a:active { text-decoration: none; color: #2f488f; }
15   -->
16  </style>
17 </head>
18
19 <body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
20
21 <table border="0" cellspacing="0" cellpadding="6" width="100%">
22  <tr valign="top" bgcolor="#dddddd">
23   <td><small>Copyright &copy; 2001 - 2007 SILC Project<br />
24     <a href="http://silcnet.org">SILC Project Website</a></small></td>
25   <td align="right"><small>
26    <a href="index.html">SILC Toolkit Reference Manual</a><br />
27    <a href="toolkit_index.html">Index</a></small></td>
28    </small></td>
29  </tr>
30 </table>
31 <table border="0" cellspacing="0" cellpadding="0" width="100%">
32 <tr bgcolor="#444444"><td><img src="space.gif" width="1" height="1"border="0" alt="" ></td></tr>
33 </table>
34
35 <table cellpadding="0" cellspacing="0" border="0">
36  <tr valign="top">
37
38   <td width="200" bgcolor="#f0f0f0">
39    <img src="space.gif" width="1" height="1" border="0" alt="">
40    <table width="100%" cellpadding="2" cellspacing="2" border="0">
41     <tr valign="top"><td>
42 <br />
43 <small>
44 <!-- Template file for the big index that appears in the Toolkit reference
45 manual on the left side.  With this file it is possible to add other than
46 automatically generated links to that list. -->
47
48 <a href="index.html"><img src="box.gif" border="0" alt="">SILC Toolkit Reference Manual</a><br />
49
50
51 <a href=silccryptlib.html><img src=box.gif border=0 alt=>SILC Crypto Library</a><br />
52 &nbsp;&nbsp;&nbsp; <a href=silcrng_intro.html><img src=box2.gif border=0 alt=>Introduction to SILC RNG</a><br />
53 &nbsp;&nbsp;&nbsp; <a href=silcrng.html><img src=box2.gif border=0 alt=>SILC RNG Interface</a><br />
54 &nbsp;&nbsp;&nbsp; <a href=silccipher.html><img src=box2.gif border=0 alt=>SILC Cipher API</a><br />
55 &nbsp;&nbsp;&nbsp; <a href=silcpkcs.html><img src=box2.gif border=0 alt=>SILC PKCS API</a><br />
56 &nbsp;&nbsp;&nbsp; <a href=silcpk.html><img src=box2.gif border=0 alt=>SILC Public Key API</a><br />
57 &nbsp;&nbsp;&nbsp; <a href=silcpkcs1.html><img src=box2.gif border=0 alt=>SILC PKCS #1 API</a><br />
58 &nbsp;&nbsp;&nbsp; <a href=silchash.html><img src=box2.gif border=0 alt=>SILC Hash Interface</a><br />
59 &nbsp;&nbsp;&nbsp; <a href=silchmac.html><img src=box2.gif border=0 alt=>SILC HMAC Interface</a><br />
60 <a href=silccorelib.html><img src=box.gif border=0 alt=>SILC Core Library</a><br />
61 &nbsp;&nbsp;&nbsp; <a href=silcauth.html><img src=box2.gif border=0 alt=>SILC Authentication Interface</a><br />
62 &nbsp;&nbsp;&nbsp; <a href=silcmessage.html><img src=box2.gif border=0 alt=>SILC Message Interface</a><br />
63 &nbsp;&nbsp;&nbsp; <a href=silcchannel.html><img src=box2.gif border=0 alt=>SILC Channel Interface</a><br />
64 &nbsp;&nbsp;&nbsp; <a href=silccommand.html><img src=box2.gif border=0 alt=>SILC Command Interface</a><br />
65 &nbsp;&nbsp;&nbsp; <a href=silcnotify.html><img src=box2.gif border=0 alt=>SILC Notify Interface</a><br />
66 &nbsp;&nbsp;&nbsp; <a href=silcstatus.html><img src=box2.gif border=0 alt=>SILC Status Types</a><br />
67 &nbsp;&nbsp;&nbsp; <a href=silcmode.html><img src=box2.gif border=0 alt=>SILC Modes</a><br />
68 &nbsp;&nbsp;&nbsp; <a href=silcid.html><img src=box2.gif border=0 alt=>SILC ID Interface</a><br />
69 &nbsp;&nbsp;&nbsp; <a href=silcargument.html><img src=box2.gif border=0 alt=>SILC Argument Interface</a><br />
70 &nbsp;&nbsp;&nbsp; <a href=silcattrs.html><img src=box2.gif border=0 alt=>SILC Attributes Interface</a><br />
71 &nbsp;&nbsp;&nbsp; <a href=silcpacket.html><img src=box2.gif border=0 alt=>Packet Engine Interface</a><br />
72 &nbsp;&nbsp;&nbsp; <a href=silcpubkey.html><img src=box2.gif border=0 alt=>SILC Public Key Payload Interface</a><br />
73 <a href=silcskelib.html><img src=box.gif border=0 alt=>SILC Key Exchange Library</a><br />
74 &nbsp;&nbsp;&nbsp; <a href=silcske.html><img src=box2.gif border=0 alt=>SILC SKE Interface</a><br />
75 &nbsp;&nbsp;&nbsp; <a href=silcconnauth.html><img src=box2.gif border=0 alt=>SILC Connection Authentication Interface</a><br />
76 <a href=silcvcardlib.html><img src=box.gif border=0 alt=>SILC VCard Library</a><br />
77 &nbsp;&nbsp;&nbsp; <a href=silcvcard.html><img src=box2.gif border=0 alt=>SILC VCard Interface</a><br />
78 <a href=silcmathlib.html><img src=box.gif border=0 alt=>SILC Math Library</a><br />
79 &nbsp;&nbsp;&nbsp; <a href=silcmp.html><img src=box2.gif border=0 alt=>SILC MP Interface</a><br />
80 &nbsp;&nbsp;&nbsp; <a href=silcmath.html><img src=box2.gif border=0 alt=>SILC Math Interface</a><br />
81 <a href=silcclientlib.html><img src=box.gif border=0 alt=>SILC Client Library</a><br />
82 &nbsp;&nbsp;&nbsp; <a href=silcclient_using.html><img src=box2.gif border=0 alt=>Using SILC Client Library Tutorial</a><br />
83 &nbsp;&nbsp;&nbsp; <a href=command_reply_args.html><img src=box2.gif border=0 alt=>Arguments for <b>command_reply</b> Client Operation</a><br />
84 &nbsp;&nbsp;&nbsp; <a href=silcstatus_args.html><img src=box2.gif border=0 alt=>SilcStatus Error Arguments in <b>command_reply</b> Client Operation</a><br />
85 &nbsp;&nbsp;&nbsp; <a href=notifyargs.html><img src=box2.gif border=0 alt=>Arguments for <b>notify</b> Client Operation</a><br />
86 &nbsp;&nbsp;&nbsp; <a href=silcclient_unicode.html><img src=box2.gif border=0 alt=>Unicode and UTF-8 Strings in Client Library</a><br />
87 &nbsp;&nbsp;&nbsp; <a href=silcclient.html><img src=box2.gif border=0 alt=>Client Library Interface Reference</a><br />
88 &nbsp;&nbsp;&nbsp; <a href=silcclient_entry.html><img src=box2.gif border=0 alt=>Client Entry Interface Reference</a><br />
89 <a href=silcasn1lib.html><img src=box.gif border=0 alt=>SILC ASN.1 Library</a><br />
90 &nbsp;&nbsp;&nbsp; <a href=silcasn1.html><img src=box2.gif border=0 alt=>SILC ASN.1 Interface</a><br />
91 &nbsp;&nbsp;&nbsp; <a href=silcber.html><img src=box2.gif border=0 alt=>SILC BER interface</a><br />
92 <a href=silchttplib.html><img src=box.gif border=0 alt=>SILC HTTP Library</a><br />
93 &nbsp;&nbsp;&nbsp; <a href=silchttpserver.html><img src=box2.gif border=0 alt=>SILC HTTP Server Interface</a><br />
94 &nbsp;&nbsp;&nbsp; <a href=silchttpphp.html><img src=box2.gif border=0 alt=>SILC HTTP PHP Translator</a><br />
95 <a href=silcutillib.html><img src=box.gif border=0 alt=>SILC Utility Library</a><br />
96 &nbsp;&nbsp;&nbsp; <a href=silctypes.html><img src=box2.gif border=0 alt=>Basic Types and Definitions</a><br />
97 &nbsp;&nbsp;&nbsp; <a href=silcbuffer.html><img src=box2.gif border=0 alt=>Data Buffer Interface</a><br />
98 &nbsp;&nbsp;&nbsp; <a href=silcbuffmt.html><img src=box2.gif border=0 alt=>Data Buffer Format Interface</a><br />
99 &nbsp;&nbsp;&nbsp; <a href=silchashtable.html><img src=box2.gif border=0 alt=>Hash Table Interface</a><br />
100 &nbsp;&nbsp;&nbsp; <a href=silcmemory.html><img src=box2.gif border=0 alt=>Memory Allocation Interface</a><br />
101 &nbsp;&nbsp;&nbsp; <a href=silcstack.html><img src=box2.gif border=0 alt=>Data Stack (memory pool) Interface</a><br />
102 &nbsp;&nbsp;&nbsp; <a href=silcfsm.html><img src=box2.gif border=0 alt=>Finite State Machine Interface</a><br />
103 &nbsp;&nbsp;&nbsp; <a href=silcthread.html><img src=box2.gif border=0 alt=>Thread Interface</a><br />
104 &nbsp;&nbsp;&nbsp; <a href=silcmutex.html><img src=box2.gif border=0 alt=>Mutual Exclusion Lock Interface</a><br />
105 &nbsp;&nbsp;&nbsp; <a href=silccond.html><img src=box2.gif border=0 alt=>Condition Variable Interface</a><br />
106 &nbsp;&nbsp;&nbsp; <a href=silcatomic.html><img src=box2.gif border=0 alt=>Atomic Operations Interface</a><br />
107 &nbsp;&nbsp;&nbsp; <a href=silcnet.html><img src=box2.gif border=0 alt=>Network (TCP and UDP) Interface</a><br />
108 &nbsp;&nbsp;&nbsp; <a href=silcschedule.html><img src=box2.gif border=0 alt=>Scheduler Interface</a><br />
109 &nbsp;&nbsp;&nbsp; <a href=silcasync.html><img src=box2.gif border=0 alt=>Asynchronous Operation Interface</a><br />
110 &nbsp;&nbsp;&nbsp; <a href=silcstream.html><img src=box2.gif border=0 alt=>Abstract Stream Interface</a><br />
111 &nbsp;&nbsp;&nbsp; <a href=silcsocketstream.html><img src=box2.gif border=0 alt=>Socket Stream Interface</a><br />
112 &nbsp;&nbsp;&nbsp; <a href=silcfdstream.html><img src=box2.gif border=0 alt=>File Descriptor Stream Interface</a><br />
113 &nbsp;&nbsp;&nbsp; <a href=silcfileutil.html><img src=box2.gif border=0 alt=>File Utility Functions</a><br />
114 &nbsp;&nbsp;&nbsp; <a href=silcstrutil.html><img src=box2.gif border=0 alt=>String Utility Interface</a><br />
115 &nbsp;&nbsp;&nbsp; <a href=silcsnprintf.html><img src=box2.gif border=0 alt=>Snprintf Interface</a><br />
116 &nbsp;&nbsp;&nbsp; <a href=silcutf8.html><img src=box2.gif border=0 alt=>UTF-8 String Interface</a><br />
117 &nbsp;&nbsp;&nbsp; <a href=silcstringprep.html><img src=box2.gif border=0 alt=>Stringprep Interface</a><br />
118 &nbsp;&nbsp;&nbsp; <a href=silcutil.html><img src=box2.gif border=0 alt=>Utility Functions</a><br />
119 &nbsp;&nbsp;&nbsp; <a href=silclist.html><img src=box2.gif border=0 alt=>List Interface</a><br />
120 &nbsp;&nbsp;&nbsp; <a href=silcdlist.html><img src=box2.gif border=0 alt=>Dynamic List Interface</a><br />
121 &nbsp;&nbsp;&nbsp; <a href=silcmime.html><img src=box2.gif border=0 alt=>MIME Interface</a><br />
122 &nbsp;&nbsp;&nbsp; <a href=silctime.html><img src=box2.gif border=0 alt=>Time Utility Functions</a><br />
123 &nbsp;&nbsp;&nbsp; <a href=silclog.html><img src=box2.gif border=0 alt=>Logging Interface</a><br />
124 &nbsp;&nbsp;&nbsp; <a href=silcconfig.html><img src=box2.gif border=0 alt=>Config File Interface</a><br />
125 <a href=silcskrlib.html><img src=box.gif border=0 alt=>SILC Key Repository Library</a><br />
126 &nbsp;&nbsp;&nbsp; <a href=silcskr.html><img src=box2.gif border=0 alt=>SILC SKR Interface</a><br />
127 <a href=silcaputillib.html><img src=box.gif border=0 alt=>SILC Application Utility Library</a><br />
128 &nbsp;&nbsp;&nbsp; <a href=silcapputil.html><img src=box2.gif border=0 alt=>SILC Application Utilities</a><br />
129 &nbsp;&nbsp;&nbsp; <a href=silcidcache.html><img src=box2.gif border=0 alt=>SILC ID Cache Interface</a><br />
130 <a href=silcsftplib.html><img src=box.gif border=0 alt=>SILC SFTP Library</a><br />
131 &nbsp;&nbsp;&nbsp; <a href=silcsftp.html><img src=box2.gif border=0 alt=>SILC SFTP Interface</a><br />
132 &nbsp;&nbsp;&nbsp; <a href=silcsftp_fs.html><img src=box2.gif border=0 alt=>SFTP Filesystems Interface</a><br />
133
134 <br />
135 <b>Resource Links</b>
136 <br />
137 <a href="http://silcnet.org"><img src="box.gif" border="0" alt="">SILC Project Website</a><br />
138 <a href="http://silcnet.org/support/documentation/"><img src="box.gif" border="0" alt="">SILC Protocol Documentation</a><br />
139 <a href="http://silcnet.org/support/documentation/wp/"><img src="box.gif" border="0" alt="">SILC White Paper</a><br />
140 <a href="http://silcnet.org/support/faq/"><img src="box.gif" border="0" alt="">SILC FAQs</a><br />
141
142 </small>
143 <br /><br /><br /><br />
144     </td></tr>
145    </table>
146   </td>
147
148   <td bgcolor="#cccccc" background="dot.gif">
149    <img src="space.gif" width="1" height="1" border="0" alt=""></td>
150
151   <td width="720" bgcolor="#ffffff">
152    <img src="space.gif" width="1" height="1" border="0" alt="">
153    <table cellpadding="2" cellspacing="6" width="100%">
154     <tr><td valign="top">
155 <br />
156
157 <FONT SIZE="+2" COLOR="#000055"><B>Structure <A NAME="SilcClientOperations">SilcClientOperations</A></FONT></B><BR><BR>
158
159 <FONT SIZE="+1"><B>
160 <FONT COLOR="#000055">NAME
161 </FONT></B></FONT>
162 <PRE><FONT FACE="courier" size="3">
163     typedef struct { ... } <B>SilcClientOperations</B>;
164
165 </FONT></PRE><FONT SIZE="+1"><B>
166 <FONT COLOR="#000055">DESCRIPTION
167 </FONT></B></FONT>
168 <PRE><FONT FACE="Helvetiva,Arial,Sans-serif">
169     SILC Client Operations. These must be implemented by the application.
170     The Client library may call any of these routines at any time.  The
171     routines are used to deliver certain information to the application
172     or from the application to the client library.
173
174 </FONT></PRE><FONT SIZE="+1"><B>
175 <FONT COLOR="#000055">SOURCE
176 </FONT></B></FONT>
177 <PRE><FONT FACE="courier" size="3">    typedef struct SilcClientOperationsStruct {
178       /* Message sent to the application by library. `conn' associates the
179          message to a specific connection.  `conn', however, may be NULL.
180          The `type' indicates the type of the message sent by the library.
181          The application can for example filter the message according the
182          type.  The variable argument list is arguments to the formatted
183          message `msg'.  A <A HREF="silcclient_entry-SilcClientEntry.html">SilcClientEntry</A>, <A HREF="silcclient_entry-SilcChannelEntry.html">SilcChannelEntry</A> or <A HREF="silcclient_entry-SilcServerEntry.html">SilcServerEntry</A>
184          can be associated with the message inside the <A HREF="silcclient-SilcClientConnection.html">SilcClientConnection</A>
185          by the library, and application may use it to better target the
186          message. */
187       void (*say)(<A HREF="silcclient-SilcClient.html">SilcClient</A> client, <A HREF="silcclient-SilcClientConnection.html">SilcClientConnection</A> conn,
188                   <A HREF="silcclient-SilcClientMessageType.html">SilcClientMessageType</A> type, char *msg, ...);
189     
190       /* Message for a channel. The `sender' is the sender of the message
191          The `channel' is the channel. The `message' is the message.  Note
192          that `message' maybe NULL.  The `flags' indicates message flags
193          and it is used to determine how the message can be interpreted
194          (like it may tell the message is multimedia message).  The `payload'
195          may be used to retrieve all the details of the message. */
196       void (*channel_message)(<A HREF="silcclient-SilcClient.html">SilcClient</A> client, <A HREF="silcclient-SilcClientConnection.html">SilcClientConnection</A> conn,
197                               <A HREF="silcclient_entry-SilcClientEntry.html">SilcClientEntry</A> sender, <A HREF="silcclient_entry-SilcChannelEntry.html">SilcChannelEntry</A> channel,
198                               <A HREF="silcmessage-SilcMessagePayload.html">SilcMessagePayload</A> payload,
199                               <A HREF="silcclient-SilcChannelPrivateKey.html">SilcChannelPrivateKey</A> key, <A HREF="silcmessage-SilcMessageFlags.html">SilcMessageFlags</A> flags,
200                               const unsigned char *message,
201                               <A HREF="silctypes-SilcUInt32.html">SilcUInt32</A> message_len);
202     
203       /* Private message to the client. The `sender' is the sender of the
204          message. The message is `message'and maybe NULL.  The `flags'
205          indicates message flags  and it is used to determine how the message
206          can be interpreted (like it may tell the message is multimedia
207          message).  The `payload' may be used to retrieve all the details of
208          the message. */
209       void (*private_message)(<A HREF="silcclient-SilcClient.html">SilcClient</A> client, <A HREF="silcclient-SilcClientConnection.html">SilcClientConnection</A> conn,
210                               <A HREF="silcclient_entry-SilcClientEntry.html">SilcClientEntry</A> sender, <A HREF="silcmessage-SilcMessagePayload.html">SilcMessagePayload</A> payload,
211                               <A HREF="silcmessage-SilcMessageFlags.html">SilcMessageFlags</A> flags, const unsigned char *message,
212                               <A HREF="silctypes-SilcUInt32.html">SilcUInt32</A> message_len);
213     
214       /* Notify message to the client.  The arguments are notify `type' specific.
215          See separate documentation in the Toolkit Reference Manual for the notify
216          arguments. */
217       void (*notify)(<A HREF="silcclient-SilcClient.html">SilcClient</A> client, <A HREF="silcclient-SilcClientConnection.html">SilcClientConnection</A> conn,
218                      <A HREF="silcnotify-SilcNotifyType.html">SilcNotifyType</A> type, ...);
219     
220       /* Command handler. This function is called always after application has
221          called a command.  It will be called to indicate that the command
222          was processed.  It will also be called if error occurs while processing
223          the command.  The `success' indicates whether the command was sent
224          or if error occurred.  The `status' indicates the actual error.
225          The `argc' and `argv' are the command line arguments sent to the
226          command by application.  Note that, this is not reply to the command
227          from server, this is merely and indication to application that the
228          command was processed. */
229       void (*command)(<A HREF="silcclient-SilcClient.html">SilcClient</A> client, <A HREF="silcclient-SilcClientConnection.html">SilcClientConnection</A> conn,
230                       <A HREF="silctypes-SilcBool.html">SilcBool</A> success, <A HREF="silccommand-SilcCommand.html">SilcCommand</A> command, <A HREF="silcstatus-SilcStatus.html">SilcStatus</A> status,
231                       <A HREF="silctypes-SilcUInt32.html">SilcUInt32</A> argc, unsigned char **argv);
232     
233       /* Command reply handler.  Delivers a reply to command that was sent
234          earlier.  The `conn' is the associated client connection.  The `command'
235          indicates the command reply type.  If the `status' other than
236          SILC_STATUS_OK an error occurred.  In this case the `error' will indicate
237          the error.  It is possible to receive list of command replies and list
238          of errors.  In this case the `status' will indicate it is an list entry
239          (the `status' is SILC_STATUS_LIST_START, SILC_STATUS_LIST_ITEM and/or
240          SILC_STATUS_LIST_END).
241     
242          The arguments received in `ap' are command specific.  See a separate
243          documentation in the Toolkit Reference Manual for the command reply
244          arguments. */
245       void (*command_reply)(<A HREF="silcclient-SilcClient.html">SilcClient</A> client, <A HREF="silcclient-SilcClientConnection.html">SilcClientConnection</A> conn,
246                             <A HREF="silccommand-SilcCommand.html">SilcCommand</A> command, <A HREF="silcstatus-SilcStatus.html">SilcStatus</A> status,
247                             <A HREF="silcstatus-SilcStatus.html">SilcStatus</A> error, va_list ap);
248     
249       /* Find authentication method and authentication data by hostname and
250          port. The hostname may be IP address as well. The `auth_method' is
251          the authentication method the remote connection requires.  It is
252          however possible that remote accepts also some other authentication
253          method.  Application should use the method that may have been
254          configured for this connection.  If none has been configured it should
255          use the required `auth_method'.  If the `auth_method' is
256          SILC_AUTH_NONE, server does not require any authentication or the
257          required authentication method is not known.  The `completion'
258          callback must be called to deliver the chosen authentication method
259          and data. The `conn' may be NULL. */
260       void (*get_auth_method)(<A HREF="silcclient-SilcClient.html">SilcClient</A> client, <A HREF="silcclient-SilcClientConnection.html">SilcClientConnection</A> conn,
261                               char *hostname, <A HREF="silctypes-SilcUInt16.html">SilcUInt16</A> port,
262                               <A HREF="silcauth-SilcAuthMethod.html">SilcAuthMethod</A> auth_method,
263                               <A HREF="silcclient-SilcGetAuthMeth.html">SilcGetAuthMeth</A> completion, void *context);
264     
265       /* Called to verify received public key. The `conn_type' indicates which
266          entity (server or client) has sent the public key. If user decides to
267          trust the key the application may save the key as trusted public key for
268          later use. The `completion' must be called after the public key has
269          been verified.  A <A HREF="silcclient_entry-SilcClientEntry.html">SilcClientEntry</A> or <A HREF="silcclient_entry-SilcServerEntry.html">SilcServerEntry</A> can be associated
270          with this request inside the <A HREF="silcclient-SilcClientConnection.html">SilcClientConnection</A> by the library, and
271          application may use it to better target the verification request. */
272       void (*verify_public_key)(<A HREF="silcclient-SilcClient.html">SilcClient</A> client, <A HREF="silcclient-SilcClientConnection.html">SilcClientConnection</A> conn,
273                                 <A HREF="silcconnauth-SilcConnectionType.html">SilcConnectionType</A> conn_type,
274                                 <A HREF="silcpkcs-SilcPublicKey.html">SilcPublicKey</A> public_key,
275                                 <A HREF="silcclient-SilcVerifyPublicKey.html">SilcVerifyPublicKey</A> completion, void *context);
276     
277       /* Ask from end user a passphrase or a password. The passphrase is
278          returned to the library by calling the `completion' callback with
279          the `context'. The returned passphrase SHOULD be in UTF-8 encoded,
280          if not then the library will attempt to encode. */
281       void (*ask_passphrase)(<A HREF="silcclient-SilcClient.html">SilcClient</A> client, <A HREF="silcclient-SilcClientConnection.html">SilcClientConnection</A> conn,
282                              <A HREF="silcclient-SilcAskPassphrase.html">SilcAskPassphrase</A> completion, void *context);
283     
284       /* Called to indicate that incoming key agreement request has been
285          received.  If the application wants to perform key agreement it may
286          call <A HREF="silcclient-silc_client_perform_key_agreement.html">silc_client_perform_key_agreement</A> to initiate key agreement or
287          <A HREF="silcclient-silc_client_send_key_agreement.html">silc_client_send_key_agreement</A> to provide connection point to the
288          remote client in case the `hostname' is NULL.  If key agreement is
289          not desired this request can be ignored.  The `protocol' is either
290          value 0 for TCP or value 1 for UDP. */
291       void (*key_agreement)(<A HREF="silcclient-SilcClient.html">SilcClient</A> client, <A HREF="silcclient-SilcClientConnection.html">SilcClientConnection</A> conn,
292                             <A HREF="silcclient_entry-SilcClientEntry.html">SilcClientEntry</A> client_entry,
293                             const char *hostname, <A HREF="silctypes-SilcUInt16.html">SilcUInt16</A> protocol,
294                             <A HREF="silctypes-SilcUInt16.html">SilcUInt16</A> port);
295     
296       /* Notifies application that file transfer protocol session is being
297          requested by the remote client indicated by the `client_entry' from
298          the `hostname' and `port'. The `session_id' is the file transfer
299          session and it can be used to either accept or reject the file
300          transfer request, by calling the <A HREF="silcclient-silc_client_file_receive.html">silc_client_file_receive</A> or
301          <A HREF="silcclient-silc_client_file_close.html">silc_client_file_close</A>, respectively. */
302       void (*ftp)(<A HREF="silcclient-SilcClient.html">SilcClient</A> client, <A HREF="silcclient-SilcClientConnection.html">SilcClientConnection</A> conn,
303                   <A HREF="silcclient_entry-SilcClientEntry.html">SilcClientEntry</A> client_entry, <A HREF="silctypes-SilcUInt32.html">SilcUInt32</A> session_id,
304                   const char *hostname, <A HREF="silctypes-SilcUInt16.html">SilcUInt16</A> port);
305     } <B>SilcClientOperations</B>;</FONT></PRE>
306 <br /><br /><br /><br />
307     </td></tr>
308    </table>
309   </td>
310
311   <td bgcolor="#cccccc" background="dot.gif">
312    <img src="space.gif" width="1" height="1" border="0" alt=""></td>
313
314   <td width="180" bgcolor="#f0f0f0">
315     <img src="space.gif" width="1" height="1" border="0" alt="">
316     <table width="100%" cellpadding="4" cellspacing="0">
317     <tr valign="top"><td>
318 <br />
319 <font face="Helvetica,Arial,Sans-serif" size="1">
320 <A HREF="silcclient.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">Client Library Interface</A><BR>
321 <A HREF="silcclient-SilcClientConnectionStatus.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcClientConnectionStatus</A><BR>
322 <A HREF="silcclient-SilcClientRunning.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcClientRunning</A><BR>
323 <A HREF="silcclient-SilcClientStopped.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcClientStopped</A><BR>
324 <A HREF="silcclient-SilcClientConnectCallback.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcClientConnectCallback</A><BR>
325 <A HREF="silcclient-SilcClient.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcClient</A><BR>
326 <A HREF="silcclient-SilcClientConnection.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcClientConnection</A><BR>
327 <A HREF="silcclient-SilcChannelUser.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcChannelUser</A><BR>
328 <A HREF="silcclient-SilcClientStats.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcClientStats</A><BR>
329 <A HREF="silcclient-SilcKeyAgreementStatus.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcKeyAgreementStatus</A><BR>
330 <A HREF="silcclient-SilcKeyAgreementCallback.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcKeyAgreementCallback</A><BR>
331 <A HREF="silcclient-SilcPrivateMessageKeys.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcPrivateMessageKeys</A><BR>
332 <A HREF="silcclient-SilcChannelPrivateKey.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcChannelPrivateKey</A><BR>
333 <A HREF="silcclient-SilcAskPassphrase.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcAskPassphrase</A><BR>
334 <A HREF="silcclient-SilcVerifyPublicKey.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcVerifyPublicKey</A><BR>
335 <A HREF="silcclient-SilcGetAuthMeth.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcGetAuthMeth</A><BR>
336 <A HREF="silcclient-SilcClientMessageType.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcClientMessageType</A><BR>
337 <A HREF="silcclient-SilcClientOperations.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcClientOperations</A><BR>
338 <A HREF="silcclient-SilcClientParams.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcClientParams</A><BR>
339 <A HREF="silcclient-silc_client_alloc.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_alloc</A><BR>
340 <A HREF="silcclient-silc_client_free.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_free</A><BR>
341 <A HREF="silcclient-silc_client_init.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_init</A><BR>
342 <A HREF="silcclient-silc_client_run.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_run</A><BR>
343 <A HREF="silcclient-silc_client_run_one.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_run_one</A><BR>
344 <A HREF="silcclient-silc_client_stop.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_stop</A><BR>
345 <A HREF="silcclient-SilcClientConnectionParams.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcClientConnectionParams</A><BR>
346 <A HREF="silcclient-silc_client_connect_to_server.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_connect_to_server</A><BR>
347 <A HREF="silcclient-silc_client_connect_to_client.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_connect_to_client</A><BR>
348 <A HREF="silcclient-silc_client_key_exchange.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_key_exchange</A><BR>
349 <A HREF="silcclient-silc_client_close_connection.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_close_connection</A><BR>
350 <A HREF="silcclient-silc_client_send_channel_message.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_send_channel_message</A><BR>
351 <A HREF="silcclient-silc_client_send_private_message.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_send_private_message</A><BR>
352 <A HREF="silcclient-silc_client_private_message_wait_init.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_private_message_wait_init</A><BR>
353 <A HREF="silcclient-silc_client_private_message_wait_uninit.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_private_message_wait_uninit</A><BR>
354 <A HREF="silcclient-silc_client_private_message_wait.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_private_message_wait</A><BR>
355 <A HREF="silcclient-silc_client_on_channel.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_on_channel</A><BR>
356 <A HREF="silcclient-silc_client_command_call.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_command_call</A><BR>
357 <A HREF="silcclient-SilcClientCommandReply.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcClientCommandReply</A><BR>
358 <A HREF="silcclient-silc_client_command_send.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_command_send</A><BR>
359 <A HREF="silcclient-silc_client_command_pending.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_command_pending</A><BR>
360 <A HREF="silcclient-silc_client_add_private_message_key.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_add_private_message_key</A><BR>
361 <A HREF="silcclient-silc_client_add_private_message_key_ske.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_add_private_message_key_ske</A><BR>
362 <A HREF="silcclient-silc_client_del_private_message_key.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_del_private_message_key</A><BR>
363 <A HREF="silcclient-silc_client_list_private_message_keys.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_list_private_message_keys</A><BR>
364 <A HREF="silcclient-silc_client_free_private_message_keys.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_free_private_message_keys</A><BR>
365 <A HREF="silcclient-silc_client_private_message_key_is_set.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_private_message_key_is_set</A><BR>
366 <A HREF="silcclient-silc_client_add_channel_private_key.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_add_channel_private_key</A><BR>
367 <A HREF="silcclient-silc_client_del_channel_private_keys.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_del_channel_private_keys</A><BR>
368 <A HREF="silcclient-silc_client_del_channel_private_key.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_del_channel_private_key</A><BR>
369 <A HREF="silcclient-silc_client_list_channel_private_keys.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_list_channel_private_keys</A><BR>
370 <A HREF="silcclient-silc_client_current_channel_private_key.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_current_channel_private_key</A><BR>
371 <A HREF="silcclient-silc_client_send_key_agreement.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_send_key_agreement</A><BR>
372 <A HREF="silcclient-silc_client_perform_key_agreement.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_perform_key_agreement</A><BR>
373 <A HREF="silcclient-silc_client_perform_key_agreement_stream.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_perform_key_agreement_stream</A><BR>
374 <A HREF="silcclient-silc_client_abort_key_agreement.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_abort_key_agreement</A><BR>
375 <A HREF="silcclient-silc_client_set_away_message.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_set_away_message</A><BR>
376 <A HREF="silcclient-SilcClientMonitorStatus.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcClientMonitorStatus</A><BR>
377 <A HREF="silcclient-SilcClientFileError.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcClientFileError</A><BR>
378 <A HREF="silcclient-SilcClientFileMonitor.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcClientFileMonitor</A><BR>
379 <A HREF="silcclient-SilcClientFileName.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcClientFileName</A><BR>
380 <A HREF="silcclient-SilcClientFileAskName.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">SilcClientFileAskName</A><BR>
381 <A HREF="silcclient-silc_client_file_send.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_file_send</A><BR>
382 <A HREF="silcclient-silc_client_file_receive.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_file_receive</A><BR>
383 <A HREF="silcclient-silc_client_file_close.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_file_close</A><BR>
384 <A HREF="silcclient-silc_client_attribute_add.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_attribute_add</A><BR>
385 <A HREF="silcclient-silc_client_attribute_del.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_attribute_del</A><BR>
386 <A HREF="silcclient-silc_client_attributes_get.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_attributes_get</A><BR>
387 <A HREF="silcclient-silc_client_attributes_request.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_attributes_request</A><BR>
388 <A HREF="silcclient-silc_client_nickname_format.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_nickname_format</A><BR>
389 <A HREF="silcclient-silc_client_nickname_parse.html"><IMG SRC="index_pic.gif" BORDER="0" ALT="">silc_client_nickname_parse</A><BR>
390 </font>
391
392 <br /><br /><br /><br />
393     </td></tr>
394     </table>
395   </td>
396 </tr>
397 </table>
398
399 <table border="0" cellspacing="0" cellpadding="0" width="100%">
400 <tr bgcolor="#444444"><td><img src="space.gif" width="1" height="1"border="0" alt="" ></td></tr>
401 </table>
402 <table border="0" cellspacing="0" cellpadding="6" width="100%">
403  <tr valign="top" bgcolor="#dddddd">
404   <td><small>Copyright &copy; 2001 - 2007 SILC Project<br />
405     <a href="http://silcnet.org">SILC Project Website</a></small></td>
406   <td align="right"><small>
407    <a href="index.html">SILC Toolkit Reference Manual</a><br />
408    <a href="toolkit_index.html">Index</a></small></td>
409    </small></td>
410  </tr>
411 </table>
412
413 </body>
414 </html>