summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
| * | chanmgr: remove a needless mut.Nick Mathewson2023-05-111-1/+1
| |/ | | | | | | This fixes a warning from nightly clippy.
* | Merge branch 'hs-linkspec-work-v2' into 'main'Nick Mathewson2023-05-1116-126/+520
|\ \ | |/ |/| | | | | | | | | Second take on linkspec manipulation code needed by onion services Closes #794 See merge request tpo/core/arti!1177
| * linkspec::verbatim: wrapper to give a CircTarget a new set of LinkSpecsNick Mathewson2023-05-113-1/+113
| |
| * Add linkspec::decode to convert linkspecs to an OwnedChanTargetNick Mathewson2023-05-113-1/+189
| | | | | | | | | | | | | | Relays and onion service services/clients will both need this. I'm marking this experimental for now; we should stabilize it before we release onion services.
| * Change CircTarget::linkspecs() to return an encoded list.Nick Mathewson2023-05-107-15/+34
| | | | | | | | | | | | | | | | If we didn't do this, we would need to transfrom `EncodedLinkSpec`s into a `LinkSpec::Unrecognized`, which is not semantically right. What's more, every user of this API wants to consume encoded link specifiers, so encoding them early saves a little effort.
| * linkspec: Make LinkSpecType public.Nick Mathewson2023-05-105-35/+50
| | | | | | | | | | This lets us check the type of an `EncodedLinkSpec` as well, and lets us remove an interface that took a raw u8.
| * linkspec: define conversion functions for EncodedLinkSpecNick Mathewson2023-05-101-48/+79
| | | | | | | | | | | | This commit adds functions to convert between LinkSpec and EncodedLinkSpec, and refactors their read/write implementations a bit to avoid code duplication.
| * Rename UnparsedLinkSpec => EncodedLinkSpecNick Mathewson2023-05-106-22/+23
| |
| * hspool: Accept any T:CircTarget.Nick Mathewson2023-05-102-9/+28
| | | | | | | | | | | | Previously, we only accepted an OwnedCircTarget, which would have kept us from getting a circuit that was aimed at a specialized CircTarget that gave us LinkSpecs in a raw order.
| * test_linkspecs: tidy order of linkspecsNick Mathewson2023-05-101-11/+11
| | | | | | | | This is pure code movement.
| * Move responsibility for linkspec sorting to CircTarget.Nick Mathewson2023-05-102-5/+14
| | | | | | | | | | | | This change is necessary so that we can build Extend2 messages that have their LinkSpecs appear in a verbatim order as provided in an INTRODUCE2 message or in a HS descriptor.
* | netdoc: Remove experimental-api gate from parse_decrypt_validate.Gabriela Moldovan2023-05-102-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | `parse_decrypt_validate` was marked as experimental because it was unclear if the newly added `BadTimeBound` error kind belongs in `ParseErrorKind`. However, we have since renamed `ParseErrorKind` to `NetdocErrorKind` and decided to keep the new variant, so this API doesn't need to be experimental anymore. Closes arti #852 Signed-off-by: Gabriela Moldovan <[email protected]>
* | netdoc: Rename `ParseError{Kind, Source}` to `NetdocError{Kind, Source}`.Gabriela Moldovan2023-05-1018-44/+43
|/ | | | | | | | | | | `ParseErrorSource` was originally meant to represent a parsing error, this enum has since gained some variants that aren't really parsing related (`Signature`, `CertSignature`, `UntimelyDescriptor`). Since this error type is now used for general-purpose netdoc errors, let's rename `ParseError{Kind, Source}` to `NetdocError{Kind, Source}`. Signed-off-by: Gabriela Moldovan <[email protected]>
* Merge branch 'ticket_839' into 'main'Alexander Færøy2023-05-091-8/+12
|\ | | | | | | | | | | | | Downgrade and clarify message about dir replacment time. Closes #839 See merge request tpo/core/arti!1171
| * Downgrade and clarify message about dir replacment time.Nick Mathewson2023-05-081-8/+12
| | | | | | | | Closes #839
* | Merge branch 'print-stati-feature' into 'main'Alexander Færøy2023-05-091-2/+2
|\ \ | |/ |/| | | | | print both static sqlite/tls when 'static' feature is used See merge request tpo/core/arti!1169
| * print both static sqlite/tls when 'static' feature is usedtrinity-1686a2023-05-081-2/+2
| |
* | fix a couple clippy lintstrinity-1686a2023-05-082-4/+4
| |
* | update rustls to 0.21trinity-1686a2023-05-082-18/+13
| |
* | update rsa to 0.9.xtrinity-1686a2023-05-082-6/+5
|/
* tor-netdir: Shuffle the list of HS dirs used for downloading descriptors.Gabriela Moldovan2023-05-044-17/+50
| | | | | | | | We'll probably need the hsdir list to be shuffled deterministically for testing purposes (this might be desirable, for example, when we write a test for HS descriptor download retries). Signed-off-by: Gabriela Moldovan <[email protected]>
* objmap: move types to top of file.Nick Mathewson2023-05-041-74/+74
|
* Note/clean more TODOs in objmap.Nick Mathewson2023-05-041-1/+4
|
* RPC: Make the "client" return optional.Nick Mathewson2023-05-041-2/+2
|
* RPC: Make "Weak" and "Strong" entries separate.Nick Mathewson2023-05-041-43/+41
| | | | | | | | | Now there can be one of each, since we want references and handles to be conceptually separate. (The alternative would be to say that an operation either "returns a handle" or "returns a reference (which may become a handle) unless a handle already exists.")
* Temporarily replace generational-arena with a fake version.Nick Mathewson2023-05-042-2/+80
| | | | | This fake version is completely silly, but it will do the job until we figure out our MPL2 concerns.
* RPC: make arti-rpcserver require the arti-client/rpc featureNick Mathewson2023-05-041-1/+1
|
* RPC: Rename session.rs to connection.rsNick Mathewson2023-05-044-4/+4
|
* RPC: rename Session to Connection.Nick Mathewson2023-05-043-45/+48
| | | | | | | To me, "Session" suggests that we're authenticated, when we are not necessarily authenticated. Also, we may eventually want to have some kind of persistent session object; if we do, then we'll want Connections to be separate.
* RPC: Make authentication return a TorClient.Nick Mathewson2023-05-042-58/+66
| | | | | | (This is the correct capabilities-based behavior. For now it will only work if the TorClient uses a PreferredRuntime, but with luck we will find a solution for #837 soon.)
* Add a generational arena for object mapping for RPC.Nick Mathewson2023-05-043-0/+665
| | | | | | See the comments on `TypedAddr` for some explanations about why this is so tricky. Thanks to @diziet for helping me figure this out.
* RPC: Add "register" methods to RequestContext.Nick Mathewson2023-05-043-0/+38
|
* RPC: Start on plumbing TorClient into our RPC codeNick Mathewson2023-05-046-7/+39
| | | | | Because of #837, we won't be able to work with _every_ TorClient<R>, so I'm only going to be using TorClient<PreferredRuntime> for now.
* RPC: Move the "listen" part of the RPC listener code to `arti`.Nick Mathewson2023-05-049-91/+159
| | | | | | | | | Now there's a module in `arti` that runs the loop for an RPC listener. The part of the old `listener` module that made the framed connections is now part of the `Session` object. There is now yet another a temporary location for the pipe; we should pick something better. At least now it's configurable.
* rpc: Make an RpcMgr type to own the DispatchTable.Nick Mathewson2023-05-046-14/+59
| | | | | | | | | In the future, this will probably hold more data as well, like a TorClient and some configuration info. The TorClient will present an issue; I've made comments about that. Closes #820
* tor-error: Add a TODO regarding HS desc parsing errors.Gabriela Moldovan2023-05-031-0/+14
| | | | Signed-off-by: Gabriela Moldovan <[email protected]>
* hscrypto: Add comment about impl that will be removed after we address #798.Gabriela Moldovan2023-05-031-0/+2
| | | | Signed-off-by: Gabriela Moldovan <[email protected]>
* Clarify what the new ErrorKinds mean.Gabriela Moldovan2023-05-031-4/+14
| | | | Signed-off-by: Gabriela Moldovan <[email protected]>
* tor-netdir: Update tests to parse the descriptor, make test consensus ↵Gabriela Moldovan2023-05-035-26/+91
| | | | | | lifetime configurable. Signed-off-by: Gabriela Moldovan <[email protected]>
* hsclient: Use a real HsDesc instead of an unparsed string.Gabriela Moldovan2023-05-034-18/+59
| | | | Signed-off-by: Gabriela Moldovan <[email protected]>
* hscrypto: Add From impl for deriving KP_hsc_desc_enc out of KS_hsc_desc_enc.Gabriela Moldovan2023-05-031-0/+6
| | | | | | | | | | The `HsClientSecretKeys` stored in the HS client connection context only have the secret keys. Certain APIs (such as `HsDesc::parse`) expect a keypair (both `HsClientDescEncKey` and `HsClientDescEncSecretKey`). This `From` impl makes it possible to get a `HsClientDescEncKey` out of `HsClientDescEncSecretKey`. Signed-off-by: Gabriela Moldovan <[email protected]>
* Merge branch 'more_dir_logging' into 'main'Nick Mathewson2023-05-0320-32/+67
|\ | | | | | | | | | | | | Lots more dirmgr log messages Closes #803 See merge request tpo/core/arti!1163
| * Upgrade tracing to 0.1.36.Nick Mathewson2023-05-0318-18/+18
| | | | | | | | | | | | This is the first version to impl Value for String. With luck, this will get minimal_versions CI passing.
| * DirMgr: More logs in top-level bootstrapping code.Nick Mathewson2023-05-031-5/+12
| | | | | | | | Closes #803, I hope.
| * DirMgr: more trace!() logs and information in download/load functions.Nick Mathewson2023-05-031-8/+30
| | | | | | | | | | | | | | My goal here is to make sure that we can't confuse one download operation and another, and that we actually know what's going on. Previously, not all state transitions or attempts to fetch information actually corresponded to a log.
| * DirMgr: Log at trace! when starting a new "AttemptId".Nick Mathewson2023-05-031-1/+7
| |
* | Merge branch 'hsdesc-parse-decrypt-validate' into 'main'gabi-2502023-05-032-1/+75
|\ \ | |/ |/| | | | | | | | | netdoc: Add a convenience method for HS descriptor parsing. Closes #809 See merge request tpo/core/arti!1152
| * netdoc: Mark parse_decrypt_validate as experimental.Gabriela Moldovan2023-05-022-0/+6
| | | | | | | | Signed-off-by: Gabriela Moldovan <[email protected]>
| * netdoc: Document how to extract an `HsDesc` out of an ↵Gabriela Moldovan2023-04-251-0/+32
| | | | | | | | | | | | | | | | | | `UncheckedEncryptedHsDesc`. This adds an example to the `HsDesc::parse` docs. The constants from the example are lifted from the `parse_desc_good` test. Signed-off-by: Gabriela Moldovan <[email protected]>
| * netdoc: Add a convenience method for HS descriptor parsing.Gabriela Moldovan2023-04-252-1/+37
| | | | | | | | | | | | | | | | | | This adds the `HsDesc::parse_decrypt_validate` method, which parses, decrypts, and validates HS descriptors. Closes #809 Signed-off-by: Gabriela Moldovan <[email protected]>