aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | arti-client: Implement From<tor_keymgr::Error> for Error.Gabriela Moldovan2023-06-152-4/+9
| | | |
* | | | keymgr, arti-client: KeyMgr should return Ok(None) if the key is not found.Gabriela Moldovan2023-06-152-28/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This simplifies usage quite a bit and will enable us to implement a dummy `KeyMgr` that doesn't depend on the error types from tor-keymgr (which will replace the "real" `KeyMgr` if the keymgr feature is disabled).
* | | | keymgr: Add TODO regarding KeyStore rename.Gabriela Moldovan2023-06-151-0/+4
| | | |
* | | | keymgr: Add TODO about KeyType refactorings.Gabriela Moldovan2023-06-151-0/+3
| | | |
* | | | keymgr: Add the key type to the `arti_extension`.Gabriela Moldovan2023-06-151-1/+2
| | | |
* | | | arti_client: Add TODO about refactoring code around HsClientSecretKeysBuilder.Gabriela Moldovan2023-06-151-0/+4
| | | |
* | | | keymgr: Add TODO regarding some error refactorings.Gabriela Moldovan2023-06-151-0/+14
| | | |
* | | | keymgr: Move the HS client and service key specifiers out of tor-keymgr.Gabriela Moldovan2023-06-1510-123/+123
| | | | | | | | | | | | | | | | | | | | | | | | The HS `HsClientSpecifier` and `HsClientSecretKeySpecifier` are moved to `tor-hsclient`. The HS service secret key specifier stubs are moved to `tor-hsservice`.
* | | | keymgr: Expand the TODOs regarding HS service key specifiers.Gabriela Moldovan2023-06-151-3/+18
| | | | | | | | | | | | | | | | Signed-off-by: Gabriela Moldovan <[email protected]>
* | | | keymgr: Expand HsClientSpecifier docs, add TODO about refactoring.Gabriela Moldovan2023-06-151-0/+7
| | | | | | | | | | | | | | | | Signed-off-by: Gabriela Moldovan <[email protected]>
* | | | arti-client, keymgr: Initialize KeyMgr with an ArtiNativeKeyStore.Gabriela Moldovan2023-06-151-2/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The `KeyMgr` is now initialized with an `ArtiNativeKeyStore` built from an invalid key store root dir (this is alright for the purposes of this proof-of-concept, since `ArtiNativeKeyStore::new` won't fail as it doesn't currently validate the keystore root dir).
* | | | keymgr: Introduce ToEncodableKey to simplify lookups.Gabriela Moldovan2023-06-154-20/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This means `KeyMgr` users don't need to specify the underlying key type (e.g. `ed25519::Keypair`) when retrieving keys. Instead, they can just specify the type required (as long as it implements `ToEncodableKey`), e.g. `HsClientIntroAuthKeypair`.
* | | | arti-client: Make the client use the KeyMgr.Gabriela Moldovan2023-06-153-3/+88
| | | | | | | | | | | | | | | | | | | | `TorClient` now uses a `KeyMgr` to retrieve the `HsClientSecretKeys` client auth keys passed to `get_or_launch_connection`.
* | | | keymgr: Add key manager implementation stub.Gabriela Moldovan2023-06-153-1/+116
| | | |
* | | | keymgr: Implement `SshKeyType::read_ssh_format_erased` for `KeyType`.Gabriela Moldovan2023-06-151-4/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a proof-of-concept `SshKeyType::read_ssh_format_erased` implementation for `KeyType`. The implementation decodes an OpenSSH key and converts it to one of the key types used internally by Arti. The value returned is type-erased, and will be downscast later down the line by the `KeyMgr` (note: `KeyMgr` doesn't exist yet). The `SshKeyType::write_ssh_format` will be implemented once these APIs are a bit more stable.
* | | | keymgr: Add ArtiNativeKeyStore implementation skeleton.Gabriela Moldovan2023-06-1510-0/+558
| | | | | | | | | | | | | | | | | | | | This adds implementation stubs for `ArtiNativeKeyStore`, and introduces the traits needed to make the `KeyStore` APIs work.
* | | | hsclient: Change builder error return type to ConfigBuildError.Gabriela Moldovan2023-06-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | It's not perfectly clear what this error type should be, so let's use `ConfigBuildError` for now (it makes things easier in `arti-client`, as we already have an `ErrorDetail` for it).
* | | | tor-hsclient: Make Untried a {}-less unitIan Jackson2023-06-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Suggested here https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1247#note_2912642 It's unlikely this will grow any content, so fine.
* | | | tor-hsclient: Insert a blank linegabi-2502023-06-151-0/+1
| | | |
* | | | tor-hsclient: Docs improvements.gabi-2502023-06-151-2/+2
| | | |
* | | | tor-hsclient: Remove two done TODOsIan Jackson2023-06-151-2/+0
| | | |
* | | | tor-hsclient: provide intro_index accessor for FailedAttemptError (xref)Ian Jackson2023-06-151-1/+2
| | | | | | | | | | | | | | | | Add a cross-reference to docs arising from MR comments in !1246.
* | | | tor-hsclient: Actually store our IPT experiencesIan Jackson2023-06-151-7/+42
| | | |
* | | | tor-hsclient: intro_rend_connect: bind `outcome`Ian Jackson2023-06-151-3/+3
| | | | | | | | | | | | | | | | This will be used in a moment.
* | | | tor-hsclient: Actually choose which intro points to useIan Jackson2023-06-151-3/+75
| | | | | | | | | | | | | | | | | | | | Right now this just always chooses randomly because nothing stores anything in the HashMap.
* | | | tor-hsclient: Introduce RelayIdForExperienceIan Jackson2023-06-151-9/+37
| | | | | | | | | | | | | | | | | | | | Wrap this up in a newtype so we don't accidentally use it for anything else. Provide two constructors, one for storing and one for lookups.
* | | | tor-hsclient: Add random sort key to UsableIptIan Jackson2023-06-151-0/+6
| | | |
* | | | tor-hsclient: provide intro_index accessor for FailedAttemptErrorIan Jackson2023-06-152-1/+24
| | | |
* | | | tor-error: Introduce `LooseCmpRetryTime`Ian Jackson2023-06-152-0/+20
|/ / / | | | | | | | | | | | | Having a newtype for this kind of thing is considerably more convenient. I'm going to use this in a moment.
* | | Merge branch 'pt-snowflake-fix' into 'main'Ian Jackson2023-06-141-5/+13
|\ \ \ | | | | | | | | | | | | | | | | make snowflake example feature-gated See merge request tpo/core/arti!1249
| * | | make snowflake example feature-gatedtrinity-1686a2023-06-141-5/+13
| |/ /
* | | tor-hsclient: InvalidTarget::ImpossibleRelayIds is RetryTime::NeverIan Jackson2023-06-141-1/+1
| | | | | | | | | | | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1246#note_2912105
* | | tor-hsclient: Correction to HasRetryTime for InvalidTarget docNick Mathewson2023-06-141-1/+2
| | |
* | | tor-hsclient: Add doc for HasKind for FailedAttemptErrorIan Jackson2023-06-141-0/+16
| | | | | | | | | | | | | | | There is a cross-reference here to code (`IptSortKey`) in another branch that I haven't made an MR for yet.
* | | tor-hsclient: Add docs and comments about HasRetryTime for InvalidTargetIan Jackson2023-06-141-0/+18
| | |
* | | tor-cell: HasRetryTime for IntroduceAckStatus: Confirm re CANT_RELAY (fmt)Ian Jackson2023-06-141-1/+1
| | | | | | | | | | | | | | | rustdoc insisted on misindenting this before, and now it insists on un-mis-indenting it.
* | | tor-cell: HasRetryTime for IntroduceAckStatus: Confirm re CANT_RELAYIan Jackson2023-06-141-1/+1
| | | | | | | | | | | | | | | Remove this todo as per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/1246#note_2912104
* | | tor-cell: Add a doc comment for impl tor_error::HasRetryTime for ↵Ian Jackson2023-06-141-0/+4
| | | | | | | | | | | | IntroduceAckStatus
* | | tor-hsclient: impl HasRetryTime for FailedAttemptErrorIan Jackson2023-06-142-2/+25
| | |
* | | tor-hsclient: impl HasRetryTime for InvalidTargetIan Jackson2023-06-141-1/+14
| | |
* | | tor-cell: impl HasRetryTime for IntroduceAckStatusIan Jackson2023-06-141-0/+14
|/ /
* | Merge branch 'tor-cell-todos' into 'main'Nick Mathewson2023-06-137-53/+10
|\ \ | | | | | | | | | | | | Resolve most TODO HS comments in tor-cell See merge request tpo/core/arti!1245
| * | cell: Downgrade a couple more TODO HS comments.Nick Mathewson2023-06-132-3/+3
| | |
| * | cell: Remove relaycell::restrictNick Mathewson2023-06-133-35/+1
| | | | | | | | | | | | | | | This module didn't have anything in it; nonetheless, removing it does count as an API break since it was public.
| * | cell: Remove some TODOsNick Mathewson2023-06-133-10/+2
| | | | | | | | | | | | | | | Yes, we still will need more accessors for onion services, but we can add them as we find the need.
| * | cell: remove/localize "allow(dead-code)"Nick Mathewson2023-06-133-5/+4
| | |
* | | Merge branch 'hscrypto-todos' into 'main'gabi-2502023-06-136-60/+103
|\ \ \ | | | | | | | | | | | | | | | | hscrypto: Resolve all but one TODO HS comment. See merge request tpo/core/arti!1244
| * | | hscrypto: fix TODOs in time-period code.Nick Mathewson2023-06-133-39/+63
| | | | | | | | | | | | | | | | | | | | | | | | * Return a more informative error type (instead of Option) * Check that time periods are an integer number of seconds * Decide not to change the semantics of an argument.
| * | | hscrypto: remove compatibility note about time periods.Nick Mathewson2023-06-131-9/+0
| | | | | | | | | | | | | | | | | | | | We updated and clarified the spec in arti!107, and noted the remaining infelicities in proposal 342.
| * | | hscrypto: write a READMENick Mathewson2023-06-131-1/+20
| | | |