
Dual licensed MIT-license and BSD-like license see mulodi/LICENSE.TXT. For some reason, this is missing from 32-bit libclang in many places. MIT license.Ĭontains an overflow-checking 64-bit signed integer multiply from LLVM's compiler_rt. William Ahern's hierarchical timer-wheel implementation. Portable readpassphrase implementation from OpenSSH portable, version 6.8p1. Public domain.ĭavid Leon Gil's portable Keccak implementation.

Public domain.Īndrew Moon's semi-portable ed25519-donna implementation of ed25519. Headers and runtime code for Trunnel, a system for generating code to encode and decode binary formats.ĭaniel Bernsten's portable ref10 implementation of ed25519. Marek Majkowski's implementation of siphash 2-4, a secure keyed hash algorithm to avoid collision-based DoS attacks against hash tables. (CIRCLEQ or no CIRCLEQ? SIMPLQ or STAILQ?) We also rename the identifiers with a TOR_ prefix to avoid conflicts with the system headers.Ī copy of Adam Langley's curve25519-donna mostly-portable implementations of curve25519. 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. Tinytest.c tinytest.h tinytest_demos.c tinytest_macros.hĪ copy of sys/queue.h from OpenBSD. These are nonstandard, and some libc implementations refuse to add them for religious reasons.Īn implementation of a hash table in the style of Niels Provos's tree.h. Implementations of strlcat and strlcpy, the more sane replacements for strcat and strcpy. Used only when –enable-openbsd-malloc is passed to the configure script. The OpenBSD malloc implementation, ported to Linux.

Instead, you should submit patches upstream. In general, you should not edit this code: we are not the maintainers. 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.
