This is an automated email from the git hooks/post-receive script.
dgoulet pushed a change to branch main in repository tor.
from 9ee71eaf5a CID 1524707: Quiet coverity noise new 95445f49f1 ext: Add Equi-X library new 5ef811b7d0 trunnel: INTRODUCE1 PoW cell extension new d79814f1b1 hs: PoW extension encoding new c611e328de hs: Add data structure needed for PoW new 51ce0bb6ef hs: Add solve and verify PoW functions new 26957b47ac hs: Descriptor support for PoW new 8b41e09a77 hs: Client now solve PoW if present new ca74530b40 hs: Setup service side PoW defenses new f0b63ca242 hs: Move rendezvous circuit data structure new 4eb783e97b hs: Priority queue for rendezvous requests new 35227a7a15 trunnel: Centralize the INTRO1 extension type new c2f6b057b8 hs: Don't expire RP circuits to HS with PoW new bc9fe5a6f8 hs: Handle multiple rend request per mainloop run new 047f8c63ee hs: Maximum rend request and trimming of the queue new 4571faf0c3 pass time around as a parameter new 85cba057e7 make a log message clearer about our actual intent new 8042379c44 new design for handling too many pending rend reqs new 4e55f28220 bump up some log messages for easier debugging new d0c2d4cb43 add a log line for when client succeeds new 5e768d5cb9 we were sorting our pqueue the wrong way new b95bd5017f track how many in-flight hs-side rend circs new dec3a0af7a make the rend_pqueue_cb event be postloop new 13f6258245 rate-limit low-effort rendezvous responses new a575e35c17 sort pqueue ties by time-added new e436ce2a3c drop the default min effort to 20 new ec7495d35a log_err is reserved for fatal failures new e605620744 clients defend themselves from absurd pow requests new 121766e6b8 Make the thing compile. new 5b3a067fe3 Replace the constant bottom-half rate with handled count. new ec9e95cf1e Implement AIMD effort estimation. new d36144ba31 Initialize startup effort at 0. new 0716cd7cb2 allow suggested effort to be 0 new a5b0c7b404 start the cpuworkers always, even for clients new aa41d4b939 refactor send_introduce1() new eba9190933 compute the client-side pow in a cpuworker thread new 09afc5eacf update_suggested_effort: avoid assert if the pqueue has emptied new 48c67263d9 hs_metrics: Proof of Work pqueue depth, suggested effort new a0b9f3546e hs_pow: check for expired params in can_client_refetch_desc new 98299e0f8b manpage: document HiddenServicePoWDefensesEnabled option new 20d7c8ce14 fix typo in HiddenServiceExportCircuitID new f3b98116b6 hs_pow: Rate limited dequeue new 0e271dda77 hs_pow: reduce min_effort default to 1 new 557eb81486 hs_pow_solve: use equix_solve more efficiently new 9d1a573977 configure: Add --enable-gpl option new dcb9c4df67 hs_pow: Make proof-of-work support optional in configure new 92f83347f7 test_crypto: add blake2b test vectors new ffa8531fe0 test_crypto: add equix and hashx tests new bfa2102c95 hs_pow: Replace libb2 dependency with hashx's internal blake2 new 246ced3a8c ext: build equix and hashx using automake new daa08557ad equix: Build cleanly with -Wall -Werror new ae86d98815 equix: Portability fixes for big endian platforms new 0c11411f35 hashx: trim trailing whitespace new c6b168e141 test_hs_pow: add test vectors for our hs_pow client puzzle new 3129910b11 hs_pow: use the compiled HashX implementation new 037dea2252 hs_pow: fix assert in services that receive unsolicited proof of work new 1a3afeb387 hs_pow: unswap byte order of seed_head field new 209a59face hs_pow: Don't require uint128_t new 00d9e0d252 hs_pow: Define seed_head as uint8_t[4] instead of uint32_t new 700814a3a1 hs_pow: Fix nonce cache entry leak new 287c78c5a8 sandbox: allow stack mmap with prot_none new 2de98a7f4e hs_pow: Represent equix_solution as a byte array new 18a2191a13 gitlab-ci: Try enabling GPL mode so we test hs_pow new d15bbf32da changes: Ticket 40634 (hs_pow) new 6a0809c4e3 hs_pow: stop having a "minimum effort", and let PoW effort start low new ac29c7209d hs_pow: bump client-side effort limit from 500 to 10000 new ac466a2219 hs_pow: leak fix, free the contents of pqueue entries in hs_pow_free_service_state new 903c6cf1ab hs_pow: client side effort adjustment new ff678d0fb5 hs_pow: update_suggested_effort fix and cleanup new ee63863dca hs_pow: Lower several logs from notice to info new a6138486f7 hs_pow: review feedback, use MAX for max_trimmed_effort new 50313d114f hs_pow: faster hs_circuitmap lookup for rend in pow_worker_job_t new 6023153631 hs_pow: modified approach to pqueue level thresholds new a13d7bd5e9 hs_pow: always give other events a chance to run between rend requests new cba1ffb43a hs_pow: swap out some comments new 971de27c07 hs_pow: fix error path with outdated assumption new 138fd57072 hs_pow: add per-circuit effort information to control port new e643a70879 hs_pow: Modify challenge format, include blinded HS id
The 77 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference.
Summary of changes: .gitlab-ci.yml | 10 + Makefile.am | 7 +- changes/ticket40634 | 3 + configure.ac | 62 ++- doc/man/tor.1.txt | 44 +- scripts/ci/ci-driver.sh | 5 + src/app/config/config.c | 27 +- src/app/main/main.c | 8 +- src/core/crypto/onion_crypto.c | 3 + src/core/include.am | 1 + src/core/mainloop/cpuworker.c | 5 +- src/core/mainloop/cpuworker.h | 4 +- src/core/or/circuituse.c | 25 +- src/core/or/connection_edge.c | 18 +- src/core/or/entry_connection_st.h | 4 + src/core/or/origin_circuit_st.h | 14 + src/ext/.may_include | 4 +- src/ext/compat_blake2.h | 47 ++ src/ext/equix/CMakeLists.txt | 82 ++++ src/ext/equix/LICENSE | 165 +++++++ src/ext/equix/README.md | 77 +++ src/ext/equix/devlog.md | 178 +++++++ src/ext/equix/hashx/CMakeLists.txt | 99 ++++ src/ext/equix/hashx/LICENSE | 165 +++++++ src/ext/equix/hashx/README.md | 135 ++++++ src/ext/equix/hashx/include/hashx.h | 140 ++++++ src/ext/equix/hashx/src/bench.c | 135 ++++++ src/ext/equix/hashx/src/blake2.c | 462 ++++++++++++++++++ src/ext/equix/hashx/src/blake2.h | 73 +++ src/ext/equix/hashx/src/compiler.c | 18 + src/ext/equix/hashx/src/compiler.h | 41 ++ src/ext/equix/hashx/src/compiler_a64.c | 154 ++++++ src/ext/equix/hashx/src/compiler_x86.c | 151 ++++++ src/ext/equix/hashx/src/context.c | 81 ++++ src/ext/equix/hashx/src/context.h | 45 ++ src/ext/equix/hashx/src/force_inline.h | 9 + src/ext/equix/hashx/src/hashx.c | 146 ++++++ src/ext/equix/hashx/src/hashx_endian.h | 103 ++++ src/ext/equix/hashx/src/hashx_thread.c | 27 ++ src/ext/equix/hashx/src/hashx_thread.h | 27 ++ src/ext/equix/hashx/src/hashx_time.c | 35 ++ src/ext/equix/hashx/src/hashx_time.h | 9 + src/ext/equix/hashx/src/instruction.h | 31 ++ src/ext/equix/hashx/src/program.c | 773 +++++++++++++++++++++++++++++++ src/ext/equix/hashx/src/program.h | 48 ++ src/ext/equix/hashx/src/program_exec.c | 158 +++++++ src/ext/equix/hashx/src/siphash.c | 66 +++ src/ext/equix/hashx/src/siphash.h | 35 ++ src/ext/equix/hashx/src/siphash_rng.c | 31 ++ src/ext/equix/hashx/src/siphash_rng.h | 30 ++ src/ext/equix/hashx/src/test_utils.h | 60 +++ src/ext/equix/hashx/src/tests.c | 221 +++++++++ src/ext/equix/hashx/src/unreachable.h | 9 + src/ext/equix/hashx/src/virtual_memory.c | 127 +++++ src/ext/equix/hashx/src/virtual_memory.h | 19 + src/ext/equix/include/equix.h | 145 ++++++ src/ext/equix/src/bench.c | 175 +++++++ src/ext/equix/src/context.c | 57 +++ src/ext/equix/src/context.h | 18 + src/ext/equix/src/equix.c | 96 ++++ src/ext/equix/src/solver.c | 275 +++++++++++ src/ext/equix/src/solver.h | 44 ++ src/ext/equix/src/solver_heap.h | 108 +++++ src/ext/equix/src/tests.c | 124 +++++ src/ext/include.am | 59 ++- src/feature/control/control_fmt.c | 7 + src/feature/dirparse/parsecommon.h | 1 + src/feature/hs/hs_cache.c | 2 + src/feature/hs/hs_cell.c | 201 +++++++- src/feature/hs/hs_cell.h | 35 +- src/feature/hs/hs_circuit.c | 386 ++++++++++++++- src/feature/hs/hs_circuit.h | 31 +- src/feature/hs/hs_client.c | 219 ++++++--- src/feature/hs/hs_client.h | 12 + src/feature/hs/hs_config.c | 29 +- src/feature/hs/hs_config.h | 3 + src/feature/hs/hs_descriptor.c | 115 +++++ src/feature/hs/hs_descriptor.h | 4 + src/feature/hs/hs_metrics.c | 11 +- src/feature/hs/hs_metrics.h | 47 +- src/feature/hs/hs_metrics_entry.c | 12 + src/feature/hs/hs_metrics_entry.h | 10 +- src/feature/hs/hs_options.inc | 3 + src/feature/hs/hs_pow.c | 525 +++++++++++++++++++++ src/feature/hs/hs_pow.h | 226 +++++++++ src/feature/hs/hs_service.c | 284 ++++++++++++ src/feature/hs/hs_service.h | 18 + src/feature/hs/include.am | 9 + src/feature/relay/relay_config.c | 6 - src/lib/evloop/workqueue.c | 5 +- src/lib/sandbox/sandbox.c | 9 +- src/test/include.am | 2 + src/test/test.c | 1 + src/test/test.h | 2 + src/test/test_crypto.c | 178 +++++++ src/test/test_crypto_slow.c | 134 ++++++ src/test/test_hs_client.c | 2 + src/test/test_hs_metrics.c | 20 +- src/test/test_hs_pow.c | 500 ++++++++++++++++++++ src/test/test_hs_pow_slow.c | 272 +++++++++++ src/test/test_hs_service.c | 20 +- src/test/test_parseconf.sh | 6 + src/test/test_slow.c | 1 + src/trunnel/hs/cell_introduce1.c | 344 ++++++++++++++ src/trunnel/hs/cell_introduce1.h | 146 ++++++ src/trunnel/hs/cell_introduce1.trunnel | 37 ++ 106 files changed, 9246 insertions(+), 186 deletions(-) create mode 100644 changes/ticket40634 create mode 100644 src/ext/compat_blake2.h create mode 100644 src/ext/equix/CMakeLists.txt create mode 100644 src/ext/equix/LICENSE create mode 100644 src/ext/equix/README.md create mode 100644 src/ext/equix/devlog.md create mode 100644 src/ext/equix/hashx/CMakeLists.txt create mode 100644 src/ext/equix/hashx/LICENSE create mode 100644 src/ext/equix/hashx/README.md create mode 100644 src/ext/equix/hashx/include/hashx.h create mode 100644 src/ext/equix/hashx/src/bench.c create mode 100644 src/ext/equix/hashx/src/blake2.c create mode 100644 src/ext/equix/hashx/src/blake2.h create mode 100644 src/ext/equix/hashx/src/compiler.c create mode 100644 src/ext/equix/hashx/src/compiler.h create mode 100644 src/ext/equix/hashx/src/compiler_a64.c create mode 100644 src/ext/equix/hashx/src/compiler_x86.c create mode 100644 src/ext/equix/hashx/src/context.c create mode 100644 src/ext/equix/hashx/src/context.h create mode 100644 src/ext/equix/hashx/src/force_inline.h create mode 100644 src/ext/equix/hashx/src/hashx.c create mode 100644 src/ext/equix/hashx/src/hashx_endian.h create mode 100644 src/ext/equix/hashx/src/hashx_thread.c create mode 100644 src/ext/equix/hashx/src/hashx_thread.h create mode 100644 src/ext/equix/hashx/src/hashx_time.c create mode 100644 src/ext/equix/hashx/src/hashx_time.h create mode 100644 src/ext/equix/hashx/src/instruction.h create mode 100644 src/ext/equix/hashx/src/program.c create mode 100644 src/ext/equix/hashx/src/program.h create mode 100644 src/ext/equix/hashx/src/program_exec.c create mode 100644 src/ext/equix/hashx/src/siphash.c create mode 100644 src/ext/equix/hashx/src/siphash.h create mode 100644 src/ext/equix/hashx/src/siphash_rng.c create mode 100644 src/ext/equix/hashx/src/siphash_rng.h create mode 100644 src/ext/equix/hashx/src/test_utils.h create mode 100644 src/ext/equix/hashx/src/tests.c create mode 100644 src/ext/equix/hashx/src/unreachable.h create mode 100644 src/ext/equix/hashx/src/virtual_memory.c create mode 100644 src/ext/equix/hashx/src/virtual_memory.h create mode 100644 src/ext/equix/include/equix.h create mode 100644 src/ext/equix/src/bench.c create mode 100644 src/ext/equix/src/context.c create mode 100644 src/ext/equix/src/context.h create mode 100644 src/ext/equix/src/equix.c create mode 100644 src/ext/equix/src/solver.c create mode 100644 src/ext/equix/src/solver.h create mode 100644 src/ext/equix/src/solver_heap.h create mode 100644 src/ext/equix/src/tests.c create mode 100644 src/feature/hs/hs_pow.c create mode 100644 src/feature/hs/hs_pow.h create mode 100644 src/test/test_hs_pow.c create mode 100644 src/test/test_hs_pow_slow.c