summaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | hsclient: Compute HsDesc validity time from the TimerangeBounds of its layers.Gabriela Moldovan2023-05-132-38/+29
| | | | | | | | | | | | | | This makes `descriptor_ensure` refetch the descriptor if either of its layers (inner or outer) expires. Signed-off-by: Gabriela Moldovan <[email protected]>
* | tor-checkable: Add a way to compute the intersection of 2 RangeBounds.Gabriela Moldovan2023-05-131-0/+71
| | | | | | | | | | | | | | This will be used for computing the final `TimerangeBound` of a `HsDesc` from the `TimerangeBound`s of its inner and outer layers. Signed-off-by: Gabriela Moldovan <[email protected]>
* | hsclient: Build cached descriptor TimerangeBounds from descriptor lifetime.Gabriela Moldovan2023-05-133-24/+51
| | | | | | | | | | | | | | This makes `descriptor_ensure` refetch the descriptor if it has been cached for longer than `descriptor-lifetime` minutes. Signed-off-by: Gabriela Moldovan <[email protected]>
* | hsclient: Rename import alias to reflect new name.Gabriela Moldovan2023-05-111-2/+2
| | | | | | | | | | | | A `NetdocErrorKind` is a `NEK` rather than a `PEK`. Signed-off-by: Gabriela Moldovan <[email protected]>
* | netdoc: Rename parse_error_kind() to netdoc_error_kind().Gabriela Moldovan2023-05-114-6/+6
| | | | | | | | | | | | | | `ParseErrorKind` was renamed to `NetdocErrorKind`, so we need to rename this acccessor too. Signed-off-by: Gabriela Moldovan <[email protected]>
* | Merge branch 'nightly-warnings-20230511' into 'main'gabi-2502023-05-113-9/+8
|\ \ | | | | | | | | | | | | Fix a few warnings from rust nightly See merge request tpo/core/arti!1178
| * | arti-testing: remove some needless ::default()sNick Mathewson2023-05-111-4/+4
| | | | | | | | | | | | | | | | | | This fixes a warning from nightly clippy. I don't care for this warning, but fixing it is easier than adding a version-conditional warning exception.
| * | dirmgr: remove a needless .borrow()Nick Mathewson2023-05-111-4/+3
| | | | | | | | | | | | This fixes a warning from nightly clippy.
| * | 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