summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | hsclient: Document sharing rulesIan Jackson2023-03-012-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | Text largely from https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1034#note_2881638
| * | | | hsclient state: rustfmtIan Jackson2023-03-011-241/+244
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Autogenerated with rustfmt; no code changes. This tidies up the bizarre formatting.
| * | | | hsclient state: Lots more doc comments about barriers, structure, etc.Ian Jackson2023-03-011-2/+74
| | | | |
| * | | | hsclient state: Break `obtain` out into a fnIan Jackson2023-03-011-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 SendIan Jackson2023-03-011-3/+9
| | | | |
| * | | | hsclient state: Restructure using a scope to drop the mutex guardIan Jackson2023-03-013-20/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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::blankIan Jackson2023-03-011-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 Jackson2023-03-011-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 OptionIan Jackson2023-03-011-0/+3
| | | | |
| * | | | hsclient keys: Compare all empty sets of keys as equalIan Jackson2023-03-011-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 Jackson2023-03-011-1/+4
| | | | |
| * | | | hsclient keys: Fix non-equal keys test to provide a (dummy) keyIan Jackson2023-03-011-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 Jackson2023-03-011-1/+22
| | | | |
| * | | | hsclient keys: Fix a missing full stopIan Jackson2023-03-011-1/+1
| | | | |
| * | | | hsclient state: Test most important code pathsIan Jackson2023-03-014-18/+151
| | | | |
| * | | | hsclient: Provide some missing debug impls and trace messagesIan Jackson2023-03-012-2/+25
| | | | |
| * | | | tor-hscrypto: Provide manual Debug impl for HsIdIan Jackson2023-03-011-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | This is still not great, but it at least makes the output plausible to read by eye.
| * | | | Apply rustfmtIan Jackson2023-03-013-48/+81
| | | | |
| * | | | hsclient state: Provide one testIan Jackson2023-03-013-0/+109
| | | | |
| * | | | hsclient: Use a generic to provide a mock for connect()Ian Jackson2023-03-015-21/+78
| | | | | | | | | | | | | | | | | | | | This will allow us to test state.rs.
| * | | | tor-circmgr: Provide testing feature and TestConfigIan Jackson2023-03-014-0/+52
| | | | | | | | | | | | | | | | | | | | Like the similar thing in tor-guardmgr.
| * | | | hsclient: Apply standard lint blockIan Jackson2023-03-011-1/+37
| | | | |
| * | | | hsclient: Move dead code allows to specific locationsIan Jackson2023-03-013-1/+4
| | | | |
| * | | | hsclient: Add vacuous comments as demanded by clippyIan Jackson2023-03-013-0/+7
| | | | |
| * | | | hsclient state: Bind a variable to stop rustfmt doing a terrible thingIan Jackson2023-03-011-5/+7
| | | | |
| * | | | hsclient: Provide a constructor for HsClientConnectorIan Jackson2023-03-012-10/+25
| | | | |
| * | | | hsclient: Implement connection attempt tracking state machineIan Jackson2023-03-016-42/+408
| | | | | | | | | | | | | | | | | | | | This compiles, but it cannot work yet. Nor can it conveniently be tested.
| * | | | HS secret keys: Move aggregate/config to tor-hsclientIan Jackson2023-03-014-11/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 layerIan Jackson2023-03-012-14/+5
| | | | |
| * | | | HS API: Remove HS client keys from circmgr APIIan Jackson2023-03-013-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 circmgrIan Jackson2023-03-013-5/+20
| | | | |
| * | | | HS planning: Intend for HS connector to do all lifecycle mgmtIan Jackson2023-03-011-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 Mathewson2023-03-0112-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_typeNick Mathewson2023-03-011-6/+8
| | | |
| * | | tor_cell: Use nested readers and writers for EstablishIntroNick Mathewson2023-03-011-18/+12
| | | |
| * | | tor-cell: tweak comments on EstablishIntro members.Nick Mathewson2023-03-011-2/+2
| | | |
| * | | Introduce a constant for the length of the output of hs_mac()Nick Mathewson2023-03-012-5/+8
| | | |
| * | | tor-bytes: Clarify that Cursor is not a good thing, and could be neater.Nick Mathewson2023-03-011-2/+11
| | | |
| * | | tor-cell: Rename EstablishIntro{Body => Details}Nick Mathewson2023-03-012-12/+12
| | | |
| * | | clarify results of misusing cursorsIan Jackson2023-03-011-2/+2
| | | |
| * | | tor-cell: Fix compilation for fuzzersNick Mathewson2023-03-013-4/+5
| | | | | | | | | | | | | | | | | | | | (I also ran them a couple billion iterations, and didn't hit any bugs.)
| * | | tor-cell: Make EstablishIntro do signaturesNick Mathewson2023-03-013-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 Mathewson2023-02-282-0/+19
| | | |
| * | | Expose a little new functionality from tor-llcrypto.Nick Mathewson2023-02-282-0/+11
| | | | | | | | | | | | | | | | | | | | Expose ED25519 signature length; make ValidatableEd25519Signature implement Debug and Clone.
| * | | tor-bytes: Add cursor functionality to ReaderNick Mathewson2023-02-282-0/+62
| | | | | | | | | | | | | | | | | | | | We'll use this to implement signature and MAC checking for EstablishIntro cells.
* | | | Merge branch 'more_hs_msgs' into 'main'Nick Mathewson2023-03-018-64/+227
|\| | | | |/ / |/| | | | | | | | Implement most remaining HS cell types See merge request tpo/core/arti!1038
| * | Change several cfgs to refer to new feature names.Nick Mathewson2023-02-283-17/+17
| | |
| * | Mark new tests as onion-service-onlyNick Mathewson2023-02-281-0/+3
| | |
| * | tor-cell: Support extensions in INTRODUCE{1,2}Nick Mathewson2023-02-282-22/+26
| | |
| * | tor-cell: Implement IntroduceAck and IntroEstablishedNick Mathewson2023-02-282-19/+104
| | | | | | | | | | | | | | | These are fairly simple, since the bulk of them is just an extension list with no supported extensions.