Commit Graph

5524 Commits

Author SHA1 Message Date
Nick Mathewson 93cdb0a2c3 Add a note about why we use ExpandedSecretKey for OnionIdSecretKey 2023-01-24 13:40:59 -05:00
Nick Mathewson 00aaf79620 hscrypto: Add our standard clippy warnings
(I have squashed the fixes for these warnings into the earlier
commits in this branch, so it will look like I did everything right
the first time.)
2023-01-24 13:40:59 -05:00
Nick Mathewson f192429442 hscrypto: Implement key blinding.
This implementation was made based on the specification, and then
validated against itself, and against C Tor.
2023-01-24 13:40:59 -05:00
Nick Mathewson 3dfeb5b144 hscrypto: Add an implementation for TimePeriod
This required some API tweaks, which is probably to be expected;
these time periods are a wonky kind of thing.
2023-01-24 13:33:48 -05:00
Nick Mathewson 0a52d90af3 hscrypto: Implement hs_mac. 2023-01-24 13:33:48 -05:00
Nick Mathewson 44e9d31af9 hscrypto: Improve documentation for RendCookie 2023-01-24 13:33:48 -05:00
Nick Mathewson 49afcafadd hscrypto: use a macro to define our byte wrappers too. 2023-01-24 13:33:48 -05:00
Nick Mathewson 7e4ad381a8 hscrypto: Add and use a macro to define all PK types. 2023-01-24 13:33:46 -05:00
Nick Mathewson 36485218c3 hscrypto: A couple of spelling fixes. 2023-01-24 13:32:18 -05:00
Nick Mathewson 23bbf17d38 hscrypto: Associate each type with new name from rend-spec-v3.txt 2023-01-24 13:32:18 -05:00
Nick Mathewson 3b2848f904 Merge branch 'onion-api-highlevel' into 'main'
Onion-service APIs: circmgr, hsclient, hsservice

See merge request tpo/core/arti!972
2023-01-24 18:19:42 +00:00
Ian Jackson 590c139af9 tor-proto: Mark stream ids in errors as sensitive
Pursuant to #556
2023-01-24 18:08:40 +00:00
Nick Mathewson 5b4ffc5e48 Note a needed isolation API. 2023-01-24 12:32:21 -05:00
Nick Mathewson 606426bfc7 hsservice: Add a note about the contents of circ_info.
In order to store per-circuit information, it's a good idea if we
provide something that can be the key of a `PtrWeakKeyHashMap`.
2023-01-24 12:32:21 -05:00
Nick Mathewson a210686c80 Sketch an API for onion services. 2023-01-24 12:32:21 -05:00
Nick Mathewson 32ae6dfa09 Add a new stub hsclient module to connect to onion services. 2023-01-24 12:32:21 -05:00
Nick Mathewson 8ce05dc725 CircMgr: Draft API to construct targeted multihop circuits.
Onion services and onion clients need these to make connections to
HsDirs, Introduction points, and Rendezvous points.
2023-01-24 12:32:21 -05:00
Nick Mathewson 190f24e66d CircMgr: Draft APIs used to implement onion service clients. 2023-01-24 12:32:21 -05:00
Nick Mathewson 1834579460 Merge branch 'onion-proto-apis' into 'main'
Draft APIs for onion services in tor-proto

See merge request tpo/core/arti!970
2023-01-24 17:28:16 +00:00
Nick Mathewson 41fee18362 Merge branch 'onion-service-key-note' into 'main'
Add a note about key storage in onion services and clients

See merge request tpo/core/arti!974
2023-01-24 17:15:45 +00:00
Nick Mathewson ce293e4ce4 tor-proto: comment fixes and more TODO hs 2023-01-24 11:50:10 -05:00
Nick Mathewson 410d05697f Try to be less ambigous about "maybe offline"...
...by defining "offline" as "maybe online".

