1. OpenBSD_malloc_Linux.c:
  2. The OpenBSD malloc implementation, ported to Linux. Used only when
  3. --enable-openbsd-malloc is passed to the configure script.
  4. strlcat.c
  5. strlcpy.c
  6. Implementations of strlcat and strlcpy, the more sane replacements
  7. for strcat and strcpy. These are nonstandard, and some libc
  8. implementations refuse to add them for religious reasons.
  9. ht.h
  10. An implementation of a hash table in the style of Niels Provos's
  11. tree.h. Shared with Libevent.
  12. tinytest.[ch]
  13. tinytest_demos.c
  14. tinytest_macros.h
  15. A unit testing framework.
  16. tor_queue.h
  17. A copy of sys/queue.h from OpenBSD. We keep our own copy rather
  18. than using sys/queue.h, since some platforms don't have a
  19. sys/queue.h, and the ones that do have diverged in incompatible
  20. ways. (CIRCLEQ or no CIRCLEQ? SIMPLQ or STAILQ?) We also rename
  21. the identifiers with a TOR_ prefix to avoid conflicts with
  22. the system headers.
  23. curve25519_donna/*.c
  24. A copy of Adam Langley's curve25519-donna mostly-portable
  25. implementations of curve25519.
  26. csiphash.c
  27. siphash.h
  28. Marek Majkowski's implementation of siphash 2-4, a secure keyed
  29. hash algorithm to avoid collision-based DoS attacks against hash
  30. tables.
  31. trunnel/*.[ch]
  32. Headers and runtime code for Trunnel, a system for generating
  33. code to encode and decode binary formats.
  34. ed25519/ref10/*
  35. Daniel Bernsten's portable ref10 implementation of ed25519.
  36. Public domain.
  37. ed25519/donna/*
  38. Andrew Moon's semi-portable ed25519-donna implementation of
  39. ed25519. Public domain.
  40. keccak-tiny/
  41. David Leon Gil's portable Keccak implementation. CC0.
  42. readpassphrase.[ch]
  43. Portable readpassphrase implementation from OpenSSH portable, version
  44. 6.8p1.
  45. timeouts/
  46. William Ahern's hierarchical timer-wheel implementation. MIT license.
  47. mulodi/
  48. Contains an overflow-checking 64-bit signed integer multiply
  49. from LLVM's compiler_rt. For some reason, this is missing from
  50. 32-bit libclang in many places. Dual licensed MIT-license and
  51. BSD-like license; see mulodi/LICENSE.TXT.