Commit graph

863 commits

Author SHA1 Message Date
46a82c570c Add generic-umac and composed-umac methods based on UMAC 2014-08-28 18:46:02 +02:00
a681219a92 Add UHASH implementation 2014-08-28 16:34:10 +02:00
398f78c1ff Revert "Experimental HMAC-SHA1 implementation"
We don't really want to support it, and it's slower than GHASH...

This reverts commit 9bf4982637.
2014-08-28 15:42:56 +02:00
b4a53fddb8 Move some utility funtions to a new header 2014-08-25 17:23:05 +02:00
9bf4982637 Experimental HMAC-SHA1 implementation
This adds experimental support for <cipher>+hmac-sha1 methods. It currently
depends on OpenSSL and is not yet ready for production use.
2014-08-25 02:19:32 +02:00
f2d84afd9d MAC: rename hash() to digest() and change length unit from blocks to bytes 2014-08-25 00:09:19 +02:00
9855a34f48 Coding style: always add a space between a pointer's type and the * 2014-08-24 21:06:09 +02:00
1ae3aae351 Use simple int64_t timestamps in ms instead of timespecs 2014-08-24 16:07:50 +02:00
4c0623a080 Exit if invalid peers are configured on the command line 2014-08-24 03:31:12 +02:00
d42e9d9b1a Don't output "adding peer" messages for static peers
Otherwise log messages are emitted to early.
2014-08-24 03:19:15 +02:00
25c9d93516 Improve error messages for invalid static peers 2014-08-24 03:17:50 +02:00
e7b0801809 Fix function name in comment 2014-08-24 02:55:09 +02:00
6a178be29f Instead of replacing changed peers, delete and re-add them
This ensures they get a new ID, so asychronous replies for the old config aren't
associated with the new one.
2014-08-24 01:46:30 +02:00
b54d87d26f Fix waitpid EINTR error on SIGCHLD
waitpid may fail with EINTR for SIGCHLD even when all signals are blocked.
2014-08-24 01:33:02 +02:00
1d38bad857 Fix connections to peers with static addresses 2014-08-24 01:14:02 +02:00
a04bcf247f Merge peer config into peer structure
With this refactoring, the structure fastd_peer_config_t is merged into
fastd_peer_t, and fastd_remote_config_t into fastd_remote_t. This also means we
now create peers directly when reading their configurations, which significantly
simplifies the whole reload process, and prepares for some future optimizations
like a key hash table.

Note: This commit is too big, but I couldn't come up with a nice way to split it
into smaller pieces...
2014-08-24 01:00:45 +02:00
ad4999488e Remove VECTOR_ALLOC
It is done automatically now if the VECTOR is zeroed before.
2014-08-22 17:47:51 +02:00
35a18b1dea Create peer structures for disabled peers as well
We have a 1:1 association between peers and peer configs now.
2014-08-19 00:21:38 +02:00
21ade840c9 Unify enabled and dynamic flags into a config_state flag 2014-08-18 22:52:25 +02:00
c9c7cbb67c Remove a few now unneeded peer->config NULL checks 2014-08-18 22:44:57 +02:00
d39193123e Fix a few comment typos 2014-08-18 22:33:01 +02:00
50d9aa2334 Dynamically create peer configs for dynamic peers
This avoids duplicating the protocol_config field.
2014-08-18 22:30:30 +02:00
cb3c88e020 Rename WITH_VERIFY CMake option to WITH_DYNAMIC_PEERS 2014-08-18 22:08:30 +02:00
5d111c83ff peer: add a flag `dynamic' instead of checking the config field for NULL 2014-08-18 22:01:38 +02:00
2352e1a79e Rename "temporary peers" to "dynamic peers" 2014-08-18 21:34:53 +02:00
c251df4a17 peer: remove fastd_remote_is_dynamic() 2014-08-18 21:33:06 +02:00
02c72f46bd peer: remove dead code fastd_remote_matches_dynamic() 2014-08-18 21:27:59 +02:00
7879164915 Move fastd_config_t.peers to fastd_context_t.peer_configs 2014-08-09 06:16:14 +02:00
e0f99a4199 log: fix port of IPv6 addresses with hidden IP addresses 2014-08-09 06:14:53 +02:00
c800a400b0 Add MacOS X semaphore implementation 2014-08-01 21:55:13 -07:00
4f25bdd259 Encapsulate semaphore handling 2014-08-02 06:45:39 +02:00
96a291d11f Add support for Mac OS X 2014-08-01 21:08:18 -07:00
e63fe3b8d0 Don't use exponential notation for integers 2014-08-02 03:38:31 +02:00
546ac79363 Introduce and use alloc helpers
These new helpers will terminate fastd on allocation failures and add some
additional convenience (allow strdup with NULL; typesafe new(type) macros).
2014-08-02 00:53:47 +02:00
b22364f4af Fix CMake warning about doc target, only use `doxygen' target
Also, to avoid conflicts with the doc directory, the default output dir has been
changed to doxygen.
2014-08-01 22:32:07 +02:00
5f385b0ea0 Use srandom/random instead of rand_r
There's no need to keep our own seed.
2014-08-01 22:12:56 +02:00
ebcf28b9ab config: fix basic config checks in TUN mode 2014-07-10 18:20:17 +02:00
ebe85fa478 Development version 2014-06-30 21:41:25 +02:00
d4cef341eb fastd v14 2014-06-30 21:40:51 +02:00
17d7b74daf Fix build with ENABLE_OPENSSL 2014-06-28 21:02:19 +02:00
54a3574537 Development version 2014-06-21 20:20:28 +02:00
d5d7dc0601 fastd v13 2014-06-21 20:16:34 +02:00
556ff2e7bb Update man 2014-06-21 17:30:18 +02:00
7f1a29a516 peer_hashtable: fix address hashing on systems with holes in sockaddr definitions 2014-06-14 14:58:33 +02:00
10378374ec Add missing sys/uio.h includes 2014-06-14 14:34:41 +02:00
c17bdd0818 verify: add missing sys/wait.h include 2014-06-14 14:29:37 +02:00
f70848f7d0 shell: add missing signal.h include 2014-06-14 14:28:43 +02:00
e30ecc7387 peer: remove always-true condition 2014-06-14 14:05:29 +02:00
223066fe24 Ensure that peers get their place in the handshake queue even when the async queue is full
When the first resolve return for a newly reset peer is lost, init_handshake()
would never be called, and the peer would never get handshakes again. This
probably won't ever happen in practice, but since it's easy to fix, better be
correct here.
2014-06-14 13:59:50 +02:00
781538295f Limit the number of concurrent on-verify runs 2014-06-14 03:30:17 +02:00