@diziet is this what you had in mind?
2023-01-24 11:39:10 -05:00
Nick Mathewson b667faf5c5 Try to specify which keys are which
Use the terminology in the current draft torspec!105 MR.
2023-01-24 11:39:10 -05:00
Nick Mathewson 8764c64564 Add a note about key storage in onion services and clients 2023-01-24 11:39:10 -05:00
Ian Jackson 92ba020534 Add missing docsrs attribute 2023-01-24 16:19:05 +00:00
Ian Jackson 15a543d738 netdoc builder: Add two TODOs, prompted by testing experience 2023-01-24 16:15:17 +00:00
Ian Jackson be1cd7789d netdoc builder test: Make a bigger dummy document and test reparsing 2023-01-24 16:15:17 +00:00
Ian Jackson eb3b261595 netdoc builder: Implement object() and add one test case 2023-01-24 16:15:17 +00:00
Ian Jackson 4f0d17d96d netdoc-builder: Initial test case (no object yet) 2023-01-24 16:15:17 +00:00
Ian Jackson 066eb12f50 netdoc-builder: Provide new() method 2023-01-24 16:15:17 +00:00
Ian Jackson e989871a7b netdoc-builder: Implement ItemArgument for more needed types 2023-01-24 16:15:17 +00:00
Ian Jackson 94fec1e12c netdoc-builder: Remove some obsolete comments 2023-01-24 16:15:17 +00:00
Ian Jackson 16c4fee4b8 netdoc-builder: Move example into implementation doc comment
Not actually tested yet
2023-01-24 16:15:17 +00:00
Ian Jackson 8f725a19f8 netdoc-builder: Implement most of the internal general doc builder 2023-01-24 16:15:17 +00:00
Ian Jackson 22cf060426 netdoc-builder api: Clarify docs for object() 2023-01-24 16:15:17 +00:00
Ian Jackson c7e816d263 netdoc-builder api: Introduce ItemArgument trait 2023-01-24 16:15:17 +00:00
Ian Jackson eac7befc87 netdoc-builder api: Have .item() return ItemBuilder
This was a slip in the design doc.
2023-01-24 16:15:17 +00:00
Ian Jackson 8c8ff4948f netdoc-builder api: Abolish `K` generic on ItemEncoder
We're going to eagerly encode the keyword, so this will be easy.
Removing the generic simplifies the API.
2023-01-24 16:15:17 +00:00
Ian Jackson 669a399c46 netdoc-builder api: Don't promise to check args_raw_string value 2023-01-24 16:15:17 +00:00
Ian Jackson 2bc7a371b4 netdoc-builder api: Make ItemEncoder methods consume and return self
This will actually make the pattern in the example work.

The mentioned `ItemArgument` trait will arrive soon.
2023-01-24 16:15:17 +00:00
Ian Jackson 5fccbce160 netdoc-builder api: Move internal API into actual code file (fmt) 2023-01-24 16:15:17 +00:00
Ian Jackson e971d1ad59 netdoc-builder api: Move internal API into actual code file
Motion, plus the bare minimum needed to make it compile.
2023-01-24 16:15:17 +00:00
Ian Jackson bb5565b800 netdoc-builder api: Remove obsolete proposed `Item` changes
We decided against these in !969
2023-01-24 16:15:17 +00:00
Ian Jackson f735a128bb tor-netdoc: tokenize: Provide BASE64_PEM_MAX_LINE
We'll use this in the netdoc builder, but it naturally lives here.
2023-01-24 16:15:17 +00:00
Ian Jackson c8ac951cf5 tor-netdoc: tokenize: Rename to tag_keywords_ok, document, expose
Rename from _keyword_, since this actually checks the *multiple*
keywords that can appear in an object's BEGIN line.

Make this clear in the doc comment.

Expose it for use by the netdoc builder.
2023-01-24 16:15:17 +00:00
Ian Jackson a8ab0a5f46 tor-netdoc: tokenize: crate-Expose object::BEGIN_STR etc.
The document builder wants these too.
2023-01-24 16:15:17 +00:00
Ian Jackson 5bd54f3701 tor-netdoc: Make AuthCertKwd pub(crate)
For now, this will be useful in a test.
2023-01-24 16:15:17 +00:00
Ian Jackson 043581fe0e tor-bytes: impl Writeable for &impl Writeable 2023-01-24 16:15:17 +00:00
Ian Jackson a4a4b19f21 tor-bytes: Implement conversion from EncodeError to Bug 2023-01-24 16:15:17 +00:00
eta c31f451e0b Merge branch 'bug736' into 'main'
Prop304: Add extended SOCKS result codes for onion services

See merge request tpo/core/arti!978
2023-01-24 15:05:19 +00:00