| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| | * | | | hsclient state: Lots more doc comments about barriers, structure, etc. | Ian Jackson | 2023-03-01 | 1 | -2/+74 | |
| | | | | | ||||||
| | * | | | hsclient state: Break `obtain` out into a fn | Ian Jackson | 2023-03-01 | 1 | -61/+82 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is getting rather confusing; simply reformtting it won't do, I think. Also there would be much rightward drift. So move the meat out into the new function. (And introduce a convenience alias for its captures.) Docs and reformatting will follow in a moment. | |||||
| | * | | | hsclient state: Demonstrate that our future is now Send | Ian Jackson | 2023-03-01 | 1 | -3/+9 | |
| | | | | | ||||||
| | * | | | hsclient state: Restructure using a scope to drop the mutex guard | Ian Jackson | 2023-03-01 | 2 | -20/+45 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Explicit drops don't work. Instead, introduce a scope. We need two scopes, actually: one where we do the initial table wrangling, and one for the retries after relock. So we must put the meat in a closure so we can reuse it. And we must return the flow control as an enum. Bah, etc. Avoid reformatting this for the moment. This makes the delta legible... | |||||
| | * | | | hsclient state: Break out ServiceState::blank | Ian Jackson | 2023-03-01 | 1 | -5/+12 | |
| | | | | | | | | | | | | | | | | | | | | | We're going to have another function which will want this. Leave a convenience closure to capture the runtime. | |||||
| | * | | | hsclient state: Move error inspection before guard re-lock. | Ian Jackson | 2023-03-01 | 1 | -4/+5 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | This is still correct from a lock hierarchy pov. It moves the guard relock to the end, which is going to be necessary since it is going to have to move right outside the loop. | |||||
| | * | | | hsclient keys: Add a todo to remove spurious Option | Ian Jackson | 2023-03-01 | 1 | -0/+3 | |
| | | | | | ||||||
| | * | | | hsclient keys: Compare all empty sets of keys as equal | Ian Jackson | 2023-03-01 | 1 | -1/+5 | |
| | | | | | | | | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1034#note_2881575 | |||||
| | * | | | hsclient keys: Fix non-equal keys test to provide a (dummy) key (fmt) | Ian Jackson | 2023-03-01 | 1 | -1/+4 | |
| | | | | | ||||||
| | * | | | hsclient keys: Fix non-equal keys test to provide a (dummy) key | Ian Jackson | 2023-03-01 | 1 | -4/+10 | |
| | | | | | | | | | | | | | | | | | | | | | We're about to fix the comparison to treat all empty key sets as equal. | |||||
| | * | | | hsclient keys: Provide :none() and Default and .is_empty() | Ian Jackson | 2023-03-01 | 1 | -1/+22 | |
| | | | | | ||||||
| | * | | | hsclient keys: Fix a missing full stop | Ian Jackson | 2023-03-01 | 1 | -1/+1 | |
| | | | | | ||||||
| | * | | | hsclient state: Test most important code paths | Ian Jackson | 2023-03-01 | 3 | -18/+149 | |
| | | | | | ||||||
| | * | | | hsclient: Provide some missing debug impls and trace messages | Ian Jackson | 2023-03-01 | 2 | -2/+25 | |
| | | | | | ||||||
| | * | | | tor-hscrypto: Provide manual Debug impl for HsId | Ian Jackson | 2023-03-01 | 1 | -1/+16 | |
| | | | | | | | | | | | | | | | | | | | | | This is still not great, but it at least makes the output plausible to read by eye. | |||||
| | * | | | Apply rustfmt | Ian Jackson | 2023-03-01 | 3 | -48/+81 | |
| | | | | | ||||||
| | * | | | hsclient state: Provide one test | Ian Jackson | 2023-03-01 | 2 | -0/+106 | |
| | | | | | ||||||
| | * | | | hsclient: Use a generic to provide a mock for connect() | Ian Jackson | 2023-03-01 | 4 | -21/+77 | |
| | | | | | | | | | | | | | | | | | This will allow us to test state.rs. | |||||
| | * | | | tor-circmgr: Provide testing feature and TestConfig | Ian Jackson | 2023-03-01 | 3 | -0/+51 | |
| | | | | | | | | | | | | | | | | | Like the similar thing in tor-guardmgr. | |||||
| | * | | | hsclient: Apply standard lint block | Ian Jackson | 2023-03-01 | 1 | -1/+37 | |
| | | | | | ||||||
| | * | | | hsclient: Move dead code allows to specific locations | Ian Jackson | 2023-03-01 | 3 | -1/+4 | |
| | | | | | ||||||
| | * | | | hsclient: Add vacuous comments as demanded by clippy | Ian Jackson | 2023-03-01 | 3 | -0/+7 | |
| | | | | | ||||||
| | * | | | hsclient state: Bind a variable to stop rustfmt doing a terrible thing | Ian Jackson | 2023-03-01 | 1 | -5/+7 | |
| | | | | | ||||||
| | * | | | hsclient: Provide a constructor for HsClientConnector | Ian Jackson | 2023-03-01 | 2 | -10/+25 | |
| | | | | | ||||||
| | * | | | hsclient: Implement connection attempt tracking state machine | Ian Jackson | 2023-03-01 | 5 | -42/+394 | |
| | | | | | | | | | | | | | | | | | This compiles, but it cannot work yet. Nor can it conveniently be tested. | |||||
| | * | | | HS secret keys: Move aggregate/config to tor-hsclient | Ian Jackson | 2023-03-01 | 3 | -11/+80 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Provide a more cookied "secret keys for use to connecting to a particular HS" type, with a builder. This wants to use config stuff, so oughtn't to be in tor-*crypto. The individual types remain there. | |||||
| | * | | | hsclient API: Remove notion of ambient keys fromk this layer | Ian Jackson | 2023-03-01 | 2 | -14/+5 | |
| | | | | | ||||||
| | * | | | HS API: Remove HS client keys from circmgr API | Ian Jackson | 2023-03-01 | 3 | -4/+1 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | *If* we're going to retain any HS knowledge in circmgr, it definitely doesn't need to know about per-operation client secrets. (Maybe there might be ambient secrets, used for .onion diversion, but they don't need to be in this API.) | |||||
| | * | | | HS planning: Discuss whether to remove all HS code from circmgr | Ian Jackson | 2023-03-01 | 3 | -5/+20 | |
| | | | | | ||||||
| | * | | | HS planning: Intend for HS connector to do all lifecycle mgmt | Ian Jackson | 2023-03-01 | 1 | -6/+3 | |
| | |/ / | | | | | | | | | | | | | | | | | | | | | | Otherwise there has to be a state entry in the circmgr *and* a state entry in the hs connector, for every HS. This division of responsibilit will be confusing. The HS code will then be more completely just a layer on top of circmgr. | |||||
| * | | | Merge branch 'establish_intro_yet_once_more' into 'main' | Nick Mathewson | 2023-03-01 | 12 | -68/+411 | |
| |\ \ \ | |/ / |/| | | | | | | | | Revise EstablishIntro messages so that they can generate and check their MAC and signature. See merge request tpo/core/arti!1043 | |||||
| | * | | tor-cell: Use a match when checking auth_key_type | Nick Mathewson | 2023-03-01 | 1 | -6/+8 | |
| | | | | ||||||
| | * | | tor_cell: Use nested readers and writers for EstablishIntro | Nick Mathewson | 2023-03-01 | 1 | -18/+12 | |
| | | | | ||||||
| | * | | tor-cell: tweak comments on EstablishIntro members. | Nick Mathewson | 2023-03-01 | 1 | -2/+2 | |
| | | | | ||||||
| | * | | Introduce a constant for the length of the output of hs_mac() | Nick Mathewson | 2023-03-01 | 2 | -5/+8 | |
| | | | | ||||||
| | * | | tor-bytes: Clarify that Cursor is not a good thing, and could be neater. | Nick Mathewson | 2023-03-01 | 1 | -2/+11 | |
| | | | | ||||||
| | * | | tor-cell: Rename EstablishIntro{Body => Details} | Nick Mathewson | 2023-03-01 | 2 | -12/+12 | |
| | | | | ||||||
| | * | | clarify results of misusing cursors | Ian Jackson | 2023-03-01 | 1 | -2/+2 | |
| | | | | ||||||
| | * | | tor-cell: Fix compilation for fuzzers | Nick Mathewson | 2023-03-01 | 3 | -4/+5 | |
| | | | | | | | | | | | | | | | | (I also ran them a couple billion iterations, and didn't hit any bugs.) | |||||
| | * | | tor-cell: Make EstablishIntro do signatures | Nick Mathewson | 2023-03-01 | 3 | -60/+302 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old code parsed and encoded a signature and a mac... but there was no way to actually set them properly. Now EstablishIntro is built around an EstablishIntroBody, and has the ability to check signatures and macs. Because there is no way to handle one of these messages if we can't check the signature, we no longer accept unrecognized `auth_key` types in this message. I've added a test to make sure that we can validate a message from the C tor implementation, and a test to make sure we can validate our own cells. I also had to modify the previous tests so that their keys were well-formed. | |||||
| | * | | tor-bytes: impl Readable and Writeable for CtByteArray. | Nick Mathewson | 2023-02-28 | 2 | -0/+19 | |
| | | | | ||||||
| | * | | Expose a little new functionality from tor-llcrypto. | Nick Mathewson | 2023-02-28 | 2 | -0/+11 | |
| | | | | | | | | | | | | | | | | Expose ED25519 signature length; make ValidatableEd25519Signature implement Debug and Clone. | |||||
| | * | | tor-bytes: Add cursor functionality to Reader | Nick Mathewson | 2023-02-28 | 2 | -0/+62 | |
| | | | | | | | | | | | | | | | | We'll use this to implement signature and MAC checking for EstablishIntro cells. | |||||
| * | | | Merge branch 'more_hs_msgs' into 'main' | Nick Mathewson | 2023-03-01 | 7 | -64/+226 | |
| |\| | | |/ |/| | | | | | Implement most remaining HS cell types See merge request tpo/core/arti!1038 | |||||
| | * | Change several cfgs to refer to new feature names. | Nick Mathewson | 2023-02-28 | 3 | -17/+17 | |
| | | | ||||||
| | * | Mark new tests as onion-service-only | Nick Mathewson | 2023-02-28 | 1 | -0/+3 | |
| | | | ||||||
| | * | tor-cell: Support extensions in INTRODUCE{1,2} | Nick Mathewson | 2023-02-28 | 2 | -22/+26 | |
| | | | ||||||
| | * | tor-cell: Implement IntroduceAck and IntroEstablished | Nick Mathewson | 2023-02-28 | 2 | -19/+104 | |
| | | | | | | | | | | | These are fairly simple, since the bulk of them is just an extension list with no supported extensions. | |||||
| | * | tor-cell: Implement rendezvous1 and rendezvous2. | Nick Mathewson | 2023-02-28 | 2 | -4/+60 | |
| | | | ||||||
| | * | caret: work correctly when there are no defined variants. | Nick Mathewson | 2023-02-28 | 1 | -2/+4 | |
| | | | ||||||
