Commit Graph

2081 Commits

Author SHA1 Message Date
Nick Mathewson a4f1b27334 Fix clippy warnings; improve key type for consensus. 2020-09-07 17:27:29 -04:00
Nick Mathewson 3df3198363 RSAIdentity: Better Display and Debug. 2020-09-07 17:15:03 -04:00
Nick Mathewson b6a3642903 netdoc: ignore bad entries in families.
Some of these are nicknames, which we can safely ignore.
2020-09-07 16:57:57 -04:00
Nick Mathewson 919a7c5970 Start on a 'netdir' crate to wrap netdoc.
For now, this assumes an existing Tor cache directory.
2020-09-07 16:53:06 -04:00
Nick Mathewson 541b6fa55f relaycell: slight error cleanup 2020-09-07 12:25:41 -04:00
Nick Mathewson 6456653941 relaycell: move cmd into Unrecognized. 2020-09-07 12:19:19 -04:00
Nick Mathewson 010d93f453 proto::relaycell: documentation and light refactoring 2020-09-07 12:14:23 -04:00
Nick Mathewson b91f6b2cbd rename relaycell stuff to its own module; rename a bit 2020-09-06 22:01:15 -04:00
Nick Mathewson 4266aa7d12 proto: Finish documenting chancell 2020-09-06 21:49:30 -04:00
Nick Mathewson 7095192063 proto: small err cleanups 2020-09-06 17:50:06 -04:00
Nick Mathewson b54a960f3d proto: make write_body_onto destructive. That might help down the road 2020-09-06 17:20:02 -04:00
Nick Mathewson ae1c813a70 Reinstate ChanCell as a meaningful type. 2020-09-06 17:15:07 -04:00
Nick Mathewson e749e2bc27 proto: major refactor to channel cells
The protocol is now based around a message-oriented scheme intended
to use futures_codec, which in turn uses BytesMut.  The transition
to BytesMut is incomplete, and we're not nearly so zero-copy as
intended.  We should think about that.
2020-09-06 16:00:14 -04:00
Nick Mathewson 8db525dab4 tor-bytes: Add initial support for the bytes crate 2020-09-05 10:07:23 -04:00
Nick Mathewson b679ab216c Make MDConsensus also follow the checkable pattern. 2020-09-03 16:06:45 -04:00
Nick Mathewson fbb35dc72a Port authcert to use tor_checkable. 2020-09-03 15:02:36 -04:00
Nick Mathewson b3358673b5 Migrate certificate and routerdesc checking to tor-checkable
Now these types are parsed and returned wrapped inside a checkable
object.
2020-09-03 14:45:46 -04:00
Nick Mathewson 63adba1744 checkable: Add a simple type for self-signed objects. 2020-09-03 11:13:07 -04:00
Nick Mathewson 4ec97aa613 llcrypto: Define a "ValidatableSignature" type
This type wraps a signature, a public key, and the signed object.
It's meant to be useful for implementing SelfSigned objects.
2020-09-03 10:34:40 -04:00
Nick Mathewson 481e5e5a63 New module with traits for time-bound and signed objects
Too often I've been writing code that defers timeliness checking to
an is_valid_at() method [which you'd better call or else whoops] and
which does signature checking while parsing [not great for
performance].

Instead, let's make return types where you can't get at the interior
object without first either checking the signatures/timeliness, or
declaring that (dangerously) you don't care.
2020-09-01 17:59:58 -04:00
Nick Mathewson c8602beba9 WANT_FROM_OTHER_CRATES: observations on tls 2020-09-01 15:27:05 -04:00
Nick Mathewson 790d6becf2 Implement an ersatz hash() for RSAIdentity
For whatever reason, something I had didn't like me implementing a
custom PartialEq but deriving Hash
2020-08-28 18:16:56 -04:00
Nick Mathewson 4b75c51882 Run cargo-upgrade. 2020-08-28 18:14:17 -04:00
Nick Mathewson f55f86c6a8 llcrypto: add test vectors for sha3 and shake 2020-08-28 17:47:16 -04:00
Nick Mathewson 4a2e732457 Small readme edit 2020-08-28 13:42:08 -04:00
Nick Mathewson 6fabb54033 netdoc: Parser for microdesc consensus documents
There's more to do here, and things to refactor, but this ought to
be enough to get a rudimentary client working.
2020-08-27 14:30:24 -04:00
Nick Mathewson e221146d9e llcrypto: make RSAIdentity implement the Hash trait. 2020-08-27 12:54:07 -04:00
Nick Mathewson 86f6f30b6d netdoc: parse multiple authcerts from a string. 2020-08-27 12:54:07 -04:00
Nick Mathewson 696e7ad334 netdoc: add a check_len method for B64 2020-08-26 10:57:07 -04:00
Nick Mathewson d4af6a163f Add a B16 argument type, to mirror B64. 2020-07-20 20:55:47 -04:00
Nick Mathewson bbb8fea39b More parsing for fingerprints, including non-spaced fingerprints. 2020-07-20 20:55:47 -04:00
Nick Mathewson 5f00e41a6b Expose Protocols::new() as public. 2020-07-20 20:55:47 -04:00
Nick Mathewson 8c0bbfef2c tor-netdoc: Make SectionRules derive Clone.
This is going to come in handy for the networkstatus stuff, where I
need to define different variants of SectionRules for votes and
consensuses.
2020-07-20 20:55:47 -04:00
Nick Mathewson 173bec26a5 Update to latest packages; ed25519 now needs signature crate traits. 2020-07-20 20:55:03 -04:00
Nick Mathewson 7bd7e7ec7d Run cargo fix --edition-idioms 2020-06-26 13:17:14 -04:00
Nick Mathewson e1bbc2fdb0 Run "cargo update". 2020-06-21 11:14:56 -04:00
Nick Mathewson c602883881 Use "cargo upgrade" from cargo-edit to list current versions 2020-06-12 21:06:07 -04:00
Nick Mathewson 32ecff11eb Upgrade to latest version of rsa crate 2020-06-12 21:05:01 -04:00
Nick Mathewson 0ffa58d2d4 Merge remote-tracking branch 'official/main' into main 2020-06-12 20:05:41 -04:00
Nick Mathewson d36f52eea9 Mark a variable unused 2020-06-12 20:04:55 -04:00
Nick Mathewson f1a3841519 curate WANT_FROM_OTHER_CRATES 2020-06-12 14:02:15 -04:00
Nick Mathewson c7285c9449 Add documentation for authcert parsing. 2020-06-11 17:08:59 -04:00
Nick Mathewson 6264041b77 update to use latest rust-crypto traits and modules 2020-06-10 14:16:07 -04:00
Nick Mathewson c13728eaa2 Add a couple of commits missing from previous. 2020-06-09 18:46:56 -04:00
Nick Mathewson 3b4c828cb7 netdoc: initial implementation of authority certs. 2020-06-09 17:23:45 -04:00
Nick Mathewson 2d8021420f netdoc: note a forward-compatibility issue with RSA signatures. 2020-06-09 17:22:49 -04:00
Nick Mathewson 6ff619aab3 netdoc: when parsing from a string, detect extra tokens 2020-06-09 14:06:17 -04:00
Nick Mathewson 4408fc7084 Netdoc: allow parsing multiple routerdescs from a string. 2020-06-09 13:58:43 -04:00
Nick Mathewson 4a5b31d6cd netdoc: report microdesc errors at correct offsets. 2020-06-09 13:13:34 -04:00
Nick Mathewson d4f58b0977 netdoc: fix microdesc digest calculation at last. 2020-06-09 13:07:44 -04:00