tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

ext.md (2394B)


@dir /ext @brief Externally maintained code

The "ext" directory holds code that was written elsewhere, and is not reliably packaged as a library where we want to build, so we ship it along with Tor.

In general, you should not edit this code: we are not the maintainers. Instead, you should submit patches upstream.

OpenBSDmallocLinux.c:

The OpenBSD malloc implementation, ported to Linux. Used only when

--enable-openbsd-malloc is passed to the configure script.

strlcat.c strlcpy.c

Implementations of strlcat and strlcpy, the more sane replacements

for strcat and strcpy. These are nonstandard, and some libc

implementations refuse to add them for religious reasons.

ht.h

An implementation of a hash table in the style of Niels Provos's

tree.h. Shared with Libevent.

tinytest.c tinytest.h tinytest_demos.c tinytest_macros.h

A unit testing framework. https://github.com/nmathewson/tinytest

tor_queue.h

A copy of sys/queue.h from OpenBSD. We keep our own copy rather

than using sys/queue.h, since some platforms don't have a

sys/queue.h, and the ones that do have diverged in incompatible

ways. (CIRCLEQ or no CIRCLEQ? SIMPLQ or STAILQ?) We also rename

the identifiers with a TOR_ prefix to avoid conflicts with

the system headers.

curve25519_donna/*.c

A copy of Adam Langley's curve25519-donna mostly-portable

implementations of curve25519.

csiphash.c siphash.h

Marek Majkowski's implementation of siphash 2-4, a secure keyed

hash algorithm to avoid collision-based DoS attacks against hash

tables.

trunnel/*.[ch]

Headers and runtime code for Trunnel, a system for generating

code to encode and decode binary formats.

ed25519/ref10/*

Daniel Bernsten's portable ref10 implementation of ed25519.

Public domain.

ed25519/donna/*

Andrew Moon's semi-portable ed25519-donna implementation of

ed25519. Public domain.

keccak-tiny/

David Leon Gil's portable Keccak implementation. CC0.

readpassphrase.[ch]

Portable readpassphrase implementation from OpenSSH portable, version

6.8p1.

timeouts/

William Ahern's hierarchical timer-wheel implementation. MIT license.

mulodi/

Contains an overflow-checking 64-bit signed integer multiply

from LLVM's compiler_rt. For some reason, this is missing from

32-bit libclang in many places. Dual licensed MIT-license and

BSD-like license; see mulodi/LICENSE.TXT.