chiark / gitweb /
21 months agodoc/.gitignore: Make the patterns more general.
Mark Wooding [Wed, 11 Oct 2017 00:58:49 +0000 (01:58 +0100)]
doc/.gitignore: Make the patterns more general.

22 months agodebian/control: Only require Wireshark things for binary-indep build.
Mark Wooding [Tue, 22 Aug 2017 00:51:18 +0000 (01:51 +0100)]
debian/control: Only require Wireshark things for binary-indep build.

22 months agodebian/: Use `dh_python2' for packaging.
Mark Wooding [Wed, 16 Aug 2017 04:03:58 +0000 (05:03 +0100)]
debian/: Use `dh_python2' for packaging.

23 months agodebian/copyright, .mailmap: Convert to machine-readable format.
Mark Wooding [Wed, 16 Aug 2017 04:03:05 +0000 (05:03 +0100)]
debian/copyright, .mailmap: Convert to machine-readable format.

23 months agodebian/: Redo the multiarch support for Debhelper 9.
Mark Wooding [Wed, 16 Aug 2017 04:47:18 +0000 (05:47 +0100)]
debian/: Redo the multiarch support for Debhelper 9.

23 months agoRevert "debian/: Update for Debhelper 10."
Mark Wooding [Wed, 16 Aug 2017 04:05:51 +0000 (05:05 +0100)]
Revert "debian/: Update for Debhelper 10."

This reverts commit 273e441860916146b0069e977c5ee9b58de0ba74.

2 years agodebian/: Update for Debhelper 10.
Mark Wooding [Mon, 10 Jul 2017 10:31:05 +0000 (11:31 +0100)]
debian/: Update for Debhelper 10.

Possibly controversially: I've forced the libdir back to `/usr/lib',
without an architecture-specific subdirectory.  This makes it easy for
architecture-independent packages to drop things into appropriate
subdirectories, while still /permitting/ architecture-dependent services
and similar.

Relatedly, though, move the `pkg-config' dropping into `/usr/share' by

2 years agowireshark/: Replace ancient dissector with a new one written in Lua.
Mark Wooding [Mon, 10 Jul 2017 10:12:11 +0000 (11:12 +0100)]
wireshark/: Replace ancient dissector with a new one written in Lua.

This is mostly a good thing.

  + It work with both Wireshark 1.11 and 2.  The old C code would have
    to choose between the two, and I couldn't easily tell how shiny a
    version of Wireshark I'd be pinning my colours to.

  + It actually dissects the TrIPE protocol as it currently is,
    including all of the group element encodings and bulk crypto

  + It'll be relatively easy to /keep/ the new dissector up-to-date
    relative to protocol changes.

  - It won't run as quickly -- but Lua has a reputation for being quite
    quick, and I'm not expecting to stress it very much.

In theory, I'd be able to put this in an architecture-independent
package, which would greatly shorten cross-build times.  Alas, the
plugin directory encodes the architecture name, so it'll have to be
built separately for each architecture anyway.

Lots of changes:

  * Eliminate the old `packet-tripe.c' dissector.  Add the new one.  Get
    the build system to install it in the right place.

  * Include a (rather shoddy) script for running `tripe' and capturing
    the conversation with `tshark', so I can test the dissector against
    it; and some small example captures.  This might even turn into a
    proper test at some point, but for now it's just something I can do
    by hand.

  * Hack the `configure' script not to need all of the C compile-time
    machinery for building Wireshark plugins.

2 years Hack probed Wireshark plugin dir in case of corruption.
Mark Wooding [Mon, 10 Jul 2017 09:32:23 +0000 (10:32 +0100)] Hack probed Wireshark plugin dir in case of corruption.

