secnet (0.6.7) unstable; urgency=medium

  * Upstream release of changes since 0.6.2.
    (Versions 0.6.5 and 0.6.6 were Debian-only; 0.6.3 and 0.6.4
    were not properly released at all and should be disregarded.)

  Packaging bugfix:
  * Update VERSION in Makefile.

 -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Mon, 09 Jan 2023 00:15:21 +0000

secnet (0.6.6) unstable; urgency=medium

  Bugfix:
  * polypath: Do not separately log xmit failures.

  Tests:
  * stest: Fix debugging output about spawning secnet

  Packaging:
  * Add missing build-dependency on netbase.  Closes: #1028102.
  * Copyright notices and LICENCE (aka debian/copyright) fixes
    and improvements.  [Requested by Debian ftpmaster]
  * Add Debian upload step to release checklist.

 -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Sun, 08 Jan 2023 18:20:09 +0000

secnet (0.6.5) unstable; urgency=medium

  Copyright and source code notices:
  * Include notices and licences of all included elements in LICENCE,
    not just in the files themselvves.
  * Tidy up a handful of notices to the most recent facts.
  * Do not claim CC-BY-SA 4.0 is GPL3+ compatible - only GPL3.
  * Add a README.source.
  * Update my own copyright year.

  * Versions 0.6.3 and 0.6.4 burned due to failed uploads.
    (See dgit bug #944855.)

 -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Sat, 12 Nov 2022 18:58:02 +0000

secnet (0.6.2) unstable; urgency=medium

  Bugfixes to code and build system:
  * site: promote creation of st->scratch, allowing new pubkey scheme
    to work even when secnet is restarting.
  * comm-common.h: Remove unused `notify' variable.  [Colin Watson]
  * Dir.sd.mk: Prevent builtin make rule overwriting conffile.c.

  Documentation:
  * configure: Correct bug reporting address.  Report from Colin Watson.
  * example.conf improvements:
      - Comment out some tuning overrides
      - Improve syntax by deleting one of the two map examples
      - Add a commented-out mobile site setting
      - Add mtu-target
  * OLD-NEWS, OLD-BUGS: Rename from NEWS and BUGS, and don't ship OLD-BUGS.

  Debian packaging changes:
  * debian/rules: Use dh sequencer.  Resulting changes:
      - We now provide debug symbols in the new Debian way.
      - The way the prerm stops secnet accords with modern practice.
  * init script: source /lib/lsb/init-functions.
  * init script: make "restart" work if secnet is not running.
  * Expand Description.
  * debhelper compat: bump to 12 (stretch-backports).
  * debian/rules: Use dh_prep instead of deprecated dh_clean -k.
  * Adjust Priority (as per modern policy and lintian).
  * Add some lintian overrides.
  * Add missing Pre-Depends on init-system-helpers.

  Credits and legal documentation improvements:
  * Add missing credits for base91 and python argparse extension.
    ensure some packaging credits exist in all the places they should be.
  * Add copyright/credits notices to many files which were missing them.
  * Move and centralise legal information into its own file, LICENCE.

  Testing improvements:
  * comprehensive-test: Actually allow OLD_SECNET_DIR set to ''
  * test-example/common.conf: Fix a reference to the sites file.
  * test-example/null-fake-userv: New test utility script.

 -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Thu, 30 Dec 2021 15:10:12 +0000

secnet (0.6.1) unstable; urgency=medium

  Logging bugfixes:
  * Fix completely broken startup logging.  Config errors would not
    be repoorted other than via the exit status!  (Broken in 0.6.0.)
  * Suppress various uninteresting messages during startup, to
    avoid noise during successful startup.
  * Move "starting" message earlier.
  
  make-secnet-sites bugfixes:
  * Fix error handling if caller is in wrong group.
  * Fix regressions in handling of delegated sites file fragments
    (especially wrt the optional group parameter to `location').
    Broken since security fixes in 0.5.0.

  Fixes to example config file:
  * Use new name-prefixed format for map(site...) runes.  Old runes
    were desupported by make-secnet-sites security fix (in 0.5.0).
  * Fix "transform" syntax (broken since 0.3.0).

  Other bugfixes and improvements:
  * rsa: Do not crash if private key file is not accessible when
    running --just-check-config.  (Broken since 0.6.0.)
  * rsa: Print errno value if we fail to open key file.
  * config parsing: When closure is of wrong type, give details.
  * Use CLOCK_MONOTONIC for all our timing needs (but only when
    built against an as-yet-unpublished adns feature).

  Supporting changes:
  * Tests for some of the changes.
  * Minor internal refactorings and improvements.
  * Merge subdirmk 1.0.

 -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Sun, 24 May 2020 22:14:26 +0100

secnet (0.6.0) unstable; urgency=medium

  Bugfixes:
  * mobile sites: Do not ever expire peer addresses.  In practice
    this fixes transitions between IPv6-only and IPv4-only networks.
  * make-secnet-sites: Tainted: Fix a lot of bad return values
    (which would result in assertions rather than nice error messages).
  * Fix hash algo confusion in mixed sha1/md5 configurations (see below).

  Incompatible changes:
  * site: Always advertise all capabilities, even in MSG1.  This is
    incompatible with secnets earlier than 0.3.0 (September 2013), which
    are all quite badly broken and should have been upgraded long ago.
  * Drop support for using the same loaded rsa key with multiple different
    hash algorithms (which was broken in 0.5.0).  Right now we support
    only `sha1' and `md5' so everyone should be using `sha1'.
    Installations which specified `md5' anywhere may need config changes.

  Major new featureset (use of which is not adviseable yet):
  * New facilities for negotiating about the signing keys to use for
    authentication during key setup, and selecting and using the
    appropriate keys.  (``key-cache'/`privcache' and `peer-keys').
    Using these new facilities for keyrollover now is in principle
    possible but rather complex.  Further machinery is planned;
    for now, retain your existing config which should keep working.
    In summary:
       - secnet: new `privcache' closure;
       - secnet: `key-cache' and `peer-keys' keys on site closures;
       - secnet: new file format for peer public keysets;
       - secnet: new `make-public' config operator;
       - make-secnet-sites `pub', `pkg', `serial', etc. keywords;
       - make-secnet-sites --filter, --pubkeys-*, --output-version.

  More minor (logging) improvements:
  * Make stderr line buffered and log to it by default.
  * Do not log differently with --nodetach.
  * New `prefix' option to `logfile' closure.
  * Tidy and simplify some messages.

  Supporting changes:
  * Many substantial internal refactorings in secnet.
  * Many substantial internal refactorings in make-secnet-sites.
  * make-secnet-sites option parsing totally replaced.
  * Imported subtrees for base91-c and base91-python.
  * New portablity code, etc.: osdep.[ch], fmemopen reimplementation.
  * Explicitly define oddly-rotated dh padding arrangement (write_mpbin).

  Build system and packaging:
  * Do not fail to build from git when HEAD refers to a packed ref.
  * Update to subdirmk 0.3.
  * Many makefile fixes (esp. to clean and cdeps).
  * configure.ac: Drop or suppress some very obsolete checks.
  * autogen.sh: Write a comment about need for autoheader.
  * dir-locals: Provide python-indent-offset too.

  Test suite bugfixes:
  * stest: Use stderr, not tty, for logging.
  * stest/udp-preload.c: Fix error handling of sun_prep.
  * stest: Fix breakage if nproc is not installed.

  Test suite improvements:
  * New tests, including tests for new features.
  * Existing tests (especially stest) generally made more thorough.
  * New comprehensive-test and pretest-to-tested convenience scripts.
  * Arrangements for testing with (user-provided) old secnet.
  * parallel-test.*: scripts to help with parallelised bisection.
  * stest: Print a lot more output about what we are doing.
  * stest: Better support for cwd with longish pathname.
  * stest: More flexibility, env var hooks, etc.

 -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Sun, 16 Feb 2020 12:48:13 +0000

