1 commit b953803ae59ea3e66e3ed799b90dbb66a9002fce
2 Author: Pekka Riikonen <priikone@silcnet.org>
3 Date: Tue May 6 12:24:10 2014 +0300
5 silc-client: handle prompt abort better
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.
15 commit bd463a75d37dd2ec164dc14dee4bb2550d6a778a
16 Author: Pekka Riikonen <priikone@silcnet.org>
17 Date: Mon May 5 13:53:08 2014 +0300
19 silcclient: check packet type as responder before starting AKE
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.
29 commit c849f909fc98a2460ffc1c7becf17b7417e391e7
30 Author: Pekka Riikonen <priikone@silcnet.org>
31 Date: Mon May 5 11:23:48 2014 +0300
33 Fix compilation warnings
35 commit 0a948452f74af6a7440cee4243c54ed8bb534b13
36 Author: Pekka Riikonen <priikone@silcnet.org>
37 Date: Mon May 5 11:23:33 2014 +0300
39 silc-client: rpm packaging updates
41 commit 0c5b4cf8af092fd6c3d3d4cd03efd299c7020cc1
42 Author: Pekka Riikonen <priikone@silcnet.org>
43 Date: Tue Apr 29 10:56:24 2014 +0300
45 SKE: handle invalid protocol state errors
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.
51 commit 79b406da2cc03883eb2da6c8c69ff2d7a9356df9
52 Author: Pekka Riikonen <priikone@silcnet.org>
53 Date: Mon Apr 28 23:01:30 2014 +0300
55 irssi: better public key print out
57 When verifying public key show more information about it.
59 commit 80d10dbf48785c2163551a7f94a46f6f5849c4a7
60 Author: Pekka Riikonen <priikone@silcnet.org>
61 Date: Mon Apr 28 22:59:28 2014 +0300
63 silcclient: auto-negotiation of private message key using SKE over SILCnet
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.
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).
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.
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.
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.
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.
100 This feature does not require any changes to SILC servers.
102 commit d7f1e81fea0d1da2ac870b8dfa600669aa280cd5
103 Author: Pekka Riikonen <priikone@silcnet.org>
104 Date: Mon Apr 28 22:43:44 2014 +0300
106 silcclient: fix packet stream coder function
108 Generate correct FTP packet after, after the packet stream coder function
109 semantics changed in commit 705167687caeaa66c371dce7cc88719687337b9e.
111 commit 77774e96ef3f5011bb85f7e0ec68a7f3a4a4d6e8
112 Author: Pekka Riikonen <priikone@silcnet.org>
113 Date: Mon Apr 28 22:42:43 2014 +0300
115 silcclient: Add generic client entry operation context
117 Add generic client entry async operation context to the internal
118 context. Change the key agreement to start using it.
120 Add support for aborting client entry operations when the client entry
121 is deleted or when the connection is closed to the server.
123 commit 7f26bf8964b7269f9a9f295afdff1b870ecc68e2
124 Author: Pekka Riikonen <priikone@silcnet.org>
125 Date: Mon Apr 28 22:39:06 2014 +0300
127 SKE: support for simplified key exchange
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.
134 Support for not sending the SILC_PACKET_SUCCESS acks after a successful
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.
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.
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
151 commit 705167687caeaa66c371dce7cc88719687337b9e
152 Author: Pekka Riikonen <priikone@silcnet.org>
153 Date: Mon Apr 28 22:31:35 2014 +0300
155 silccore: packet injection and stream wrap improvements
157 Add silc_packet_stream_inject to allow injecting of packets to the
158 specified packet stream.
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.
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.
168 commit 0b9028b4a1bf48ee0eea4ff231d302b24ccb924d
169 Author: Pekka Riikonen <priikone@silcnet.org>
170 Date: Mon Apr 28 21:49:23 2014 +0300
172 Targeted library message to correct Irssi window
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.
178 commit 7ba30123577540d59575c8f020bad86c52c21f59
179 Author: Pekka Riikonen <priikone@silcnet.org>
180 Date: Mon Apr 28 21:47:58 2014 +0300
182 Targeted say-operation messages
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.
188 commit d0c0355c2fa9ef0aa699010242479366c06b7041
189 Author: Pekka Riikonen <priikone@silcnet.org>
190 Date: Mon Apr 28 15:05:58 2014 +0300
192 Fix file transfer crash
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.
198 Call the sucessful public key verify completion after the key has been
199 saved because the completion callback may free the public key.
201 commit 2559c5da3d5353f97f16b387bff02373b258a3df
202 Author: Pekka Riikonen <priikone@silcnet.org>
203 Date: Sun Apr 27 10:38:34 2014 +0300
205 Static analyzer fixes
207 More small fixes resulting from clang static analysis.
209 commit 644f8b14010e05d55b5cde8514f6efdca8c21c5b
210 Author: Pekka Riikonen <priikone@silcnet.org>
211 Date: Tue Apr 22 15:29:07 2014 +0300
213 Enable higher security messages MACs
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.
221 commit e7ecca35b79220f947ae30c98f80688db1d2a101
222 Author: Pekka Riikonen <priikone@silcnet.org>
223 Date: Tue Apr 22 15:26:55 2014 +0300
225 Remove obsolete backwards support code
227 Remove the old zero-client id backwards support when starting SKE protocol.
229 commit 40df0fe9d2a0a7648a111ca03de16f7a740cf5ad
230 Author: Pekka Riikonen <priikone@silcnet.org>
231 Date: Tue Apr 22 15:25:37 2014 +0300
233 Longer default PKCS keys
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.
240 This commit also changes the default SKE DH group from 1024 to 1536 bits.
241 The old group is still supported.
243 commit d4ead7075692a4abdc487fcb422cb9fd5b41a596
244 Author: Pekka Riikonen <priikone@silcnet.org>
245 Date: Tue Apr 22 15:22:38 2014 +0300
247 Static analyzer bug fixes
249 Bunch of small bugs fixed here and there found during static analysis.
251 commit f38b21315fc72df3914664227ebcece766f01f66
252 Author: Pekka Riikonen <priikone@Pekkas-MacBook-Air.local>
253 Date: Fri Jun 22 22:21:38 2012 +0300
255 Mac OS X >= 10.7 support
257 Add support for compiling on Mac OS X > 10.7 and newer. Summary of
260 - Remove config.guess and config.sub, let the autodist copy proper
261 versions from the system.
263 - Add support for autoconfg 2.68 and newer.
265 - Add support for compiing x86-64 AES code with NASM.
267 - Update Mac OS X installation instructions.
269 commit 27a4ad25c65fa7b4fdbbe53b3551a687a9b43214
270 Author: Pekka Riikonen <priikone@silcnet.org>
271 Date: Tue May 25 07:24:28 2010 +0300
273 Client: Fix signature verification double free
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.
279 commit a2f2afc03242a6f8b77953203f8e3767a6e703c4
280 Author: Pekka Riikonen <priikone@silcnet.org>
281 Date: Tue May 11 07:44:09 2010 +0300
283 Packet engine: prevent divide by 0
285 commit 5fff0bf9cd2c72027c9f42f2e60b415ba4848ae6
286 Author: Pekka Riikonen <priikone@silcnet.org>
287 Date: Tue May 11 07:41:03 2010 +0300
289 SKE: Make sure failure received from remote is error status.
291 commit bb61286f7ac90ebcdaa9b00991a9a98b6cd8663f
292 Author: Pekka Riikonen <priikone@silcnet.org>
293 Date: Fri Sep 25 12:07:41 2009 +0300
295 Set SO_KEEPALIVE for all accept()ed sockets.
297 commit 80bb7b35c2a1f44702631f1a5cf5685d5ce4b2c7
298 Author: Pekka Riikonen <priikone@silcnet.org>
299 Date: Fri Sep 25 12:06:45 2009 +0300
301 clientlib: Close connection after failed rekey
303 commit 8cb801cf6482666818e721822ce81c81ec818908
304 Author: Pekka Riikonen <priikone@silcnet.org>
305 Date: Fri Aug 7 14:48:46 2009 +0300
307 More string format fixes in silcd and client libary
309 commit 97fa30748eed3f4248bd213ae3ab9e742fd36c71
310 Author: Pekka Riikonen <priikone@silcnet.org>
311 Date: Sun Aug 2 10:11:20 2009 +0300
313 configure: changed AC_PROG_LIBTOOL order to fix disabling shared libs
315 .cvsignore => .gitignore | 18 +
318 README.MACOSX | 33 +-
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 -----
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