mirror repository of the tor core protocol in case of issues
Go to file
Micah Elizabeth Scott 5a4f92ea7b hashx: API changes to allow recovery from late compile failures
This is an API breaking change to hashx, which modifies the error
handling strategy. The main goal here is to allow unproblematic
recovery from hashx_compile failures.

hashx_alloc can no longer fail for reasons other than memory
allocation. All platform-specific compile failures are now reported via
hashx_make(), in order to both allow later failure and avoid requiring
users of the API to maintain and test multiple failure paths.

Note that late failures may be more common in actual use than early
failures. Early failures represent architectures other than x86_64 and
aarch64. Late failures could represent a number of system configurations
where syscalls are restricted.

The definition of a hashx context no longer tries to overlay storage for
the different types of program, and instead allows one context to always
contain an interpretable description of the program as well as an optional
buffer for compiled code.

The hashx_type enum is now used to mean either a specific type of hash
function or a type of hashx context. You can allocate a context for use
only with interpreted or compiled functions, or you can use
HASHX_TRY_COMPILE to prefer the compiler with an automatic fallback on
the interpreter. After calling hashx_make(), the new hashx_query_type()
can be used if needed to determine which implementation was actually
chosen.

The error return types have been overhauled so that everyone uses the
hashx_result enum, and seed failures vs compile failures are always
clearly distinguishable.

Signed-off-by: Micah Elizabeth Scott <beth@torproject.org>
2023-05-28 20:02:02 -07:00
.gitlab/issue_templates Remove Proposal.md. 2021-02-12 20:39:48 +00:00
changes changes: Add file for ticket 40797 2023-05-25 11:12:15 -04:00
contrib version: Bump version to 0.4.7.13-dev 2023-01-12 12:09:34 -05:00
doc Merge branch 'tor-gitlab/mr/709' 2023-05-24 11:37:05 -04:00
m4 added check for compiler support of Wextra-semi 2022-11-01 15:32:43 -06:00
scripts gitlab-ci: Try enabling GPL mode so we test hs_pow 2023-05-10 07:38:29 -07:00
src hashx: API changes to allow recovery from late compile failures 2023-05-28 20:02:02 -07:00
.appveyor.yml CI: Remove VS2015 AppVeyor build 2020-08-12 14:09:32 +03:00
.clang-format Add a dire warning about not reformatting the whole codebase yet. 2020-02-12 18:52:35 -05:00
.editorconfig Add .editorconfig to follow coding standards style 2018-06-17 19:24:40 -04:00
.gitignore ext: build equix and hashx using automake 2023-05-10 07:38:28 -07:00
.gitlab-ci.yml gitlab-ci: Try enabling GPL mode so we test hs_pow 2023-05-10 07:38:29 -07:00
.travis.yml rust: Remove Rust support from tree 2021-10-06 15:12:04 -04:00
acinclude.m4 m4: Change LIBS order of TOR_SEARCH_LIBRARY() 2021-01-13 09:52:10 -05:00
autogen.sh Cleanup shellcheck warnings in autogen.sh 2019-01-18 13:49:30 +02:00
ChangeLog changelog: Update with latest releases 2023-01-12 12:11:16 -05:00
CODE_OF_CONDUCT Add CODE_OF_CONDUCT file 2018-07-05 11:22:33 +03:00
configure.ac ext: build equix and hashx using automake 2023-05-10 07:38:28 -07:00
CONTRIBUTING Add CODE_OF_CONDUCT file 2018-07-05 11:22:33 +03:00
Doxyfile.in Remove last artifacts of Rust related code 2021-10-06 15:12:04 -04:00
INSTALL Remove old instructions from INSTALL 2018-07-03 16:34:52 +03:00
LICENSE Merge branch 'maint-0.3.5' into maint-0.4.4 2021-03-12 11:36:34 -05:00
Makefile.am ext: build equix and hashx using automake 2023-05-10 07:38:28 -07:00
README.md readme: Fix sentence in Releases section 2022-03-09 14:13:34 -05:00
ReleaseNotes changelog: Update with latest releases 2023-01-12 12:11:16 -05:00
warning_flags.in Try @warning_flags to avoid bloating verbose make logs 2018-12-21 10:00:23 -05:00

Tor protects your privacy on the internet by hiding the connection between your Internet address and the services you use. We believe Tor is reasonably secure, but please ensure you read the instructions and configure it properly.

Build

To build Tor from source:

./configure
make
make install

To build Tor from a just-cloned git repository:

./autogen.sh
./configure
make
make install

Releases

The tarballs, checksums and signatures can be found here: https://dist.torproject.org

  • Checksum: <tarball-name>.sha256sum
  • Signatures: <tarball-name>.sha256sum.asc

Schedule

You can find our release schedule here:

Keys that CAN sign a release

The following keys are the maintainers of this repository. One or many of these keys can sign the releases, do NOT expect them all:

Development

See our hacking documentation in doc/HACKING/.

Resources

Home page:

Download new versions:

Documentation, including links to installation and setup instructions:

Frequently Asked Questions: