Commit Graph

241 Commits

Author SHA1 Message Date
Nick Mathewson 2490b3cdc6 Use derive_more on SharedRandVal
This may be temporary if we wind up converting to CtByteArray,
but for now it's good to be terse.
2023-01-28 12:43:08 -05:00
Ian Jackson a51c76178e Several suggestions on gitlab. 2023-01-28 12:43:08 -05:00
Nick Mathewson 9f3e6783ca netdoc: Add Eq and a note to SharedRandVal. 2023-01-28 12:12:17 -05:00
Nick Mathewson 790b38eec8 netdoc: Add SRV accessors.
These are deliberately unsophisticated accessors, in that they return Option<>
rather than filling in missing values with the documented
fallbacks. It seems better to leave a way to distinguish the absent
case in the API.
2023-01-28 12:12:17 -05:00
Nick Mathewson c1ced84239 netdoc: Add a timestamp to SRVs per prop#342.
This breaks some experimental APIs, but since they are experimental
no semver note is needed.
2023-01-28 12:12:17 -05:00
Nick Mathewson 8ce447b7e2 netdoc: Add Iso8601 time _with_ a "T" as an argument type. 2023-01-28 12:12:17 -05:00
Dimitris Apostolou 3da36c5c8b
Fix typos 2023-01-28 01:31:10 +02:00
Nick Mathewson a6dd92843e Allow clippy::unchecked_duration_subtraction in tests
This panics on error, and we're fine with a panic on misbehavior in
tests.
2023-01-27 08:28:02 -05:00
Nick Mathewson ed74c62931 Elide a bunch of lifetimes.
Clippy now warns about these; I'm not sure how these warnings snuck
up on us.
2023-01-27 08:28:02 -05:00
Nick Mathewson bf04641c68 Disable clippy::unlinlined-format-args
This warning kind of snuck up on us! (See #748)  For now, let's
disable it.  (I've cleaned it up in a couple of examples, since
those are meant to be more idiomatic and user-facing.)

Closes #748.
2023-01-27 08:27:47 -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 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 4e6f5b7ff3 Do not .gitignore crates/*/fuzz/corpus
These are symlinks which are actually checked in.  They should not be
ignored.  (This caused trouble for some of my privsep tooling...)
2023-01-20 17:29:00 +00:00
Nick Mathewson 2c41321710 Netdoc: Refactor SharedRandVal.
SharedRandVal now holds only the 32-byte random value itself; the
"number of commits" field is in SharedRandStatus.

This commit also makes the SharedRandVal be exactly 32 bytes, since
we've set it to that value in the spec.
2023-01-11 09:04:12 -05:00
Nick Mathewson eba937e54c netdoc: Outline some basic types for encoding HsDescs. 2023-01-06 13:03:50 -05:00
Nick Mathewson e650e07cd4 netdoc: note some changes we will have to make to srv 2023-01-06 13:03:50 -05:00
eta 118050e54c Merge branch 'test-lints' into 'main'
Add test lint blocks to all "mod test"

See merge request tpo/core/arti!937
2023-01-06 17:16:09 +00:00
Neel Chauhan a180f911bd Use parse_rfc3339() in the tor-netdoc crate 2022-12-16 12:56:00 -08:00
Ian Jackson 125a455bdc test lint blocks: Add many many automatically
This is precisely the result of running the rune in
maint/adhoc-add-lint-blocks.
2022-12-12 18:00:30 +00:00
Ian Jackson baf78361e8 test lint blocks: Do some semi-manually
This is the hunks from running the rune in maint/adhoc-add-lint-blocks
but which require some subsequent manual fixup: usually, deleting
now-superfluous outer allows, but in some cases manually putting back
lints that the adhoc script deleted.
2022-12-12 18:00:29 +00:00
coral 25f113b8b3 Tackling issue #663 (Use humantime in tests) 2022-12-12 17:41:22 +00:00
Nick Mathewson e0aeda3071 Remove semver.md files now that 1.1.0 is released. 2022-11-30 17:10:29 -05:00
Nick Mathewson 38bef96b99 Bump the minor version of every crate.
We made this job easy this time around: by incrementing our MSRV, we
have forced ourselves to do at least a minor bump everywhere.
2022-11-30 15:10:16 -05:00
Ian Jackson d78295929b Merge branch 'more_netdoc_tests' into 'main'
tor-netdoc: More tests for routerdesc accessors and parsing.

See merge request tpo/core/arti!870
2022-11-29 11:11:47 +00:00
Nick Mathewson 829cb708e2 Fix a couple of rustdoc issues.
These slipped in while nightly was broken.
2022-11-18 10:19:54 -05:00
Nick Mathewson d51162e55b Fix a bunch of "needless borrow" warnings on nightly
It looks like, despite a few false starts, they've got this warning
right; there weren't any false positives.
2022-11-18 10:12:05 -05:00
Nick Mathewson cb3a790084 netdoc: Add a test for routerdesc family parsing. 2022-11-17 14:40:15 -05:00
Nick Mathewson 5655b95b54 netdoc: Correct and test some tricky routerdesc errors
These required hex-editing identity certificates :P
2022-11-17 14:35:40 -05:00
Nick Mathewson c0bc7bb11e netdoc: Add tests for routerdesc accessors. 2022-11-17 13:43:32 -05:00
Nick Mathewson 9f53a79ddf Netdoc: use a different desc in tests.
This is from Akka, which ahf runs.
2022-11-17 13:25:05 -05:00