Tobias Brunner [Wed, 8 May 2013 12:35:05 +0000 (14:35 +0200)]
Merge branch 'charon-cmd-agent'
Adds support for authentication via ssh-agent to charon-cmd (RSA and ECDSA keys
are currently supported).
The new sshkey plugin parses SSH public keys in RFC 4253 format.
SSH public keys can be configured with the left|rightsigkey ipsec.conf option,
which replaces left|rightrsasigkey and takes a public key in one of three
formats: SSH (RFC 4253, ssh: prefix), DNSKEY (RFC 3110, dns: prefix, not the
full RR, only the actual RSA key), or PKCS#1 (the default, no prefix).
As before the keys are either encoded in hex (0x) or base64 (0s).
left|rightsigkey also accepts the path to a file containing a PEM or DER
encoded public key.
charon-cmd: Add --agent option to authenticate using ssh-agent(1)
The socket path is read from the SSH_AUTH_SOCK environment variable.
So using this with sudo might require the -E command line (or an appropriate
sudoers config) to preserve the environment.
Tobias Brunner [Mon, 6 May 2013 15:21:30 +0000 (17:21 +0200)]
testing: Don't run tests when building tkm-rpc
There are issues with some versions of the XML/Ada library on i386,
blocking the build of the testing environment when these tests are run.
TKM tests won't work in such a case but at least make-testing does not
block with this patch.
Martin Willi [Mon, 6 May 2013 15:04:36 +0000 (17:04 +0200)]
Merge branch 'tun-vip'
Beside some OS X love, this merge introduces virtual IP and route installation
support on the pfkey/pfroute kernel interfaces.
Each virtual IP gets installed on a dedicated TUN device. As Linux-like source
routes are not supported, routes for the negotiated traffic selectors get
installed using the TUN device.
To prevent IKE packets from using those routes, special exclude routes get
installed to the IKE gateway. This works for most road-warrior deployments, but
certainly does not for some more exotic configurations, such as those using
virtual-IP-to-host. Mobility is not yet supported, either.
Martin Willi [Sat, 20 Apr 2013 10:28:05 +0000 (12:28 +0200)]
kernel-pfroute: add a feature flag requesting "exclude" routes
If routes installed along with policies covering the peer address affect local
IKE/ESP packets, they won't get routed correctly. To work around this issue,
the kernel interface can install "exclude" routes for the IKE peer. Not all
networking backends require this workaround, hence we export a flag for it
if it is required.
Martin Willi [Fri, 19 Apr 2013 08:42:23 +0000 (10:42 +0200)]
kernel-pfkey: install route along with input, not forward policies
As forwarding policies are not available on all systems (OS X), using the
forward policy to attach the route is a bad pick. Using input policies allows
OS X to install routes.
Martin Willi [Thu, 11 Apr 2013 18:22:06 +0000 (20:22 +0200)]
socket-default: to bind to one dynamic port on OS X, create v4 socket before v6
It seems that the order of binding sockets of different address families to the
same dynamic port must be v6-before-v4 on Linux, but v4-before-v6 on OS X.
Martin Willi [Thu, 11 Apr 2013 17:20:33 +0000 (19:20 +0200)]
semaphore: similar to thread_create(), semaphore_create() is used by Mach
The compiler spits no warning, but the wrong symbol is used when calling
semaphore_create() from strongSwan. Override the name with a #define to force
the use of our semaphore_create().
Martin Willi [Mon, 6 May 2013 14:01:25 +0000 (16:01 +0200)]
Merge branch 'charon-cmd'
Introduce a simple IKEv1/IKEv2 command line client, charon-cmd. It does
not need any configuration files at all, but takes a few command line arguments
to establish connections as a road warrior.
Martin Willi [Mon, 6 May 2013 13:15:58 +0000 (15:15 +0200)]
Merge branch 'leak-detective-dlsym'
Replaces the use of deprecated glibc malloc hooks by overloading malloc calls
and find the originals using dlsym(RTLD_NEXT).
On OS X, we now support the use of leak detective by changing the default
malloc zone functions, backtraces get resolved using atos.
It seems that the performance bottleneck now is stack unwinding. Unfortunately
a new libunwind based backtrace() is not much faster than the libc variant; we
keep that option nonetheless for platforms without backtrace().