Somehow the Debian package (at least) of Wireshark ships with a
`pkg-config' dropping which contains a broken `libdir' -- and, hence,
`plugindir'.  This has happened before, and it's therefore not unlikely
to happen again.  Defend ourselves against this mess by spotting the
bungled value (which is distinctively and obviously wrong) and fixing

2 years Check probed Wireshark plugin directory exists.
Mark Wooding [Mon, 10 Jul 2017 08:53:51 +0000 (09:53 +0100)] Check probed Wireshark plugin directory exists.

If we've found a plugin directory by probing, then check that the thing
actually exists.  It turns out that the `pkg-config' dropping is not as
accurate as one might na├»vely hope.

2 years agodebian/control: Remove the Ethereal->Wireshark transition machinery.
Mark Wooding [Mon, 10 Jul 2017 08:48:12 +0000 (09:48 +0100)]
debian/control: Remove the Ethereal->Wireshark transition machinery.

How old is this stuff?

2 years Tweak `silent-rules' machinery.
Mark Wooding [Sun, 9 Jul 2017 18:38:31 +0000 (19:38 +0100)] Tweak `silent-rules' machinery.

Since Automake 1.11, the advice for setting up custom silent-rules
recipes has changed, so use the new machinery.

Also, I'm no longer mainly working on wheezy, and Automake has made the
operation field two spaces wider while I wasn't looking, so make the
output line up properly.

This means that tripe now requires Automake 1.11.2 or later to build from
the Git tree.

2 years agopathmtu/pathmtu.c: Don't explicitly set `_BSD_SOURCE'.
Mark Wooding [Sun, 9 Jul 2017 18:34:57 +0000 (19:34 +0100)]
pathmtu/pathmtu.c: Don't explicitly set `_BSD_SOURCE'.

I have a bit set that this was necessary for some reason, but it doesn't
seem to be based on a brief inspection of wheezy's <features.h>, and
stretch's version warns that `_BSD_SOURCE' is now deprecated, because
nothing is allowed to remain stable.

2 years agoserver/dh.c: Set the correct scalar size when loading XDH keys.
Mark Wooding [Sun, 9 Jul 2017 18:31:58 +0000 (19:31 +0100)]
server/dh.c: Set the correct scalar size when loading XDH keys.

