114 Commits

Author SHA1 Message Date
Brian West
65fed130e5 Fix warning when using older openssl libs.
warning: passing argument 1 of 'SSL_CIPHER_description' discards qualifiers from pointer target type
2014-03-09 16:21:37 -05:00
Travis Cross
64e1a65363 Drop null-auth suites from our default TLS cipher list
Previously we disallowed anonymous Diffie-Hellman, but there are other
kinds of null-authentication TLS suites.  In particular, disallowing
AECDH is important now that we support elliptic-curve Diffie-Hellman.
2014-03-05 21:39:53 +00:00
Jeff Lenk
787e7f7495 FS-6295 try now 2014-03-03 21:09:56 -06:00
Travis Cross
8553498d98 Show TLS cipher suite selected in sofia debug
This shows the cipher name, TLS version, the number of cipher bits and
algorithm bits, and a description of the cipher in Sofia's debug
logging output on level 9.
2014-03-02 10:37:04 +00:00
Travis Cross
92e2caf86b Rework handling of Linux TCP keepalives in Sofia
This separates out the Linux socket TCP keepalive timeout interval
from Sofia's internal mechanisms.  Earlier we tied these together.  In
retrospect this seems improper.

These two values can now be set separately.

You might, for example, want to keep the Sofia internal mechanism
disabled completely while enabling the platform-based mechanism if
your platform supports it.

We also here reform the default value of the socket TCP keepalive
parameter to 30 seconds.

This is what commit 1bf17857c9a322df50305606ca41203053001818 should
have been.

FS-6104
2014-02-11 06:39:50 +00:00
Travis Cross
f7c4dd79f5 Add additional debugging output to keepalive handling 2014-02-11 06:34:43 +00:00
Travis Cross
01a4aeaaeb Synchronize Sofia and Linux TCP keepalive timeout units
Sofia keeps the TCP keepalive timeout in milliseconds, but Linux
expects the value in seconds.  Before this change, it's unlikely the
TCP_KEEPIDLE and TCP_KEEPINTVL calls were having much effect as we
would have been passing them a huge value.

FS-6104
2014-02-11 06:34:40 +00:00
Travis Cross
e2639e1d4d Add ifdefs around TLS v1.1 and v1.2 handling
This is needed to support squeeze for awhile longer.
2014-02-10 04:09:52 +00:00
Travis Cross
d1e40b088a Add OpenSSL version check around ECDH
...we'll try to support ancient OpenSSL versions on v1.2 for awhile
longer.
2014-02-09 22:33:52 +00:00
Travis Cross
1398975622 Add support for EECDH to Sofia-SIP
This adds support for the ephemeral elliptic curve Diffie-Hellman key
exchange, which provides for forward secrecy in the event that
long-term keys are compromised.

For the moment, we've hard-coded the curve as prime256v1.
2014-02-09 20:13:44 +00:00
Travis Cross
25c65d52c5 Allow setting TLS cipher suites through Sofia-SIP API
Previously there was no way to override the hard-coded cipher suite
specification of "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH".

This commit does leave in place the hardcoded cipher spec for WebRTC
of "HIGH:!DSS:!aNULL@STRENGTH".
2014-02-06 06:04:32 +00:00
Travis Cross
7f772b2601 Allow setting enabled TLS versions in Sofia-SIP
Previously if the TPTAG_TLS_VERSION was set to a non-zero value we
supported only TLSv1 (but not TLSv1.1 or TLSv1.2), and if was set to
zero we supported all versions of TLS and SSL (including the
ridiculous SSLv2).

Now we take an integer field where various bits can be set indicating
which versions of TLS we would like to support.
2014-02-06 02:45:50 +00:00
Travis Cross
1bf17857c9 Handle Linux TCP keepalives better in Sofia
Sofia accepts a value for the TCP keepalive timeout interval via
TPTAG_KEEPALIVE, however it fails to use this value for the Linux
keepalive socket options TCP_KEEPIDLE and TCP_KEEPINTVL.  In fact, on
Linux it enables the sending of TCP keepalives even if tpp_keepalive
is set to zero which would disable Sofia's internal keepalive
mechanisms.  Sofia then uses a hard coded value of 30 seconds for
these keepalive intervals which affects battery life on mobile
devices.

With this commit we harmonize the sending of TCP keepalives on Linux
with other platforms by using the value from TPTAG_KEEPALIVE and not
enabling the sending of TCP keepalives at all if the value of the
parameter is zero.

