updates.
[website.git] / docs / client / ChangeLog
1 commit b953803ae59ea3e66e3ed799b90dbb66a9002fce
2 Author: Pekka Riikonen <priikone@silcnet.org>
3 Date:   Tue May 6 12:24:10 2014 +0300
4
5     silc-client: handle prompt abort better
6     
7     When verfying public key abort any previously ungoing prompt so that we
8     can get the public key verification prompt up.  It's important to not
9     loose the public key verification prompts so we now allow new prompt to
10     come up after previous one has aborted.  It leaks Irssi memory, but
11     handles things correctly towards silcclient library.  Irssi's prompt
12     handling is broken because it stores the data in a global variable
13     allowing only one prompt at a time.
14
15 commit bd463a75d37dd2ec164dc14dee4bb2550d6a778a
16 Author: Pekka Riikonen <priikone@silcnet.org>
17 Date:   Mon May 5 13:53:08 2014 +0300
18
19     silcclient: check packet type as responder before starting AKE
20     
21     Do not immediately start the private message key autonegotiation as
22     responder when a packet comes in but wait until it is decoded from the
23     private message payload so that responder can properly set up the SKE
24     properties and start the SKE in proper state.  Initiator is allowed to
25     start SKE with SILC_PACKET_KEY_EXCHANGE at any time, including when a key
26     already exists and it would be error to expect that initiator should have
27     sent SILC_PACKET_KEY_EXCHANGE_1 just because key exists in responder side.
28
29 commit c849f909fc98a2460ffc1c7becf17b7417e391e7
30 Author: Pekka Riikonen <priikone@silcnet.org>
31 Date:   Mon May 5 11:23:48 2014 +0300
32
33     Fix compilation warnings
34
35 commit 0a948452f74af6a7440cee4243c54ed8bb534b13
36 Author: Pekka Riikonen <priikone@silcnet.org>
37 Date:   Mon May 5 11:23:33 2014 +0300
38
39     silc-client: rpm packaging updates
40
41 commit 0c5b4cf8af092fd6c3d3d4cd03efd299c7020cc1
42 Author: Pekka Riikonen <priikone@silcnet.org>
43 Date:   Tue Apr 29 10:56:24 2014 +0300
44
45     SKE: handle invalid protocol state errors
46     
47     With SKE over UDP we can receive packets in wrong order or do
48     retransmissions but in TCP receiving wrong SKE packet at wrong time is
49     a protocol error and must result to end of the key exchange.
50
51 commit 79b406da2cc03883eb2da6c8c69ff2d7a9356df9
52 Author: Pekka Riikonen <priikone@silcnet.org>
53 Date:   Mon Apr 28 23:01:30 2014 +0300
54
55     irssi: better public key print out
56     
57     When verifying public key show more information about it.
58
59 commit 80d10dbf48785c2163551a7f94a46f6f5849c4a7
60 Author: Pekka Riikonen <priikone@silcnet.org>
61 Date:   Mon Apr 28 22:59:28 2014 +0300
62
63     silcclient: auto-negotiation of private message key using SKE over SILCnet
64     
65     Previously in SILC private messages have been protected in normal mode
66     using the session key shared between the client and server and other
67     servers in the network.  This obviously has security implications if
68     the SILC servers cannot be trusted.
69     
70     To overcome this issue silcclient library has offered user the ability to
71     use pre-shared key (or password) as the secret key to protect private
72     message, or to negotiate fresh key material using SKE peer-to-peer over
73     the internet (key agreement).
74     
75     However, both of these feature have severe limitations.  The first one
76     requiring coordinated effort to somehow share the key or password and
77     the second requiring peer-to-peer connection which may not be possible
78     due to NAT and firewalls.
79     
80     This commit adds a new private message protection method and takes it
81     into use as the default protection method.  The commits adds support
82     for automatic negotiation of the private message key using SKE but instead
83     of doing it peer-to-peer over the internet it is done client-to-client
84     over the SILC network itself.  This is accomplished by tunneling the
85     SKE protocol inside private message packets.  As SKE is safe over the
86     unprotected and untrusted internet it is safe also over the SILC network.
87     
88     The end result of the auto-negotiation is a shared secret known only
89     to the two clients.  The SKE provides mutual authentication with digital
90     signatures to prevent man-in-the-middle attack.  The private messages
91     protected with this key can be read only by the two clients.  SILC servers
92     along the way cannot decrypt them.  The key is periodically re-keyed
93     (5 minutes or so) and it provides Perfect Forward Secrecy.
94     
95     The auto-negotiation is enabled by default.  It can detect within seconds
96     if the remote client supports the method and if it doesn't it gives a
97     notification that the private message protection has been reverted back
98     to session keys.  Application can disable the feature, if wanted.
99     
100     This feature does not require any changes to SILC servers.
101
102 commit d7f1e81fea0d1da2ac870b8dfa600669aa280cd5
103 Author: Pekka Riikonen <priikone@silcnet.org>
104 Date:   Mon Apr 28 22:43:44 2014 +0300
105
106     silcclient: fix packet stream coder function
107     
108     Generate correct FTP packet after, after the packet stream coder function
109     semantics changed in commit 705167687caeaa66c371dce7cc88719687337b9e.
110
111 commit 77774e96ef3f5011bb85f7e0ec68a7f3a4a4d6e8
112 Author: Pekka Riikonen <priikone@silcnet.org>
113 Date:   Mon Apr 28 22:42:43 2014 +0300
114
115     silcclient: Add generic client entry operation context
116     
117     Add generic client entry async operation context to the internal
118     context.  Change the key agreement to start using it.
119     
120     Add support for aborting client entry operations when the client entry
121     is deleted or when the connection is closed to the server.
122
123 commit 7f26bf8964b7269f9a9f295afdff1b870ecc68e2
124 Author: Pekka Riikonen <priikone@silcnet.org>
125 Date:   Mon Apr 28 22:39:06 2014 +0300
126
127     SKE: support for simplified key exchange
128     
129     This commit adds support for simplified SILC Key Exchange protocol by
130     allowing the caller to specify the security properties to be used in
131     the key exchange.  This will stop the library from exchanging the
132     SILC_PACKET_KEY_EXCHANGE packet containing the properties.
133     
134     Support for not sending the SILC_PACKET_SUCCESS acks after a successful
135     key exchange.
136     
137     These two changes allow the SKE to be simplified to exchanging only
138     the SILC_PACKET_KEY_EXHANGE_1 and SILC_PACKET_KEY_EXCHANGE_2 packets
139     to produce the shared key and to do mutual authentication.
140     
141     The commit also adds support for generating small proposals in
142     SILC_PACKET_KEY_EXCHANGE packet by including only one security property
143     per item instead of listing all of them in the proposal.
144     
145     Additionally the commit adds support for probe timeout which affects
146     the first packet sent by initiator.  If responder does not respond to
147     the first packet in the specified timeframe the key exchange will
148     timeout.  If it replies the normal key exchange timeout has effect after
149     that.
150
151 commit 705167687caeaa66c371dce7cc88719687337b9e
152 Author: Pekka Riikonen <priikone@silcnet.org>
153 Date:   Mon Apr 28 22:31:35 2014 +0300
154
155     silccore: packet injection and stream wrap improvements
156     
157     Add silc_packet_stream_inject to allow injecting of packets to the
158     specified packet stream.
159     
160     Add support for specifying the source and destination ids for the
161     wrapped packet stream allowing to use them in packet sending and using
162     them in packet reception to take only packets with the specified ids.
163     
164     The semantics of CAN_WRITE and CAN_READ of wrapped packet stream coder
165     function has been changed to allow the coder to filter out packets it
166     does not want or to handle errors in coding.
167
168 commit 0b9028b4a1bf48ee0eea4ff231d302b24ccb924d
169 Author: Pekka Riikonen <priikone@silcnet.org>
170 Date:   Mon Apr 28 21:49:23 2014 +0300
171
172     Targeted library message to correct Irssi window
173     
174     Add support for sending the library generated say-operation messages
175     to correct window using either nickname or channel name as the target.
176     Irssi does the rest to show the message in correct window.
177
178 commit 7ba30123577540d59575c8f020bad86c52c21f59
179 Author: Pekka Riikonen <priikone@silcnet.org>
180 Date:   Mon Apr 28 21:47:58 2014 +0300
181
182     Targeted say-operation messages
183     
184     Add support for including the client, channel or server with the say()
185     client operation library can generate.  This allows application to
186     better target the message to correct window or recipient.
187
188 commit d0c0355c2fa9ef0aa699010242479366c06b7041
189 Author: Pekka Riikonen <priikone@silcnet.org>
190 Date:   Mon Apr 28 15:05:58 2014 +0300
191
192     Fix file transfer crash
193     
194     When silc-client accepts new file transfer and receives public key to
195     verify it will crash because the client connection has no Irssi server
196     associated to it.  Handle this gracefully.
197     
198     Call the sucessful public key verify completion after the key has been
199     saved because the completion callback may free the public key.
200
201 commit 2559c5da3d5353f97f16b387bff02373b258a3df
202 Author: Pekka Riikonen <priikone@silcnet.org>
203 Date:   Sun Apr 27 10:38:34 2014 +0300
204
205     Static analyzer fixes
206     
207     More small fixes resulting from clang static analysis.
208
209 commit 644f8b14010e05d55b5cde8514f6efdca8c21c5b
210 Author: Pekka Riikonen <priikone@silcnet.org>
211 Date:   Tue Apr 22 15:29:07 2014 +0300
212
213     Enable higher security messages MACs
214     
215     The code to include the source and destination ID in the message payload
216     MAC has been there for a long time but the use of it has been disabled.
217     This commit enables it but preserves the backwards support for those
218     clients unable to verify the MACs.  The support for the newer MACs
219     have been there for several years.
220
221 commit e7ecca35b79220f947ae30c98f80688db1d2a101
222 Author: Pekka Riikonen <priikone@silcnet.org>
223 Date:   Tue Apr 22 15:26:55 2014 +0300
224
225     Remove obsolete backwards support code
226     
227     Remove the old zero-client id backwards support when starting SKE protocol.
228
229 commit 40df0fe9d2a0a7648a111ca03de16f7a740cf5ad
230 Author: Pekka Riikonen <priikone@silcnet.org>
231 Date:   Tue Apr 22 15:25:37 2014 +0300
232
233     Longer default PKCS keys
234     
235     This commit changes the default PKCS key length from 2048 bits to 4096
236     bits.  It adds warnings to both SILC client and SILC server in start up
237     in case the existing key is shorter than 4096 to encourage people to
238     generate new key longer key pair.
239     
240     This commit also changes the default SKE DH group from 1024 to 1536 bits.
241     The old group is still supported.
242
243 commit d4ead7075692a4abdc487fcb422cb9fd5b41a596
244 Author: Pekka Riikonen <priikone@silcnet.org>
245 Date:   Tue Apr 22 15:22:38 2014 +0300
246
247     Static analyzer bug fixes
248     
249     Bunch of small bugs fixed here and there found during static analysis.
250
251 commit f38b21315fc72df3914664227ebcece766f01f66
252 Author: Pekka Riikonen <priikone@Pekkas-MacBook-Air.local>
253 Date:   Fri Jun 22 22:21:38 2012 +0300
254
255     Mac OS X >= 10.7 support
256     
257     Add support for compiling on Mac OS X > 10.7 and newer.  Summary of
258     changes:
259     
260      - Remove config.guess and config.sub, let the autodist copy proper
261        versions from the system.
262     
263      - Add support for autoconfg 2.68 and newer.
264     
265      - Add support for compiing x86-64 AES code with NASM.
266     
267      - Update Mac OS X installation instructions.
268
269 commit 27a4ad25c65fa7b4fdbbe53b3551a687a9b43214
270 Author: Pekka Riikonen <priikone@silcnet.org>
271 Date:   Tue May 25 07:24:28 2010 +0300
272
273     Client: Fix signature verification double free
274     
275     When client receives public key in the message payload and is compared
276     against the client's own public key, when the keys differ we have to
277     return immediately and not try to verify the signature.
278
279 commit a2f2afc03242a6f8b77953203f8e3767a6e703c4
280 Author: Pekka Riikonen <priikone@silcnet.org>
281 Date:   Tue May 11 07:44:09 2010 +0300
282
283     Packet engine: prevent divide by 0
284
285 commit 5fff0bf9cd2c72027c9f42f2e60b415ba4848ae6
286 Author: Pekka Riikonen <priikone@silcnet.org>
287 Date:   Tue May 11 07:41:03 2010 +0300
288
289     SKE: Make sure failure received from remote is error status.
290
291 commit bb61286f7ac90ebcdaa9b00991a9a98b6cd8663f
292 Author: Pekka Riikonen <priikone@silcnet.org>
293 Date:   Fri Sep 25 12:07:41 2009 +0300
294
295     Set SO_KEEPALIVE for all accept()ed sockets.
296
297 commit 80bb7b35c2a1f44702631f1a5cf5685d5ce4b2c7
298 Author: Pekka Riikonen <priikone@silcnet.org>
299 Date:   Fri Sep 25 12:06:45 2009 +0300
300
301     clientlib: Close connection after failed rekey
302
303 commit 8cb801cf6482666818e721822ce81c81ec818908
304 Author: Pekka Riikonen <priikone@silcnet.org>
305 Date:   Fri Aug 7 14:48:46 2009 +0300
306
307     More string format fixes in silcd and client libary
308
309 commit 97fa30748eed3f4248bd213ae3ab9e742fd36c71
310 Author: Pekka Riikonen <priikone@silcnet.org>
311 Date:   Sun Aug 2 10:11:20 2009 +0300
312
313     configure: changed AC_PROG_LIBTOOL order to fix disabling shared libs
314
315  .cvsignore => .gitignore                           |   18 +
316  INSTALL                                            |    3 +
317  README                                             |  114 +-
318  README.MACOSX                                      |   33 +-
319  TODO                                               |  304 +-
320  apps/irssi/silc-client.spec.in                     |   11 +-
321  apps/irssi/src/perl/silc/Makefile.PL.in            |    2 +-
322  apps/irssi/src/silc/core/client_ops.c              |   98 +-
323  apps/irssi/src/silc/core/clientutil.c              |   22 +-
324  apps/irssi/src/silc/core/silc-channels.c           |    2 +
325  apps/irssi/src/silc/core/silc-core.h               |    2 +-
326  apps/irssi/src/silc/core/silc-queries.c            |    6 +-
327  apps/irssi/src/silc/core/silc-servers.c            |   11 +-
328  config.guess                                       | 1471 -----
329  config.sub                                         | 1599 -----
330  configure.ad                                       |   64 +-
331  distdir/pre-run                                    |    2 +-
332  lib/Makefile.ad                                    |    8 +-
333  lib/configure.ad                                   |   16 +-
334  lib/contrib/nfkc.c                                 |    3 +
335  lib/doc/LIBINDEX                                   |    2 +-
336  lib/silcapputil/silcapputil.c                      |    4 +-
337  lib/silcapputil/silcapputil.h                      |    2 +-
338  lib/silcasn1/silcasn1.c                            |    4 +-
339  lib/silcasn1/silcasn1_decode.c                     |    2 +-
340  lib/silcasn1/silcasn1_encode.c                     |    2 +-
341  lib/silcclient/client.c                            |   27 +-
342  lib/silcclient/client.h                            |   11 +-
343  lib/silcclient/client_attrs.c                      |    2 +-
344  lib/silcclient/client_channel.c                    |   20 +-
345  lib/silcclient/client_connect.c                    |   14 +-
346  lib/silcclient/client_entry.c                      |   22 +-
347  lib/silcclient/client_ftp.c                        |   17 +-
348  lib/silcclient/client_internal.h                   |    6 +-
349  lib/silcclient/client_keyagr.c                     |   32 +-
350  lib/silcclient/client_listener.c                   |    2 +-
351  lib/silcclient/client_notify.c                     |    2 +-
352  lib/silcclient/client_prvmsg.c                     |  720 ++-
353  lib/silcclient/client_prvmsg.h                     |   12 +-
354  lib/silcclient/client_register.c                   |    2 +-
355  lib/silcclient/command.c                           |    8 +-
356  lib/silcclient/command_reply.c                     |   12 +-
357  lib/silcclient/silcclient.h                        |   24 +-
358  lib/silcclient/tests/test_silcclient.c             |    4 +-
359  lib/silccore/silcargument.c                        |    2 -
360  lib/silccore/silcattrs.c                           |    9 +-
361  lib/silccore/silcauth.c                            |    2 +-
362  lib/silccore/silcmessage.c                         |   21 +-
363  lib/silccore/silcmessage.h                         |    5 +-
364  lib/silccore/silcpacket.c                          |  145 +-
365  lib/silccore/silcpacket.h                          |   60 +-
366  lib/silccore/tests/test_silcmessage.c              |    4 +-
367  lib/silccrypt/aes.c                                |   18 +-
368  lib/silccrypt/aes_x86_64.asm                       |    8 +-
369  lib/silccrypt/md5.c                                |    2 +-
370  lib/silccrypt/silccipher.c                         |    3 +-
371  lib/silccrypt/silchash.c                           |    3 +-
372  lib/silccrypt/silchmac.c                           |    3 +-
373  lib/silccrypt/silcpk.h                             |    4 +-
374  lib/silccrypt/silcpkcs.c                           |    3 +-
375  lib/silccrypt/silcpkcs1.c                          |   32 +-
376  lib/silccrypt/silcrng.c                            |   18 +-
377  lib/silccrypt/tests/test_silcpkcs.c                |    4 +-
378  lib/silccrypt/twofish.c                            |    2 +-
379  lib/silchttp/silchttpserver.c                      |    3 +
380  lib/silcmath/mp_gmp.c                              |    3 +-
381  lib/silcmath/mp_tfm.c                              |    3 +-
382  lib/silcmath/mp_tma.c                              |    3 +-
383  lib/silcmath/silcmp.h                              |    2 +-
384  lib/silcmath/tma.c                                 |    5 +
385  lib/silcserver/tests/test_silcserver.c             |    2 +-
386  lib/silcsftp/sftp_fs_memory.c                      |    2 +
387  lib/silcske/groups.c                               |   44 +-
388  lib/silcske/payload.c                              |   11 +-
389  lib/silcske/silcske.c                              |  531 +-
390  lib/silcske/silcske.h                              |   23 +-
391  lib/silcske/silcske_groups.h                       |    7 +-
392  lib/silcske/silcske_i.h                            |    4 +-
393  lib/silcutil/Makefile.ad                           |    2 -
394  lib/silcutil/silcbuffmt.c                          |    4 +-
395  lib/silcutil/silcfileutil.c                        |    2 +-
396  lib/silcutil/silcmemory.h                          |    4 -
397  lib/silcutil/silcmime.c                            |    5 +-
398  lib/silcutil/silcnet.c                             |   54 +-
399  lib/silcutil/silcschedule.c                        |    9 +-
400  lib/silcutil/silctime.c                            |    8 +-
401  lib/silcutil/stacktrace.c                          |   58 +-
402  lib/silcutil/unix/silcunixnet.c                    |    1 +
403  silc-toolkit.spec.in                               |  250 +-
404  180 files changed, 15547 insertions(+), 8216 deletions(-)
405  rename .cvsignore => .gitignore (70%)
406  delete mode 100755 config.guess
407  delete mode 100755 config.sub