This was left hardcoded as 32 bytes, which means that X448 could never
work.  (The `x448_stsc' function always fails because the buffer size
doesn't match its expectation.)

2 years agoserver/keyexch.c: Fix indentation.
Mark Wooding [Sun, 9 Jul 2017 18:31:37 +0000 (19:31 +0100)]
server/keyexch.c: Fix indentation.

2 years agopeerdb/ Finish the example configuration fragment.
Mark Wooding [Tue, 23 May 2017 10:19:55 +0000 (11:19 +0100)]
peerdb/ Finish the example configuration fragment.

2 years agocontrib/ Use the new-ish `bulk-overhead' to calculate MTU.
Mark Wooding [Tue, 23 May 2017 10:13:59 +0000 (11:13 +0100)]
contrib/ Use the new-ish `bulk-overhead' to calculate MTU.

2 years agokeys/tripe-keys.master: Include a nontrivial `sig-fresh' example.
Mark Wooding [Mon, 22 May 2017 09:59:26 +0000 (10:59 +0100)]
keys/tripe-keys.master: Include a nontrivial `sig-fresh' example.

2 years agokeys/ Mention the `pathmtu' utility.
Mark Wooding [Mon, 22 May 2017 08:27:55 +0000 (09:27 +0100)]
keys/ Mention the `pathmtu' utility.

I don't even have `tracepath' installed here.

2 years agokeys/ Follow redirects when fetching updates.
Mark Wooding [Mon, 22 May 2017 08:26:33 +0000 (09:26 +0100)]
keys/ Follow redirects when fetching updates.

This supports servers which want to try to use HTTPS.  Of course, the
better answer is just to use `https://...' URIs.

2 years agokeys/tripe-keys.master: Use correct option for selecting key-exchange curve.
Mark Wooding [Mon, 22 May 2017 08:25:57 +0000 (09:25 +0100)]
keys/tripe-keys.master: Use correct option for selecting key-exchange curve.

Always been wrong.

2 years agoRelease 1.0.0pre19. 1.0.0pre19
Mark Wooding [Thu, 11 May 2017 09:42:15 +0000 (10:42 +0100)]
Release 1.0.0pre19.

2 years agoserver/bulkcrypto.c, server/ Handle MAC names containing `/'.
Mark Wooding [Thu, 11 May 2017 09:42:15 +0000 (10:42 +0100)]
server/bulkcrypto.c, server/ Handle MAC names containing `/'.

Everything is fine (though unnecessarily ugly) if we take the final `/'
as delimiting the tag length, rather than the initial one.  So do that.

2 years agoserver/, keys/: Support Bernstein's X25519 and Hamburg's X448 algorithms.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
server/, keys/: Support Bernstein's X25519 and Hamburg's X448 algorithms.

2 years agoserver/, keys/: Add bulk crypto transform based on NaCl `crypto_secretbox'.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
server/, keys/: Add bulk crypto transform based on NaCl `crypto_secretbox'.

2 years agoserver/, keys/: Alternative serialization formats for hashing.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
server/, keys/: Alternative serialization formats for hashing.

The old format was variable length, which leaks the length of the value
to local adversaries.  Provide a switch to use the better
constant-length encoding for hashing.

Make this the default when setting up new key distribution centres.

2 years agoserver/keymgmt.c: Detect if a private keys records a wrong public key.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
server/keymgmt.c: Detect if a private keys records a wrong public key.

2 years agoserver/: Replace the Diffie--Hellman group abstraction.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
server/: Replace the Diffie--Hellman group abstraction.

Downside: this basically involves duplicating Catacomb's `group'

Upside: I've been able to improve a few things.  Most notably, this new
abstraction covers scalars as well as group elements, which extends the
possibilities.  Because the new abstraction takes over responsibility
for tracing and reporting, I've been able to make group-specific

More subtly, I've also introduced an additional group-element encoding
format.  Previously, there was the `buffer format' (a sequence of
length-prefixed items) and the `raw format' (a binary blob with a known
length, used in encrypted messages).  But there's an additional source
of length leakage for secret values, which is in hashing: so I've
introduced a new `hash format', which currently works the same as
`buffer' for compatibility's sake, but could later be switched -- say,
by a key attribute -- to work like `raw'.

I've also passed the key file and object through to the DH operations,
so that they can pick up additional attributes from the key.  Nothing
takes advantage of this yet, though.

2 years agoserver/: Make bulk crypto transforms responsible for algorithm selection.
Mark Wooding [Wed, 19 Apr 2017 19:41:18 +0000 (20:41 +0100)]
server/: Make bulk crypto transforms responsible for algorithm selection.

Move all of the logic around processing symmetric algorithm selections
into the `bulkcrypto' transforms.  There are now three associated object

  * an algorithm selection, which ends up attached to a peer key;

  * an encryption context, which actually performs the bulk transform on
    packets; and

  * a challenge context, which can issue and verify challenge tags.

The important improvement here is that now we can add new bulk crypto
transforms which are parametrized in different ways.

2 years agoserver/bulkcrypto.c: Abstract out MAC-failure tracing.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
server/bulkcrypto.c: Abstract out MAC-failure tracing.

2 years agoserver/admin.c: Export `a_info'.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
server/admin.c: Export `a_info'.

We shall have need of this soon.

2 years agoserver/: Rename `bulkcrypto' structure to `bulkops'.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
server/: Rename `bulkcrypto' structure to `bulkops'.

We shall want a structure to collect up a bulk transform's state later.
No functional change.  Basically