FS-6104 --resolve
2014-01-18 15:49:01 +00:00
Michael Jerris
2f556d4802 FS-5819: don't assigne variable to itself 2013-09-30 13:29:04 -04:00
Brian West
2645113465 similar fix to 53d17a13121cb85d5bf3c260a4d365fefc7ae179 2013-09-12 16:57:19 -05:00
Anthony Minessale
d7e107a46a add tcp keepalive where possible 2013-04-25 12:15:30 -05:00
Anthony Minessale
9b11dbe4b9 FS-4452 --resolve 2013-03-06 12:58:30 -06:00
Anthony Minessale
63e2044a7e modify sofia debug code to print file, line numbers and function name 2012-10-26 14:15:14 -05:00
Travis Cross
c85c8d7bbd
Add mechanism to set OpenSSL session timeout
In a sofia profile, you can now set the parameter tls-timeout to a
positive integer value which represents the maximum time in seconds
that OpenSSL will keep a TLS session (and its ephemeral keys) alive.

This value is passed to OpenSSL's SSL_CTX_set_timeout(3).

OpenSSL's default value is 300 seconds, but the relevant standard
(RFC 2246) suggests that much longer session lifetimes are
acceptable (it recommends values less than 24 hours).

Longer values can be useful for extending battery life on mobile
devices.

Signed-off-by: Travis Cross <tc@traviscross.com>
2012-06-11 21:46:05 +00:00
Jeff Lenk
5e66db63f1 FS-3896 --resolve that sizeof was incorrect 2012-02-17 08:50:03 -06:00
Anthony Minessale
7938fd81cc FS-3813 --resolve this should be ok 2012-01-16 12:47:37 -06:00
Marc Olivier Chouinard
f97a3266df FS-3071 I've commited the upstream passphrase backport 2011-12-18 11:04:59 -05:00
Anthony Minessale
032155c51e FS-3658 remember to date > libs/sofia-sip/.update when you patch sofia lib 2011-11-02 08:59:23 -05:00
Anthony Minessale
bc177a4b28 FS-3475 --resolve 2011-08-02 13:51:57 -05:00
Anthony Minessale
ed23847574 fix mac build 2011-08-01 10:01:50 -05:00
Jeff Lenk
02bb35148d trivial compiler warning 2011-08-01 10:39:11 -05:00
Jeff Lenk
2b6a4f97c3 trivial portability issues c89 2011-08-01 09:48:08 -05:00
Anthony Minessale
3e029f0dfb add capture hooks to libsofia 2011-07-31 18:36:05 -05:00
Marc Olivier Chouinard
626a99f994 sofia-lib: More Fix for -Wunused-but-set-variable required compiler. (Might need to be ported back to sofia) 2011-04-23 20:33:19 -04:00
Jeff Lenk
bcd31ecaf3 correction to last patch 2010-09-29 16:00:09 -05:00
Jeff Lenk
45ecbc2f61 fix warnings on windows x64 builds src and mods projects - only libsofia included on the libs side 2010-09-29 15:47:58 -05:00
Brian West
4d3dac5b52 FSBUILD-249
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16744 d0543943-73ff-0310-b7d9-9358b9ac24b2
2010-02-23 22:56:54 +00:00
Michael Jerris
8dd6f9c6e0 try to fix different const qualifiers in openssl 1.0
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15782 d0543943-73ff-0310-b7d9-9358b9ac24b2
2009-12-04 01:41:58 +00:00
Michael Jerris
511132ac1e fix sofia build when -std=c99
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15746 d0543943-73ff-0310-b7d9-9358b9ac24b2
2009-12-01 22:42:18 +00:00
Mathieu Rene
57169ef9fb fix sofia build with new openssl
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15426 d0543943-73ff-0310-b7d9-9358b9ac24b2
2009-11-11 05:33:59 +00:00
Michael Jerris
780bce83a4 Mon Jun 29 07:52:27 CDT 2009 kai.k.samposalo@nokia.com
* Symbian winscw build fix


git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@14193 d0543943-73ff-0310-b7d9-9358b9ac24b2
2009-07-10 00:54:04 +00:00
Michael Jerris
fac4ab6d5d Wed Jun 3 12:25:35 CDT 2009 Pekka Pessi <first.last@nokia.com>
* tport_type_tls.c: added field names to tport_vtable_t initialization



git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13985 d0543943-73ff-0310-b7d9-9358b9ac24b2
2009-06-26 19:54:39 +00:00
Michael Jerris
dd22cf6876 Wed Jun 3 12:25:19 CDT 2009 Pekka Pessi <first.last@nokia.com>
* tport_type_udp.c: added field names to tport_vtable_t initialization

Wed Jun  3 12:25:52 CDT 2009  Pekka Pessi <first.last@nokia.com>
  * tport_type_tcp.c: added field names to tport_vtable_t initialization

Wed Jun  3 12:29:13 CDT 2009  Pekka Pessi <first.last@nokia.com>
  * tport_threadpool.c: added field names to tport_vtable_t initialization

Wed Jun  3 12:29:41 CDT 2009  Pekka Pessi <first.last@nokia.com>
  * tport_type_connect.c: added field names to tport_vtable_t initialization

