./wip/tor-dev, Anonymizing overlay network for TCP

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version:, Package name: tordev-, Maintainer: alnsn

The simple version: Tor provides a distributed network of servers ("onion
routers"). Users bounce their TCP streams (web traffic, FTP, SSH, etc.) around
the routers. This makes it hard for recipients, observers, and even the onion
routers themselves to track the source of the stream.

The complex version: Onion Routing is a connection-oriented anonymizing
communication service. Users choose a source-routed path through a set of
nodes, and negotiate a "virtual circuit" through the network, in which each
node knows its predecessor and successor, but no others. Traffic flowing down
the circuit is unwrapped by a symmetric key at each node, which reveals the
downstream node.

This version is not a stable Tor release. Expect more bugs than usual.

Required to run:
[security/openssl] [devel/libevent] [archivers/zstd]

Required to build:
[textproc/asciidoc] [pkgtools/cwrappers]

Package options: doc, openssl

Master sites:

RMD160: e773423c05ea9557c109a85cdee15b731ce4340b
Filesize: 7573.069 KB

Version history: (Expand)

CVS history: (Expand)

   2015-05-21 14:06:28 by Christian St. | Files touched by this commit (2)
Log message:
Update tor-dev to
   2015-04-07 20:28:19 by Christian St. | Files touched by this commit (2)
Log message:
Update tor-dev to 2.6.7

Changes in version - 2015-04-06
  Tor fixes two security issues that could be used by an
  attacker to crash hidden services, or crash clients visiting hidden
  services. Hidden services should upgrade as soon as possible; clients
  should upgrade whenever packages become available.

  This release also contains two simple improvements to make hidden
  services a bit less vulnerable to denial-of-service attacks.

  o Major bugfixes (security, hidden service):
    - Fix an issue that would allow a malicious client to trigger an
      assertion failure and halt a hidden service. Fixes bug 15600;
      bugfix on Reported by "disgleirio".
    - Fix a bug that could cause a client to crash with an assertion
      failure when parsing a malformed hidden service descriptor. Fixes
      bug 15601; bugfix on Found by "DonnchaC".

  o Minor features (DoS-resistance, hidden service):
    - Introduction points no longer allow multiple INTRODUCE1 cells to
      arrive on the same circuit. This should make it more expensive for
      attackers to overwhelm hidden services with introductions.
      Resolves ticket 15515.
    - Decrease the amount of reattempts that a hidden service performs
      when its rendezvous circuits fail. This reduces the computational
      cost for running a hidden service under heavy load. Resolves
      ticket 11447.
   2015-03-27 12:37:26 by Christian St. | Files touched by this commit (1)
Log message:
silence some pkglint -Wall warnings in tor-dev
   2015-03-27 12:14:09 by Christian St. | Files touched by this commit (2)
Log message:
thread support for tor was removed, so remove the option. Fixing path
in torify is not necessary anymore as it is now a wrapper for torsocks
   2015-03-27 10:54:53 by Christian St. | Files touched by this commit (2) | Package updated
Log message:
update tor-dev to
   2015-02-20 00:35:14 by Christian St. | Files touched by this commit (2) | Package updated
Log message:
Update tor-dev to

  Tor is the third (and hopefully final) alpha release in
  the 0.2.6.x series. It introduces support for more kinds of sockets,
  makes it harder to accidentally run an exit, improves our
  multithreading backend, incorporates several fixes for the
  AutomapHostsOnResolve option, and fixes numerous other bugs besides.

  If no major regressions or security holes are found in this version,
  the next version will be a release candidate.

  o Deprecated versions:
    - Tor relays older than are no longer allowed to
      advertise themselves on the network. Closes ticket 13555.

  o Major features (security, unix domain sockets):
    - Allow SocksPort to be an AF_UNIX Unix Domain Socket. Now high risk
      applications can reach Tor without having to create AF_INET or
      AF_INET6 sockets, meaning they can completely disable their
      ability to make non-Tor network connections. To create a socket of
      this type, use "SocksPort unix:/path/to/socket". Implements
      ticket 12585.
    - Support mapping hidden service virtual ports to AF_UNIX sockets.
      The syntax is "HiddenServicePort 80 unix:/path/to/socket".
      Implements ticket 11485.

  o Major features (changed defaults):
    - Prevent relay operators from unintentionally running exits: When a
      relay is configured as an exit node, we now warn the user unless
      the "ExitRelay" option is set to 1. We warn even more loudly if
      the relay is configured with the default exit policy, since this
      can indicate accidental misconfiguration. Setting "ExitRelay 0"
      stops Tor from running as an exit relay. Closes ticket 10067.

  o Major features (directory system):
    - When downloading server- or microdescriptors from a directory
      server, we no longer launch multiple simultaneous requests to the
      same server. This reduces load on the directory servers,
      especially when directory guards are in use. Closes ticket 9969.
    - When downloading server- or microdescriptors over a tunneled
      connection, do not limit the length of our requests to what the
      Squid proxy is willing to handle. Part of ticket 9969.
    - Authorities can now vote on the correct digests and latest
      versions for different software packages. This allows packages
      that include Tor to use the Tor authority system as a way to get
      notified of updates and their correct digests. Implements proposal
      227. Closes ticket 10395.

  o Major features (performance):
    - Make the CPU worker implementation more efficient by avoiding the
      kernel and lengthening pipelines. The original implementation used
      sockets to transfer data from the main thread to the workers, and
      didn't allow any thread to be assigned more than a single piece of
      work at once. The new implementation avoids communications
      overhead by making requests in shared memory, avoiding kernel IO
      where possible, and keeping more requests in flight at once.
      Implements ticket 9682.

  o Major features (relay):
    - Raise the minimum acceptable configured bandwidth rate for bridges
      to 50 KiB/sec and for relays to 75 KiB/sec. (The old values were
      20 KiB/sec.) Closes ticket 13822.

  o Major bugfixes (exit node stability):
    - Fix an assertion failure that could occur under high DNS load.
      Fixes bug 14129; bugfix on Tor 0.0.7rc1. Found by "jowr";
      diagnosed and fixed by "cypherpunks".

  o Major bugfixes (mixed relay-client operation):
    - When running as a relay and client at the same time (not
      recommended), if we decide not to use a new guard because we want
      to retry older guards, only close the locally-originating circuits
      passing through that guard. Previously we would close all the
      circuits through that guard. Fixes bug 9819; bugfix on Reported by "skruffy".

  o Minor features (build):
    - New --disable-system-torrc compile-time option to prevent Tor from
      looking for the system-wide torrc or torrc-defaults files.
      Resolves ticket 13037.

  o Minor features (controller):
    - Include SOCKS_USERNAME and SOCKS_PASSWORD values in controller
      events so controllers can observe circuit isolation inputs. Closes
      ticket 8405.
    - ControlPort now supports the unix:/path/to/socket syntax as an
      alternative to the ControlSocket option, for consistency with
      SocksPort and HiddenServicePort. Closes ticket 14451.
    - New "GETINFO bw-event-cache" to get information about recent
      bandwidth events. Closes ticket 14128. Useful for controllers to
      get recent bandwidth history after the fix for ticket 13988.

  o Minor features (Denial of service resistance):
    - Count the total number of bytes used storing hidden service
      descriptors against the value of MaxMemInQueues. If we're low on
      memory, and more than 20% of our memory is used holding hidden
      service descriptors, free them until no more than 10% of our
      memory holds hidden service descriptors. Free the least recently
      fetched descriptors first. Resolves ticket 13806.
    - When we have recently been under memory pressure (over 3/4 of
      MaxMemInQueues is allocated), then allocate smaller zlib objects
      for small requests. Closes ticket 11791.

  o Minor features (geoip):
    - Update geoip and geoip6 files to the January 7 2015 Maxmind
      GeoLite2 Country database.

  o Minor features (guard nodes):
    - Reduce the time delay before saving guard status to disk from 10
      minutes to 30 seconds (or from one hour to 10 minutes if
      AvoidDiskWrites is set). Closes ticket 12485.

  o Minor features (hidden service):
    - Make Sybil attacks against hidden services harder by changing the
      minimum time required to get the HSDir flag from 25 hours up to 96
      hours. Addresses ticket 14149.
    - New option "HiddenServiceAllowUnknownPorts" to allow hidden
      services to disable the anti-scanning feature introduced in With this option not set, a connection to an
      unlisted port closes the circuit. With this option set, only a
      RELAY_DONE cell is sent. Closes ticket 14084.

  o Minor features (interface):
    - Implement "-f -" command-line option to read torrc configuration
      from standard input, if you don't want to store the torrc file in
      the file system. Implements feature 13865.

  o Minor features (logging):
    - Add a count of unique clients to the bridge heartbeat message.
      Resolves ticket 6852.
    - Suppress "router info incompatible with extra info" message when
      reading extrainfo documents from cache. (This message got loud
      around when we closed bug 9812 in Closes
      ticket 13762.
    - Elevate hidden service authorized-client message from DEBUG to
      INFO. Closes ticket 14015.

  o Minor features (stability):
    - Add assertions in our hash-table iteration code to check for
      corrupted values that could cause infinite loops. Closes
      ticket 11737.

  o Minor features (systemd):
    - Various improvements and modernizations in systemd hardening
      support. Closes ticket 13805. Patch from Craig Andrews.

  o Minor features (testing networks):
    - Drop the minimum RendPostPeriod on a testing network to 5 seconds,
      and the default on a testing network to 2 minutes. Drop the
      MIN_REND_INITIAL_POST_DELAY on a testing network to 5 seconds, but
      keep the default on a testing network at 30 seconds. This reduces
      HS bootstrap time to around 25 seconds. Also, change the default
      time in test-network.sh to match. Closes ticket 13401. Patch
      by "teor".
    - Create TestingDirAuthVoteHSDir to correspond to
      TestingDirAuthVoteExit/Guard. Ensures that authorities vote the
      HSDir flag for the listed relays regardless of uptime or ORPort
      connectivity. Respects the value of VoteOnHidServDirectoriesV2.
      Partial implementation for ticket 14067. Patch by "teor".

  o Minor features (tor2web mode):
    - Introduce the config option Tor2webRendezvousPoints, which allows
      clients in Tor2webMode to select a specific Rendezvous Point to be
      used in HS circuits. This might allow better performance for
      Tor2Web nodes. Implements ticket 12844.

  o Minor bugfixes (client DNS):
    - Report the correct cached DNS expiration times on SOCKS port or in
      DNS replies. Previously, we would report everything as "never
      expires." Fixes bug 14193; bugfix on
    - Avoid a small memory leak when we find a cached answer for a
      reverse DNS lookup in a client-side DNS cache. (Remember, client-
      side DNS caching is off by default, and is not recommended.) Fixes
      bug 14259; bugfix on

  o Minor bugfixes (client, automapping):
    - Avoid crashing on torrc lines for VirtualAddrNetworkIPv[4|6] when
      no value follows the option. Fixes bug 14142; bugfix on Patch by "teor".
    - Fix a memory leak when using AutomapHostsOnResolve. Fixes bug
      14195; bugfix on
    - Prevent changes to other options from removing the wildcard value
      "." from "AutomapHostsSuffixes". Fixes bug 12509; bugfix
    - Allow MapAddress and AutomapHostsOnResolve to work together when
      an address is mapped into another address type (like .onion) that
      must be automapped at resolve time. Fixes bug 7555; bugfix

  o Minor bugfixes (client, bridges):
    - When we are using bridges and we had a network connectivity
      problem, only retry connecting to our currently configured
      bridges, not all bridges we know about and remember using. Fixes
      bug 14216; bugfix on

  o Minor bugfixes (client, IPv6):
    - Reject socks requests to literal IPv6 addresses when IPv6Traffic
      flag is not set; and not because the NoIPv4Traffic flag was set.
      Previously we'd looked at the NoIPv4Traffic flag for both types of
      literal addresses. Fixes bug 14280; bugfix on

  o Minor bugfixes (compilation):
    - The address of an array in the middle of a structure will always
      be non-NULL. clang recognises this and complains. Disable the
      tautologous and redundant check to silence this warning. Fixes bug
      14001; bugfix on
    - Avoid warnings when building with systemd 209 or later. Fixes bug
      14072; bugfix on Patch from "h.venev".
    - Compile correctly with (unreleased) OpenSSL 1.1.0 headers.
      Addresses ticket 14188.
    - Build without warnings with the stock OpenSSL srtp.h header, which
      has a duplicate declaration of SSL_get_selected_srtp_profile().
      Fixes bug 14220; this is OpenSSL's bug, not ours.
    - Do not compile any code related to Tor2Web mode when Tor2Web mode
      is not enabled at compile time. Previously, this code was included
      in a disabled state. See discussion on ticket 12844.
    - Remove the --disable-threads configure option again. It was
      accidentally partially reintroduced in 29ac883606d6d. Fixes bug
      14819; bugfix on

  o Minor bugfixes (controller):
    - Report "down" in response to the "GETINFO \ 
entry-guards" command
      when relays are down with an unreachable_since value. Previously,
      we would report "up". Fixes bug 14184; bugfix on
    - Avoid crashing on a malformed EXTENDCIRCUIT command. Fixes bug
      14116; bugfix on
    - Add a code for the END_CIRC_REASON_IP_NOW_REDUNDANT circuit close
      reason. Fixes bug 14207; bugfix on

  o Minor bugfixes (directory authority):
    - Allow directory authorities to fetch more data from one another if
      they find themselves missing lots of votes. Previously, they had
      been bumping against the 10 MB queued data limit. Fixes bug 14261;
      bugfix on
    - Do not attempt to download extrainfo documents which we will be
      unable to validate with a matching server descriptor. Fixes bug
      13762; bugfix on
    - Fix a bug that was truncating AUTHDIR_NEWDESC events sent to the
      control port. Fixes bug 14953; bugfix on
    - Enlarge the buffer to read bwauth generated files to avoid an
      issue when parsing the file in dirserv_read_measured_bandwidths().
      Fixes bug 14125; bugfix on

  o Minor bugfixes (file handling):
    - Stop failing when key files are zero-length. Instead, generate new
      keys, and overwrite the empty key files. Fixes bug 13111; bugfix
      on all versions of Tor. Patch by "teor".
    - Stop generating a fresh .old RSA onion key file when the .old file
      is missing. Fixes part of 13111; bugfix on 0.0.6rc1.
    - Avoid overwriting .old key files with empty key files.
    - Skip loading zero-length extrainfo store, router store, stats,
      state, and key files.
    - Avoid crashing when trying to reload a torrc specified as a
      relative path with RunAsDaemon turned on. Fixes bug 13397; bugfix

  o Minor bugfixes (hidden services):
    - Close the introduction circuit when we have no more usable intro
      points, instead of waiting for it to time out. This also ensures
      that no follow-up HS descriptor fetch is triggered when the
      circuit eventually times out. Fixes bug 14224; bugfix on 0.0.6.
    - When fetching a hidden service descriptor for a down service that
      was recently up, do not keep refetching until we try the same
      replica twice in a row. Fixes bug 14219; bugfix on
    - Successfully launch Tor with a nonexistent hidden service
      directory. Our fix for bug 13942 didn't catch this case. Fixes bug
      14106; bugfix on

  o Minor bugfixes (logging):
    - Avoid crashing when there are more log domains than entries in
      domain_list. Bugfix on
    - Add a string representation for LD_SCHED. Fixes bug 14740; bugfix
    - Don't log messages to stdout twice when starting up. Fixes bug
      13993; bugfix on

  o Minor bugfixes (parsing):
    - Stop accepting milliseconds (or other junk) at the end of
      descriptor publication times. Fixes bug 9286; bugfix on 0.0.2pre25.
    - Support two-number and three-number version numbers correctly, in
      case we change the Tor versioning system in the future. Fixes bug
      13661; bugfix on 0.0.8pre1.

  o Minor bugfixes (path counting):
    - When deciding whether the consensus lists any exit nodes, count
      the number listed in the consensus, not the number we have
      descriptors for. Fixes part of bug 14918; bugfix on
    - When deciding whether we have any exit nodes, only examine
      ExitNodes when the ExitNodes option is actually set. Fixes part of
      bug 14918; bugfix on
    - Get rid of redundant and possibly scary warnings that we are
      missing directory information while we bootstrap. Fixes part of
      bug 14918; bugfix on

  o Minor bugfixes (portability):
    - Fix the ioctl()-based network interface lookup code so that it
      will work on systems that have variable-length struct ifreq, for
      example Mac OS X.
    - Fix scheduler compilation on targets where char is unsigned. Fixes
      bug 14764; bugfix on Reported by Christian Kujau.

  o Minor bugfixes (sandbox):
    - Allow glibc fatal errors to be sent to stderr before Tor exits.
      Previously, glibc would try to write them to /dev/tty, and the
      sandbox would trap the call and make Tor exit prematurely. Fixes
      bug 14759; bugfix on

  o Minor bugfixes (shutdown):
    - When shutting down, always call event_del() on lingering read or
      write events before freeing them. Otherwise, we risk double-frees
      or read-after-frees in event_base_free(). Fixes bug 12985; bugfix

  o Minor bugfixes (small memory leaks):
    - Avoid leaking memory when using IPv6 virtual address mappings.
      Fixes bug 14123; bugfix on Patch by Tom van
      der Woerdt.

  o Minor bugfixes (statistics):
    - Increase period over which bandwidth observations are aggregated
      from 15 minutes to 4 hours. Fixes bug 13988; bugfix on 0.0.8pre1.

  o Minor bugfixes (systemd support):
    - Fix detection and operation of systemd watchdog. Fixes part of bug
      14141; bugfix on Patch from Tomasz Torcz.
    - Run correctly under systemd with the RunAsDaemon option set. Fixes
      part of bug 14141; bugfix on Patch from Tomasz Torcz.
    - Inform the systemd supervisor about more changes in the Tor
      process status. Implements part of ticket 14141. Patch from
      Tomasz Torcz.
    - Cause the "--disable-systemd" option to actually disable systemd
      support. Fixes bug 14350; bugfix on Patch
      from "blueness".

  o Minor bugfixes (TLS):
    - Check more thoroughly throughout the TLS code for possible
      unlogged TLS errors. Possible diagnostic or fix for bug 13319.

  o Minor bugfixes (transparent proxy):
    - Use getsockname, not getsockopt, to retrieve the address for a
      TPROXY-redirected connection. Fixes bug 13796; bugfix

  o Code simplification and refactoring:
    - Move fields related to isolating and configuring client ports into
      a shared structure. Previously, they were duplicated across
      port_cfg_t, listener_connection_t, and edge_connection_t. Failure
      to copy them correctly had been the cause of at least one bug in
      the past. Closes ticket 8546.
    - Refactor the get_interface_addresses_raw() doom-function into
      multiple smaller and simpler subfunctions. Cover the resulting
      subfunctions with unit-tests. Fixes a significant portion of
      issue 12376.
    - Remove workaround in dirserv_thinks_router_is_hs_dir() that was
      only for version <= which is now deprecated. Closes
      ticket 14202.
    - Remove a test for a long-defunct broken version-one
      directory server.

  o Documentation:
    - Adding section on OpenBSD to our TUNING document. Thanks to mmcc
      for writing the OpenBSD-specific tips. Resolves ticket 13702.
    - Make the tor-resolve documentation match its help string and its
      options. Resolves part of ticket 14325.
    - Log a more useful error message from tor-resolve when failing to
      look up a hidden service address. Resolves part of ticket 14325.

  o Downgraded warnings:
    - Don't warn when we've attempted to contact a relay using the wrong
      ntor onion key. Closes ticket 9635.

  o Removed features:
    - To avoid confusion with the "ExitRelay" option, \ 
"ExitNode" is no
      longer silently accepted as an alias for "ExitNodes".
    - The --enable-mempool and --enable-buf-freelists options, which
      were originally created to work around bad malloc implementations,
      no longer exist. They were off-by-default in 0.2.5. Closes
      ticket 14848.

  o Testing:
    - Make the checkdir/perms test complete successfully even if the
      global umask is not 022. Fixes bug 14215; bugfix on
    - Test that tor does not fail when key files are zero-length. Check
      that tor generates new keys, and overwrites the empty key files.
    - Test that tor generates new keys when keys are missing
      (existing behavior).
    - Test that tor does not overwrite key files that already contain
      data (existing behavior). Tests bug 13111. Patch by "teor".
    - New "make test-stem" target to run stem integration tests.
      Requires that the "STEM_SOURCE_DIR" environment variable be set.
      Closes ticket 14107.
    - Make the test_cmdline_args.py script work correctly on Windows.
      Patch from Gisle Vanem.
    - Move the slower unit tests into a new "./src/test/test-slow"
      binary that can be run independently of the other tests. Closes
      ticket 13243.
    - Avoid undefined behavior when sampling huge values from the
      Laplace distribution. This made unittests fail on Raspberry Pi.
      Bug found by Device. Fixes bug 14090; bugfix on
   2015-01-02 22:09:59 by Christian St. | Files touched by this commit (2) | Package updated
Log message:
update tor-dev to Tor

Changes in version - 2014-12-31
  Tor is the second alpha release in the 0.2.6.x series.
  It introduces a major new backend for deciding when to send cells on
  channels, which should lead down the road to big performance
  increases. It contains security and statistics features for better
  work on hidden services, and numerous bugfixes.

  This release contains many new unit tests, along with major
  performance improvements for running testing networks using Chutney.
  Thanks to a series of patches contributed by "teor", testing networks
  should now bootstrap in seconds, rather than minutes.

  o Major features (relay, infrastructure):
    - Complete revision of the code that relays use to decide which cell
      to send next. Formerly, we selected the best circuit to write on
      each channel, but we didn't select among channels in any
      sophisticated way. Now, we choose the best circuits globally from
      among those whose channels are ready to deliver traffic.

      This patch implements a new inter-cmux comparison API, a global
      high/low watermark mechanism and a global scheduler loop for
      transmission prioritization across all channels as well as among
      circuits on one channel. This schedule is currently tuned to
      (tolerantly) avoid making changes in network performance, but it
      should form the basis for major circuit performance increases in
      the future. Code by Andrea; tuning by Rob Jansen; implements
      ticket 9262.

  o Major features (hidden services):
    - Make HS port scanning more difficult by immediately closing the
      circuit when a user attempts to connect to a nonexistent port.
      Closes ticket 13667.
    - Add a HiddenServiceStatistics option that allows Tor relays to
      gather and publish statistics about the overall size and volume of
      hidden service usage. Specifically, when this option is turned on,
      an HSDir will publish an approximate number of hidden services
      that have published descriptors to it the past 24 hours. Also, if
      a relay has acted as a hidden service rendezvous point, it will
      publish the approximate amount of rendezvous cells it has relayed
      the past 24 hours. The statistics themselves are obfuscated so
      that the exact values cannot be derived. For more details see
      proposal 238, "Better hidden service stats from Tor relays". This
      feature is currently disabled by default. Implements feature 13192.

  o Major bugfixes (client, automap):
    - Repair automapping with IPv6 addresses. This automapping should
      have worked previously, but one piece of debugging code that we
      inserted to detect a regression actually caused the regression to
      manifest itself again. Fixes bug 13811 and bug 12831; bugfix on Diagnosed and fixed by Francisco Blas
      Izquierdo Riera.

  o Major bugfixes (hidden services):
    - When closing an introduction circuit that was opened in parallel
      with others, don't mark the introduction point as unreachable.
      Previously, the first successful connection to an introduction
      point would make the other introduction points get marked as
      having timed out. Fixes bug 13698; bugfix on 0.0.6rc2.

  o Directory authority changes:
    - Remove turtles as a directory authority.
    - Add longclaw as a new (v3) directory authority. This implements
      ticket 13296. This keeps the directory authority count at 9.

  o Major removed features:
    - Tor clients no longer support connecting to hidden services
      running on Tor 0.2.2.x and earlier; the Support022HiddenServices
      option has been removed. (There shouldn't be any hidden services
      running these versions on the network.) Closes ticket 7803.

  o Minor features (client):
    - Validate hostnames in SOCKS5 requests more strictly. If SafeSocks
      is enabled, reject requests with IP addresses as hostnames.
      Resolves ticket 13315.

  o Minor features (controller):
    - Add a "SIGNAL HEARTBEAT" controller command that tells Tor to
      write an unscheduled heartbeat message to the log. Implements
      feature 9503.

  o Minor features (geoip):
    - Update geoip and geoip6 to the November 15 2014 Maxmind GeoLite2
      Country database.

  o Minor features (hidden services):
    - When re-enabling the network, don't try to build introduction
      circuits until we have successfully built a circuit. This makes
      hidden services come up faster when the network is re-enabled.
      Patch from "akwizgran". Closes ticket 13447.
    - When we fail to a retrieve hidden service descriptor, send the
      controller an "HS_DESC FAILED" controller event. Implements
      feature 13212.
    - New HiddenServiceDirGroupReadable option to cause hidden service
      directories and hostname files to be created group-readable. Patch
      from "anon", David Stainton, and "meejah". Closes \ 
ticket 11291.

  o Minor features (systemd):
    - Where supported, when running with systemd, report successful
      startup to systemd. Part of ticket 11016. Patch by Michael Scherer.
    - When running with systemd, support systemd watchdog messages. Part
      of ticket 11016. Patch by Michael Scherer.

  o Minor features (transparent proxy):
    - Update the transparent proxy option checks to allow for both ipfw
      and pf on OS X. Closes ticket 14002.
    - Use the correct option when using IPv6 with transparent proxy
      support on Linux. Resolves 13808. Patch by Francisco Blas
      Izquierdo Riera.

  o Minor bugfixes (preventative security, C safety):
    - When reading a hexadecimal, base-32, or base-64 encoded value from
      a string, always overwrite the whole output buffer. This prevents
      some bugs where we would look at (but fortunately, not reveal)
      uninitialized memory on the stack. Fixes bug 14013; bugfix on all
      versions of Tor.
    - Clear all memory targetted by tor_addr_{to,from}_sockaddr(), not
      just the part that's used. This makes it harder for data leak bugs
      to occur in the event of other programming failures. Resolves
      ticket 14041.

  o Minor bugfixes (client, microdescriptors):
    - Use a full 256 bits of the SHA256 digest of a microdescriptor when
      computing which microdescriptors to download. This keeps us from
      erroneous download behavior if two microdescriptor digests ever
      have the same first 160 bits. Fixes part of bug 13399; bugfix
    - Reset a router's status if its microdescriptor digest changes,
      even if the first 160 bits remain the same. Fixes part of bug
      13399; bugfix on

  o Minor bugfixes (compilation):
    - Silence clang warnings under --enable-expensive-hardening,
      including implicit truncation of 64 bit values to 32 bit, const
      char assignment to self, tautological compare, and additional
      parentheses around equality tests. Fixes bug 13577; bugfix
    - Fix a clang warning about checking whether an address in the
      middle of a structure is NULL. Fixes bug 14001; bugfix

  o Minor bugfixes (hidden services):
    - Correctly send a controller event when we find that a rendezvous
      circuit has finished. Fixes bug 13936; bugfix on
    - Pre-check directory permissions for new hidden-services to avoid
      at least one case of "Bug: Acting on config options left us in a
      broken state. Dying." Fixes bug 13942; bugfix on 0.0.6pre1.
    - When adding a new hidden service (for example, via SETCONF), Tor
      no longer congratulates the user for running a relay. Fixes bug
      13941; bugfix on
    - When fetching hidden service descriptors, we now check not only
      for whether we got the hidden service we had in mind, but also
      whether we got the particular descriptors we wanted. This prevents
      a class of inefficient but annoying DoS attacks by hidden service
      directories. Fixes bug 13214; bugfix on Reported
      by "special".

  o Minor bugfixes (Linux seccomp2 sandbox):
    - Make transparent proxy support work along with the seccomp2
      sandbox. Fixes part of bug 13808; bugfix on Patch
      by Francisco Blas Izquierdo Riera.
    - Fix a memory leak in tor-resolve when running with the sandbox
      enabled. Fixes bug 14050; bugfix on

  o Minor bugfixes (logging):
    - Downgrade warnings about RSA signature failures to info log level.
      Emit a warning when an extra info document is found incompatible
      with a corresponding router descriptor. Fixes bug 9812; bugfix
      on 0.0.6rc3.
    - Make connection_ap_handshake_attach_circuit() log the circuit ID
      correctly. Fixes bug 13701; bugfix on 0.0.6.

  o Minor bugfixes (misc):
    - Stop allowing invalid address patterns like "*/24" that contain
      both a wildcard address and a bit prefix length. This affects all
      our address-range parsing code. Fixes bug 7484; bugfix
      on 0.0.2pre14.

  o Minor bugfixes (testing networks, fast startup):
    - Allow Tor to build circuits using a consensus with no exits. If
      the consensus has no exits (typical of a bootstrapping test
      network), allow Tor to build circuits once enough descriptors have
      been downloaded. This assists in bootstrapping a testing Tor
      network. Fixes bug 13718; bugfix on Patch
      by "teor".
    - When V3AuthVotingInterval is low, give a lower If-Modified-Since
      header to directory servers. This allows us to obtain consensuses
      promptly when the consensus interval is very short. This assists
      in bootstrapping a testing Tor network. Fixes parts of bugs 13718
      and 13963; bugfix on Patch by "teor".
    - Stop assuming that private addresses are local when checking
      reachability in a TestingTorNetwork. Instead, when testing, assume
      all OR connections are remote. (This is necessary due to many test
      scenarios running all relays on localhost.) This assists in
      bootstrapping a testing Tor network. Fixes bug 13924; bugfix on Patch by "teor".
    - Avoid building exit circuits from a consensus with no exits. Now
      thanks to our fix for 13718, we accept a no-exit network as not
      wholly lost, but we need to remember not to try to build exit
      circuits on it. Closes ticket 13814; patch by "teor".
    - Stop requiring exits to have non-zero bandwithcapacity in a
      TestingTorNetwork. Instead, when TestingMinExitFlagThreshold is 0,
      ignore exit bandwidthcapacity. This assists in bootstrapping a
      testing Tor network. Fixes parts of bugs 13718 and 13839; bugfix
      on Patch by "teor".
    - Add "internal" to some bootstrap statuses when no exits are
      available. If the consensus does not contain Exits, Tor will only
      build internal circuits. In this case, relevant statuses will
      contain the word "internal" as indicated in the Tor control-
       spec.txt. When bootstrap completes, Tor will be ready to build
      internal circuits. If a future consensus contains Exits, exit
      circuits may become available. Fixes part of bug 13718; bugfix on Patch by "teor".
    - Decrease minimum consensus interval to 10 seconds when
      TestingTorNetwork is set, or 5 seconds for the first consensus.
      Fix assumptions throughout the code that assume larger intervals.
      Fixes bugs 13718 and 13823; bugfix on Patch
      by "teor".
    - Avoid excluding guards from path building in minimal test
      networks, when we're in a test network and excluding guards would
      exclude all relays. This typically occurs in incredibly small tor
      networks, and those using "TestingAuthVoteGuard *". Fixes part of
      bug 13718; bugfix on Patch by "teor".

  o Code simplification and refactoring:
    - Stop using can_complete_circuits as a global variable; access it
      with a function instead.
    - Avoid using operators directly as macro arguments: this lets us
      apply coccinelle transformations to our codebase more directly.
      Closes ticket 13172.
    - Combine the functions used to parse ClientTransportPlugin and
      ServerTransportPlugin into a single function. Closes ticket 6456.
    - Add inline functions and convenience macros for inspecting channel
      state. Refactor the code to use convenience macros instead of
      checking channel state directly. Fixes issue 7356.
    - Document all members of was_router_added_t and rename
      confusable with ROUTER_WAS_TOO_OLD. Fixes issue 13644.
    - In connection_exit_begin_conn(), use END_CIRC_REASON_TORPROTOCOL
      constant instead of hardcoded value. Fixes issue 13840.
    - Refactor our generic strmap and digestmap types into a single
      implementation, so that we can add a new digest256map
      type trivially.

  o Documentation:
    - Document the bridge-authority-only 'networkstatus-bridges' file.
      Closes ticket 13713; patch from "tom".
    - Fix typo in PredictedPortsRelevanceTime option description in
      manpage. Resolves issue 13707.
    - Stop suggesting that users specify relays by nickname: it isn't a
      good idea. Also, properly cross-reference how to specify relays in
      all parts of manual documenting options that take a list of
      relays. Closes ticket 13381.
    - Clarify the HiddenServiceDir option description in manpage to make
      it clear that relative paths are taken with respect to the current
      working directory. Also clarify that this behavior is not
      guaranteed to remain indefinitely. Fixes issue 13913.

  o Testing:
    - New tests for many parts of channel, relay, and circuitmux
      functionality. Code by Andrea; part of 9262.
    - New tests for parse_transport_line(). Part of ticket 6456.
    - In the unit tests, use chgrp() to change the group of the unit
      test temporary directory to the current user, so that the sticky
      bit doesn't interfere with tests that check directory groups.
      Closes 13678.
    - Add unit tests for resolve_my_addr(). Part of ticket 12376; patch
      by 'rl1987'.
   2014-11-29 15:13:48 by Christian St. | Files touched by this commit (7)
Log message:
Import tor- as wip/tor-dev.

The simple version: Tor provides a distributed network of servers ("onion
routers"). Users bounce their TCP streams (web traffic, FTP, SSH, etc.) around
the routers. This makes it hard for recipients, observers, and even the onion
routers themselves to track the source of the stream.

The complex version:  Onion Routing is a connection-oriented anonymizing
communication service. Users choose a source-routed path through a set of
nodes, and negotiate a "virtual circuit" through the network, in which each
node knows its predecessor and successor, but no others. Traffic flowing down
the circuit is unwrapped by a symmetric key at each node, which reveals the
downstream node.