sed -i s/bulkcrypto/bulkops/g server/*.[ch]

and some reformatting.

2 years agoserver/tripe.h: Don't say `struct bulkcrypto' where we don't have to.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
server/tripe.h: Don't say `struct bulkcrypto' where we don't have to.

2 years agokeys/ Add an option to control the bulk transform.
Mark Wooding [Mon, 17 Apr 2017 23:39:24 +0000 (00:39 +0100)]
keys/ Add an option to control the bulk transform.

The default is `iiv', because we don't have the compatibility
constraints that the main server has.

Also, fix the `mtu' command, which has been wrong about the `iiv'
overhead for a while.

2 years agokeys/: Support the EdDSA signature schemes from catcrypt(1).
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
keys/: Support the EdDSA signature schemes from catcrypt(1).

2 years agokeys/, server/ Contemplate more group types.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
keys/, server/ Contemplate more group types.

Rather than listing the group types in prose as if there will never be
any more, list them out one by one.

2 years agoserver/ Fix formatting mistake.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
server/ Fix formatting mistake.

2 years agoserver/ Preserve output in `server communication' tests.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
server/ Preserve output in `server communication' tests.

The test runs with multiple sets of party keys, and used to delete the
party directories before each run, leaving only the output from the
last.  Instead, rename the party directories when we're done.

(I'd just create the directories with the right names in advance, but
the script uses the directory names as parts of shell variable names,
and I don't want to make the directory names ugly to allow that.)

2 years agokeys/, keys/ Allow setting attributes.
Mark Wooding [Mon, 17 Apr 2017 23:39:24 +0000 (00:39 +0100)]
keys/, keys/ Allow setting attributes.

Add `master-attrs' and `kx-attrs' options to allow setting arbitrary
attributes on keys.

2 years agokeys/ Provide `kx-genalg' and `kx-param-genalg' options.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
keys/ Provide `kx-genalg' and `kx-param-genalg' options.

Not all `tripe' key exchange groups G necessarily have `key'
key-generation algorithms named `G' and `G-param' corresponding to them;
it's just a coincidence that they do at the moment.

2 years agokeys/ Inhibit page breaks in tables.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
keys/ Inhibit page breaks in tables.

Unfortunately I have to guess at the length of the tables and associated
text, but it seems to work OK.

2 years agokeys/ Document correct default cipher.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
keys/ Document correct default cipher.

The default changed in 2009.

2 years agouslip/uslip.c: Shut the server down on `SIGTERM'.
Mark Wooding [Mon, 17 Apr 2017 23:39:24 +0000 (00:39 +0100)]
uslip/uslip.c: Shut the server down on `SIGTERM'.

The tripe(8) server sends `SIGTERM' to its SLIP tunnel helpers when it
shuts down interfaces.  This causes us to leave behind dead Unix-domain
sockets, which is bad.  Catch `SIGTERM' so that we can clean up
properly -- and so that we can let clients pick up any remaining packets
we might still have queued.

2 years agouslip/uslip.c: Abstract out the server's EOF-on-stdin behaviour.
Mark Wooding [Mon, 17 Apr 2017 23:39:24 +0000 (00:39 +0100)]
uslip/uslip.c: Abstract out the server's EOF-on-stdin behaviour.

2 years agouslip/uslip.c: Make `make_pkqnode' be const-correct.
Mark Wooding [Mon, 17 Apr 2017 23:39:24 +0000 (00:39 +0100)]
uslip/uslip.c: Make `make_pkqnode' be const-correct.

2 years agouslip/uslip.c: Consistently name ignored closure pointers `hunoz'.
Mark Wooding [Mon, 17 Apr 2017 23:39:24 +0000 (00:39 +0100)]
uslip/uslip.c: Consistently name ignored closure pointers `hunoz'.

2 years agouslip/uslip.c: Be consistent about `VERB_NOUN' function naming.
Mark Wooding [Mon, 17 Apr 2017 23:39:24 +0000 (00:39 +0100)]
uslip/uslip.c: Be consistent about `VERB_NOUN' function naming.

2 years agoserver/keymgmt.c: Add missing comma causing poor error formatting.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
server/keymgmt.c: Add missing comma causing poor error formatting.

2 years agoserver/keymgmt.c: Don't leak `kdata' objects.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
server/keymgmt.c: Don't leak `kdata' objects.

2 years agoserver/keyexch.c: Don't copy group elements when registering a challenge.
Mark Wooding [Wed, 19 Apr 2017 20:02:24 +0000 (21:02 +0100)]
server/keyexch.c: Don't copy group elements when registering a challenge.

Instead, just remember that ownership has been transferred.  For `c', we
don't use the original variable any more, so we can just mark it null;
but `r' gets reused, so allocate a fresh place for it.

This is the only use of `G_COPY' in the program.

2 years agoserver/keyexch.c: Fix error handling around `mpmask' and `mpunmask'.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
server/keyexch.c: Fix error handling around `mpmask' and `mpunmask'.

The return value from `mpmask' wasn't being used, and callers expected a
broken buffer on failure, so that's the official story now.

The return value from `mpunmask' was advertised properly, but not
checked, so fix that.

2 years agoserver/keyexch.c: Check that all of the algorithms match when setting up.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
server/keyexch.c: Check that all of the algorithms match when setting up.

For some reason, we used only to check that the actual groups matched
and ignored the bulk crypto options.  Check everything now.

2 years agoserver/keyexch.c: Pass correct peer pointer when reporting group mismatch.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
server/keyexch.c: Pass correct peer pointer when reporting group mismatch.

2 years agocommon/util.c, server/admin.c: Ensure null-termination of result strings.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
common/util.c, server/admin.c: Ensure null-termination of result strings.

`dstr_putc' has a sharp edge here.  Apparently I wasn't careful enough.

2 years agoserver/keymgmt.c: Fix typo.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
server/keymgmt.c: Fix typo.

2 years Some reformatting.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)] Some reformatting.

2 years Some reformatting.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)] Some reformatting.

3 years, debian/: Overhaul Wireshark plugin build machinery.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)], debian/: Overhaul Wireshark plugin build machinery.

  * Depend on the a newish version of Wireshark because I couldn't find
    out where the API changes happened.

  * It seems that Wireshark actually does provide a `pkg-config'
    dropping now, so I can use it rather than complaining about how it's
    not there.

3 years agokeys/ Remove unrecognized files from `base-dir'.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
keys/ Remove unrecognized files from `base-dir'.

In a sensible system, these turn out to be mostly signature files made
by old versions of the master key which don't exist any more.

You might want to think about making `upload-hook' delete the
corresponding files at the file server.

3 years agokeys/ `tripe-keys upload' can really upload things.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
keys/ `tripe-keys upload' can really upload things.

Mention the `upload-hook' configuration knob rather than the comment
about how it can't be done.

3 years agowireshark/packet-tripe.c: Catch up with Wireshark API changes.
Mark Wooding [Thu, 26 May 2016 08:26:09 +0000 (09:26 +0100)]
wireshark/packet-tripe.c: Catch up with Wireshark API changes.

  * Apparently `check_col' is now just dead, and its functionality
    included in the various `col_set_mumble' functions.

  * It seems that `dissector_add' has turned into `dissector_add_uint',
    and a number of other functions, for different field types, have
    been added.

This isn't well tested.

3 years agoUse new Catacomb `rand_quick' to gather entropy from other fast sources.
Mark Wooding [Sat, 4 Jun 2016 15:39:48 +0000 (16:39 +0100)]
Use new Catacomb `rand_quick' to gather entropy from other fast sources.

This requires a very shiny Catcomb.  I can make the dependency softer if

3 years agoserver/: Rename `TIMER' to `QUICKRAND'.
Mark Wooding [Sat, 4 Jun 2016 15:31:10 +0000 (16:31 +0100)]
server/: Rename `TIMER' to `QUICKRAND'.

The purpose of the `TIMER' is to feed the entropy a small quantity of
entropy on a regular basis.  Encoding the implementation in the name was
an error which this commit fixes.

3 years agoserver/ Fix misformatting.
Mark Wooding [Sat, 14 May 2016 10:08:35 +0000 (11:08 +0100)]
server/ Fix misformatting.

3 years agoRelease 1.0.0pre18. 1.0.0pre18
Mark Wooding [Fri, 19 Feb 2016 21:49:33 +0000 (21:49 +0000)]
Release 1.0.0pre18.

3 years agodebian/control: Fix the dependencies.
Mark Wooding [Fri, 19 Feb 2016 21:49:33 +0000 (21:49 +0000)]
debian/control: Fix the dependencies.

  * Fix up the Build-Depends.  The Python requirements for the
    architecture-independent packages are quite heavy, so split out

  * Add detailed version information to the various build and runtime

  * Observe that `tripe-keys' depends on curl(1) to run, so we need it
    at build time for testing, and the `tripe-keys' package needs it at

3 years agodebian/source/format: Apparently you're meant to have one of these now.
Mark Wooding [Fri, 19 Feb 2016 19:51:19 +0000 (19:51 +0000)]
debian/source/format: Apparently you're meant to have one of these now.

3 years, More subsetting based on module availability.
Mark Wooding [Sat, 20 Feb 2016 17:17:51 +0000 (17:17 +0000)], More subsetting based on module availability.

Also check the mLib and CDB modules.

3 years agotripe-service.7: Move manual page to server/.
Mark Wooding [Sun, 24 Apr 2016 22:30:30 +0000 (23:30 +0100)]
tripe-service.7: Move manual page to server/.

The stuff in svc/ isn't always built, but the manpage should always
exist because it describes general conventions.

3 years agoserver/admin.c (a_vformat): Fix uses of `va_arg' to dereference `ap'.
Mark Wooding [Fri, 19 Feb 2016 22:31:20 +0000 (22:31 +0000)]
server/admin.c (a_vformat): Fix uses of `va_arg' to dereference `ap'.

This is the missing half of the earlier patch; without it, we get
instant crashes on i386 (but, oddly, no warnings anywhere).

3 years agoserver/admin.c: Pass captured `va_list' consistently by reference.
Mark Wooding [Fri, 19 Feb 2016 21:42:57 +0000 (21:42 +0000)]
server/admin.c: Pass captured `va_list' consistently by reference.

On amd64, they're secretly arrays, and once one's decayed into a
pointer to a strange thing, there's no getting it back again.

3 years agoPortability: Use `socklen_t' throughout, if available.
Mark Wooding [Fri, 19 Feb 2016 21:41:04 +0000 (21:41 +0000)]
Portability: Use `socklen_t' throughout, if available.

Silly amd64 people, not using `size_t'.

3 years agoserver/ (AWAIT_KXDONE): Ignore warnings and trace.
Mark Wooding [Fri, 19 Feb 2016 21:49:33 +0000 (21:49 +0000)]
server/ (AWAIT_KXDONE): Ignore warnings and trace.

If the waiting loop receive a message it doesn't understand, it bails
and the rest of the test continues, usually before the peers have
actually completed their key exchange.

3 years agoserver/ (AWAIT_KXDONE): Ignore the correct server messages.
Mark Wooding [Fri, 19 Feb 2016 21:49:33 +0000 (21:49 +0000)]
server/ (AWAIT_KXDONE): Ignore the correct server messages.

The old code told arranged for both peers to ignore complains about
unexpected packets from the /first/ peer, with the predictable result
that the first peer complains about unexpected packets from the second
and the test fails spuriously.

3 years agoserver/ (server retry): Use the new `WITH_STRACE' macro.
Mark Wooding [Fri, 19 Feb 2016 21:49:33 +0000 (21:49 +0000)]
server/ (server retry): Use the new `WITH_STRACE' macro.

Now we don't necessarily need strace(1) installed at build time.

It's now the responsibility of `WITH_STRACE' to clear away the strace(1)
process if there is one.  There's now too much process hierarchy in
between the wait and the child for us to wait on the proxy process
itself.  It doesn't really matter much, fortunately.

3 years agoserver/ Make the strace options better.
Mark Wooding [Fri, 19 Feb 2016 21:49:33 +0000 (21:49 +0000)]
server/ Make the strace options better.

  * `-ff' to split the traces for different processes out into separate
    files.  This is mostly good because it removes the confusing
    interleaving of blocking system calls issued from concurrently
    running processes.

  * `-tt' to print high-resolution timestamps on each line, for
    correlating the traces now they've been separated.

  * `-v' to print out full dumps of environments and other such things.

  * `-s1024' to print the whole of longish strings.

3 years agoserver/ (TRIPE): Set command-line trace options from environment.
Mark Wooding [Fri, 19 Feb 2016 21:49:33 +0000 (21:49 +0000)]
server/ (TRIPE): Set command-line trace options from environment.

If you set `TRIPE_TEST_TRACEOPTS' then tracing is turned on with the
appropriate options.  The obvious value is `A'.

3 years agoserver/ (WITH_TRIPEX): Strip early tracing from the stderr file.
Mark Wooding [Fri, 19 Feb 2016 21:49:33 +0000 (21:49 +0000)]
server/ (WITH_TRIPEX): Strip early tracing from the stderr file.

So we end up with a `...full' version.

3 years agoserver/ (WITH_STRACE): Factor out the strace(1) machinery.
Mark Wooding [Fri, 19 Feb 2016 21:49:33 +0000 (21:49 +0000)]
server/ (WITH_STRACE): Factor out the strace(1) machinery.

There's very little noticeable difference in the behaviour: the (usually
empty) directory created for strace(1) to scribble its corefile has a
different name.  The new macro takes care of running the caller's
command in the correct directory, so the (only, currently) call site
doesn't need to worry about that any more.

4 years agopriv/helper.c (lose): Tag as NORETURN.
Mark Wooding [Mon, 1 Jun 2015 17:17:44 +0000 (18:17 +0100)]
priv/helper.c (lose): Tag as NORETURN.

4 years agoserver/keyexch.c: Always quote the peer name in `KXSTART' notifications.
Mark Wooding [Wed, 27 May 2015 18:43:07 +0000 (19:43 +0100)]
server/keyexch.c: Always quote the peer name in `KXSTART' notifications.

I missed the separate notification which is issued when a corked
exchange is uncorked.

4 years agoRelease 1.0.0pre17.1. 1.0.0pre17.1
Mark Wooding [Sat, 2 May 2015 16:05:20 +0000 (17:05 +0100)]
Release 1.0.0pre17.1.

4 years agoserver/ (AWAIT_KXDONE): More warning suppressions.
Mark Wooding [Sat, 2 May 2015 16:05:20 +0000 (17:05 +0100)]
server/ (AWAIT_KXDONE): More warning suppressions.

Slow hosts (e.g., Scratchbox, under emulation) can trigger warnings in
both directions, and also `unexpected-challenge', depending on how far
the key exchange has progressed by the time the other end gets the
`FORCEKX' command.

4 years agoserver/ (AWAIT_KXDONE): Deliver POP to the correct place.
Mark Wooding [Sat, 2 May 2015 16:05:20 +0000 (17:05 +0100)]
server/ (AWAIT_KXDONE): Deliver POP to the correct place.

In fact, BNAME and BDIR are always the same in the current test script
-- the silly games are always played with ANAME and ADIR -- but that's
just luck.

4 years agoRelease 1.0.0pre17. 1.0.0pre17
Mark Wooding [Sat, 2 May 2015 16:05:20 +0000 (17:05 +0100)]
Release 1.0.0pre17.

4 years agoclient/tripectl.c: New option `-W' to set `WATCH' list.
Mark Wooding [Sat, 2 May 2015 16:05:20 +0000 (17:05 +0100)]
client/tripectl.c: New option `-W' to set `WATCH' list.

4 years agobuild, debian: Add a suffix to the main TrIPE-specific manpages.
Mark Wooding [Sat, 2 May 2015 16:05:20 +0000 (17:05 +0100)]
build, debian: Add a suffix to the main TrIPE-specific manpages.

This keeps the service documentation, in particular, out of the general
namespace where things might conflict with it.

The general-purpose utilities `pkstream' and `pathmtu' are not affected
by this change.

4 years agosvc/ (cmd_kick): Call the right function.
Mark Wooding [Sat, 2 May 2015 16:05:20 +0000 (17:05 +0100)]
svc/ (cmd_kick): Call the right function.

4 years agocontrib/sshsvc.conf: Include configuration file for `sshsvc-mkauthkeys'.
Mark Wooding [Sat, 2 May 2015 16:05:20 +0000 (17:05 +0100)]
contrib/sshsvc.conf: Include configuration file for `sshsvc-mkauthkeys'.

4 years agocontrib/ Can now be called from an ordinary shell.
Mark Wooding [Fri, 24 Apr 2015 09:11:23 +0000 (10:11 +0100)]
contrib/ Can now be called from an ordinary shell.

The script can now pick up information from environment variables rather
than the forced command, which makes the `tripe' user much more sane.
This also fits a little better with `sshsvc-mkauthkeys'.

4 years agopeerdb/, svc/ Tweak dead-peer-detection parameters.
Mark Wooding [Mon, 22 Dec 2014 20:32:58 +0000 (20:32 +0000)]
peerdb/, svc/ Tweak dead-peer-detection parameters.

They're now different between dynamic and passive peers.  The manual
explains why they're set the way they are and provides some vaguely
useful commentary.

Also rearrange the other parameters a bit, now that we have multiple

4 years agopeerdb/, peerdb/ Multiple inheritance.
Mark Wooding [Mon, 22 Dec 2014 20:32:58 +0000 (20:32 +0000)]
peerdb/, peerdb/ Multiple inheritance.

Allow a section to `@inherit' from more than one other section.  All
traversals of the inheritance dag which find a value must report the
same one.  Cycles are diagnosed when they're encountered, but not

4 years agopeerdb/ Sort the output so that testing is easier.
Mark Wooding [Sat, 2 May 2015 16:05:20 +0000 (17:05 +0100)]
peerdb/ Sort the output so that testing is easier.

4 years agosvc/ Fix the manpage heading!
Mark Wooding [Sat, 2 May 2015 16:05:20 +0000 (17:05 +0100)]
svc/ Fix the manpage heading!

4 years agopeerdb/ The magic is spelled `@inherit', not `@inherits'.
Mark Wooding [Mon, 22 Dec 2014 20:32:58 +0000 (20:32 +0000)]
peerdb/ The magic is spelled `@inherit', not `@inherits'.

4 years agoRelease 1.0.0pre16.2. 1.0.0pre16.2
Mark Wooding [Sat, 14 Mar 2015 19:37:30 +0000 (19:37 +0000)]
Release 1.0.0pre16.2.

4 years agosrc/ Hack IPv6 up on VPN interfaces.
Mark Wooding [Sat, 14 Mar 2015 19:03:00 +0000 (19:03 +0000)]
src/ Hack IPv6 up on VPN interfaces.

It seems that some devices try to turn off IPv6 on all interfaces if
they can't figure out a route.  But we know how to take care of
ourselves, and we want IPv6 over our VPN even if we can't do it

I'm thinking specifically of ConnMan on Jolla phones here, but there are
probably others.

4 years agosvc/ Better error handling.
Mark Wooding [Sat, 14 Mar 2015 14:39:42 +0000 (14:39 +0000)]
svc/ Better error handling.

Don't give up as soon as a network configuration command fails.  That
tends to leave the device's routing in a hopelessly broken state.
Instead, catch errors, report them via the server, and issue a slightly
different notification on completion.

4 years agosvc/ Trim prefix length from IPv6 address used as gateway.
Mark Wooding [Mon, 22 Dec 2014 20:32:58 +0000 (20:32 +0000)]
svc/ Trim prefix length from IPv6 address used as gateway.

Because IPv6 doesn't deal with point-to-point connections well, it's
common to use little networks.  But then the user needs to associate a
prefix length with the address, and we have to strip it off when adding
routes which use the address as a gateway.

4 years agoRelease 1.0.0pre16.1. 1.0.0pre16.1
Mark Wooding [Tue, 17 Feb 2015 21:34:14 +0000 (21:34 +0000)]
Release 1.0.0pre16.1.