Wed Jun  3 12:30:01 CDT 2009  Pekka Pessi <first.last@nokia.com>
  * tport_type_stun.c: added field names to tport_vtable_t initialization

Wed Jun  3 12:30:17 CDT 2009  Pekka Pessi <first.last@nokia.com>
  * tport_type_sctp.c: added field names to tport_vtable_t initialization



git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13956 d0543943-73ff-0310-b7d9-9358b9ac24b2
2009-06-25 18:43:54 +00:00
Michael Jerris
d073879155 Tue May 19 12:03:18 CDT 2009 Pekka Pessi <first.last@nokia.com>
* tport_tls.c: removed global tls_ex_data_idx, using static one



git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13540 d0543943-73ff-0310-b7d9-9358b9ac24b2
2009-06-01 22:50:03 +00:00
Michael Jerris
ed9ddb3c56 Tue May 19 12:00:30 CDT 2009 Pekka Pessi <first.last@nokia.com>
* su_uniqueid.c: Solaris misdefines PTHREAD_ONCE_INIT 
  Ignore-this: 9fe2247164d572901ed4a30b009353db
  
  Solaris defines pthread_once_t as a struct containing an array. The
  initializer PTHREAD_ONCE_INIT needs two levels of brackets it but only has
  one. Original patch from Mike Jerris <mike@jerris.com>.



git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13388 d0543943-73ff-0310-b7d9-9358b9ac24b2
2009-05-19 17:25:08 +00:00
Michael Jerris
6f7641f94a Wed May 13 05:14:56 CDT 2009 Pekka Pessi <first.last@nokia.com>
* tport.c: better checking of IP6 addresses
  Ignore-this: 49f502ccaaf771abed1e5b2d00eaa8b8
  
  Coverity issue.


git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13335 d0543943-73ff-0310-b7d9-9358b9ac24b2
2009-05-15 16:04:28 +00:00
Michael Jerris
61c7a110b2 Tue May 12 13:23:33 CDT 2009 Pekka Pessi <first.last@nokia.com>
* tport.c: do not use out-of-scope array in tport_deliver()
  Ignore-this: a651d5eb213850d9dfd317102a432f8e
  
  Coverity issue.


git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13331 d0543943-73ff-0310-b7d9-9358b9ac24b2
2009-05-15 16:01:31 +00:00
Michael Jerris
0106f699e6 Tue May 12 13:04:33 CDT 2009 Pekka Pessi <first.last@nokia.com>
* tport_type_udp.c: tport_check_trunc() cleaned code
  Ignore-this: b39558360afb657325a4615d0919baaa
  
  Coverity issue.



git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13327 d0543943-73ff-0310-b7d9-9358b9ac24b2
2009-05-15 15:54:54 +00:00
Michael Jerris
3f4f728974 Wed Apr 29 13:03:20 CDT 2009 Pekka Pessi <first.last@nokia.com>
* tport: close half-closed idle connections on windows, too



git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13317 d0543943-73ff-0310-b7d9-9358b9ac24b2
2009-05-15 15:42:25 +00:00
Michael Jerris
123153d843 Wed Mar 11 11:52:58 CDT 2009 Pekka Pessi <first.last@nokia.com>
* tport.c: silence VC warnings
  Ignore-this: b81c43b73fcefa2dd58dd3366dd60368


git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12751 d0543943-73ff-0310-b7d9-9358b9ac24b2
2009-03-24 15:46:13 +00:00
Michael Jerris
094de86372 Tue Mar 3 07:56:30 CST 2009 Pekka Pessi <first.last@nokia.com>
* tport.c: add TPTAG_LOG() and TPTAG_DUMP() to tport_get_params()
  
  Fixed return value from tport_set_params(), too.



git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12374 d0543943-73ff-0310-b7d9-9358b9ac24b2
2009-03-03 17:19:09 +00:00
Michael Jerris
024c64420f sync to darcs
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12313 d0543943-73ff-0310-b7d9-9358b9ac24b2
2009-02-26 19:29:50 +00:00
Michael Jerris
b161d3f93d sync file to darcs
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12312 d0543943-73ff-0310-b7d9-9358b9ac24b2
2009-02-26 19:21:46 +00:00
Michael Jerris
96e65ddec3 Thu Feb 12 12:02:48 CST 2009 Jarod Neuner <janeuner@networkharbor.com>
* tport_tls: add/fix some tls init logging



git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@11964 d0543943-73ff-0310-b7d9-9358b9ac24b2
2009-02-12 21:30:05 +00:00
Michael Jerris
459bad1563 Thu Feb 12 14:56:11 CST 2009 Pekka Pessi <first.last@nokia.com>
* tport_type_tls.c: fixed error logging in tport_tls_connect()



git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@11958 d0543943-73ff-0310-b7d9-9358b9ac24b2
2009-02-12 21:23:05 +00:00