mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
ce854a8d22
We know there are overflows in curve25519-donna-c32, so we'll have to have that one be fwrapv. Only apply the asan, ubsan, and trapv options to the code that does not need to run in constant time. Those options introduce branches to the code they instrument. (These introduced branches should never actually be taken, so it might _still_ be constant time after all, but branch predictors are complicated enough that I'm not really confident here. Let's aim for safety.) Closes 17983.
OpenBSD_malloc_Linux.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.
eventdns.[ch]
A fork of Libevent's DNS implementation, used by Tor when Libevent
2.0 or later is not available. Once Libevent 2.0 is required, we
should throw this away; it has diverged from evdns.[ch], and is
no longer easily mergeable.
ht.h
An implementation of a hash table in the style of Niels Provos's
tree.h. Shared with Libevent.
tinytest.[ch]
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.