secnet (0.5.1) unstable; urgency=medium

  POTENTIALLY INCOMPATIBLE CHANGE.  Some security implications.

  * make-secnet-sites: Prefix names when writing secnet sites.conf file.

    make-secnet-sites must copy names (vpn, location and site names) from
    the input sites file (which is not wholly trusted) to the secnet
    config file.  Prior to this release, naming a location or site the
    same as a secnet predefined name could generate a broken sites.conf
    which secnet would reject.  (With the existing featureset,
    malfunctions other than rejection, eg privilege escalation, are not
    possible.)

    make-secnet-sites now adds a prefix to these names when writing
    sites.conf.  This will not affect configurations which use the
    make-secnet-sites-provided `all-sites' key, as is usual.  Other
    configurations will break unless the references in the static part of
    the config are adjusted.

    Previous behaviour can be restored with the --no-conf-key-prefix
    option.  (Planned future enhancements to secnet are likely to make use
    of that option, with untrusted input, dangerously insecure.)

  other changes to make-secnet-sites:
  * Fix argument parsing.  Fixes a regression affecting -P in 0.5.0,
    and also fixes new facilities introduced in 0.5.0.
  * Sort the properties on output (and adjust the test case expected
    outputs).  Tests now pass on (at least) Python 2.7.13, 3.5.3, 3.7.5.
  * Delete some unused code.

  secnet:
  * Change one idiom to avoid a warning from GCC9.  No functional change.

  build system - MAJOR CHANGES:
  * Fix out-of-tree builds.  (Broken in 0.5.0)
  * Replace recursive make with use of the new subdirmk system.
    This represents a fairly comprehensive overhaul of the makefiles.
    Several bugs (esp. involving dependencies between files in different
    directories) are fixed.
  * Drop `make check' from `make all'.  (Otherwise there is no way
    to ask for `all' without `check'.)
  * Suppress two unhelpful new compiler warnings from GCC9.
  * Release checklist update.

  documentation:
  * Credit Mark Wooding properly in CREDITS.
  * Include DEVELOPER-CERTIFICATE.

  tests:
  * Locations now have different names to sites.
  * Somewhat better debugging output from mtest.
  * Do not run msgcode-test except with `make fullcheck'.
  * Other minor bugfixes and improvments.
  * stest: Suppress unhelpful -Wno-unused-result (needed for stretch).

 -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Fri, 22 Nov 2019 23:13:14 +0000

secnet (0.5.0) unstable; urgency=medium

  make-secnet-sites SECURITY FIX:
  * Do not blindly trust inputs; instead, check the syntax for sanity.
    Previous releases can be induced to run arbitrary code as the user
    invoking secnet (which might be root), if a secnet sites.conf is used
    that was generated from an untrustworthy sites file.
  * The userv invocation mode of make-secnet-sites seems to have been safe
    in itself, but it previously allowed hazardous data to be propagated
    into the master sites file.  This is now prevented too.

  make-secnet-sites overhaul work:
  * make-secnet-sites is now in the common subset of Python2 and Python3.
    The #! is python3 now, but it works with Python2.7 too.
    It will probably *not* work with old versions of Python2.
  * We no longer depend on the obsolete `ipaddr' library.  We use
    `ipaddress' now.  And this is onlo a Recommends in the .deb.
  * Ad-hoc argument parser been replaced with `argparse'.
    There should be no change to existing working invocations.
  * Bad address syntax error does not wrongly mention IPv6 scopes.
  * Minor refactoring to support forthcoming work.  [Mark Wooding]

  other bugfixes, improvements and changes to secnet itself:
  * Better logging of why we are sending NAK messages.
  * Correctly use the verified copy of the peer remote capabilities
    from MSG3.  (Bug is not a vulnerability.)    [Mark Wooding]
  * Significant internal rearrangements and refactorings, to support
    forthcoming key management work.  [Mark Wooding and Ian Jackson]

  build system etc.:
  * Completely overhaul release checklist; drop dist target.
  * Remove dependency on `libfl.a'.  [Mark Wooding]
  * polypath.c: Fix missing include of <limits.h>.  [Mark Wooding]
  * Add a Wireshark dissector `secnet-wireshark.lua'.  It is not
    installed anywhere right now.  [Mark Wooding]

  documentation:
  * Improve documentation of capability negotiation in NOTES, secnet(8)
    and magic.h.  [Mark Wooding]

 -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Thu, 24 Oct 2019 19:11:54 +0100

secnet (0.4.5) unstable; urgency=medium

  * INSTALL: Mention that rsa key generation might need ssh-keygen1.
  * mobile: Fix negotiation bug with mixed old/new secnets and
    simultaneous key setup attempts by each end.  [Mark Wooding]
  * Makefile.in: Support installation from a `VPATH' build.  [Mark Wooding]
  * Portability fixes for clang.  [Mark Wooding]

 -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Sat, 21 Sep 2019 12:04:31 +0100

secnet (0.4.4) unstable; urgency=medium

  Security fix:
  * make-secnet-sites: Don't allow setting new VPN-level properties
    when restricted.  This could allow denial of service by
    users with delegated authorisation.  [Mark Wooding]

  Bugfixes for poor network environments:
  * polypath: cope properly with asymmetric routing, by correcting
    the handling of late duplicated packets etc.   Protocol is now
    incompatible with secnet prior to 0.3.0 when either end is mobile.
  * Randomise key setup retry time.

  Other bugfixes:
  * rsa and cbcmac: Fix configuration error messages.  [Mark Wooding]
  * Handle IPv4 addresses properly (ie, not foolishly byte-swapped),
    when IPv6 is not available.  [Mark Wooding]
  * Better logging (and less foolish debug), especially about whether
    key is set up, and about crossed key setup attempts.
  * Internal refactoring and fixes.  [Ian Jackson and Mark Wooding]

  Build system and portability:
  * configure: rerun autogen.sh with autoconf 2.69-10
  * Avoid memset(0,0,0) wrt st->sharedsecret.  (Fixes compiler warning;
    in theory might cause miscompilation.)  [Mark Wooding]

  Documentation:
  * README.make-secnet-sites: new documentation file.  [Mark Wooding]
  * NOTES: Describe current allocation of capability bits.  [Mark Wooding]
  * NOTES: tiny fix tot protocol description.
  * secnet(8): Delete wrong information about dh groups.  [Mark Wooding]

  Administrivia:
  * Fix erroneous GPL3+ licence notices "version d or later" (!)
  * .dir-locals.el: Settings for Python code.  [Mark Wooding]

 -- Ian Jackson <ijackson@chiark.greenend.org.uk>  Sun, 08 Sep 2019 22:53:14 +0100

# Older entries have been removed from this changelog.
# To read the complete changelog use `apt changelog secnet`.
