aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-bytes/src/impls.rs
Commit message (Collapse)AuthorAgeFilesLines
* tor-bytes: Make "tor-llcrypto" dependency optional.Nick Mathewson2024-10-091-0/+10
| | | | | | This is part of an effort to make arti-rpc-client-core (and future similar tools) able to use our very-low-level crates without depending on things they don't need.
* tor-bytes: Add a Reader constructor for use in testsIan Jackson2024-09-111-2/+2
| | | | | | | | | | | | We could call from_possibly_incomplete_slice in these, but that's confusing and distracting. Here we add this constructor, and document it (in terms of the constructor to come), and change the call sites. No functional change. Doing this now will prevent unwanted changes to test behaviours when we change the behaviour of Readers made by Reader::from_slice.
* Change tor_bytes::Readable name to `b` in many placesIan Jackson2024-09-111-15/+15
| | | | | | | | | | | | | | | The codebase uses `r` sometimes and `b` at other times. Making this consistent makes widespread changes easier, and is clearer for humans. I think `b` is better than `r` because `r` might be "return". It is indeed used that way in a couple of places in reader.rs, even. I haven't changed *everywhere*, just Readable impls (where `r` is particularly likely to be "return value") and occurrences in tor-bytes. No functional change.
* tor-bytes: avoid write_zeros truncationTobias Stoeckmann2024-03-061-1/+1
| | | | | | | Use a saturating add while determining the new length. If it really ends up being usize::MAX, the resize will most likely panic. This is at least a more reliable end of processing than going on with a much smaller vector than expected.
* Convert to the latest versions of dalek-cryptographyNick Mathewson2023-11-291-17/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The main changes that we have to adjust for are as follows: * In x25519-dalek: * `StaticSecret` is now behind a feature. * `StaticSecret::new` is deprecated in favor of `StaticSecret::random_from_rng`. * StaticSecret no longer does its own clamping. * In ed25519-dalek: * `SecretKey` has (in effect) been renamed to `SigningKey`. The name `SecretKey` is now an alias for `[u8; 32]`. * `SigningKey` is effectively a keypair, since it contains a public key as well. * `PublicKey` has been renamed to `VerifyingKey`. * The functions to extract a signing key and verifying key have been renamed as you might expect. * `ExpandedSecretKey` has been moved to `hasmat` and no longer implements `sign`. * `ExpanededSecretKey` now has as its elements a scalar and a hash prefix. * Various functions that took `&[u8]` now take `&[u8; N]`. * We no longer need a wrapper for older versions of rand. There is a single test in tor-keymgr that does not pass. I've marked it as ignore for now, in hopes that @gabi-250 can help me figure it out. This closes #808. There are several changes I want to make before we merge, however. They are marked with TODO DALEK.
* Remove direct dependency on generic-arrayNick Mathewson2023-09-281-13/+8
| | | | | | | | | | Instead of tying ourselves to a particular version of the generic-array crate, we now always use the version re-exported by our RustCrypto crates. This lets us avoid the possibility of version mismatch. (Originally I had planned to upgrade to generic-array 1.0, but then I found that we were not actually using it.)
* tor-bytes: Remove use of arrayrefNick Mathewson2023-05-251-8/+8
| | | | | Part of #872: Now that const generics are in, we have better ways to express converting slices into array-references.
* tor-bytes: impl Readable and Writeable for CtByteArray.Nick Mathewson2023-02-281-0/+18
|
* Change tor_bytes::Error::BadMessage to a Cow.Nick Mathewson2023-02-091-2/+2
| | | | | | | | | | Actually, to avoid making a breaking change, I'm deprecating BadMessage and creating a new InvalidMessage variant that takes a Cow. This way I don't need to track every crate that re-exposes tor_bytes::Error and call this a breaking change in those. Making this change will allow tor_bytes errors to be much more helpful.
* Fix some rustdoc errors.Nick Mathewson2022-10-131-4/+4
| | | | | | In addition to the usual "You named that method wrong!" errors, we have a new rustdoc error that complains about bogus "HTML tags" that are actually unquoted usage of types like `Result<Foo>`.
* tor-bytes::impls: Remove usage of infallible writers.Nick Mathewson2022-07-111-2/+2
|
* Convert each write_onto_infallible implementation into write_onto.Nick Mathewson2022-07-111-14/+27
|
* Convert each write_into_infallible implementation into write_into.Nick Mathewson2022-07-111-1/+2
| | | | (There was only one.)
* Rename "write" methods on tor-bytes to "write_infallible".Nick Mathewson2022-07-111-16/+16
| | | | | | | | | | | | | | | This comprises four renames: ``` write_onto -> write_onto_infallible write_into -> write_into_infallible write -> write_infallible writer_and_consume -> write_and_consume_infallible. ``` The rest of this branch will be concerned with replacing these `_infallible` methods with ones that return a `Result`. This is part of #513.
* clippy: Drop an unused lifetimeIan Jackson2022-05-111-1/+1
|
* Fix grammar and typosSamanta Navarro2022-04-271-1/+1
|
* tor-bytes: Use InternalError.Nick Mathewson2022-02-091-1/+2
| | | | | | This crate's Error type is too low-level to have an ErrorKind, but it does make sense to use InternalError for the internal errors here.
* Upgrade to digest v0.10.0Nick Mathewson2021-12-071-6/+6
| | | | | We generally try to track the latest rust-crypto traits when we can: fortunately, this upgrade didn't break much, considering.
* Resolve roughly half of the XXXXs.Nick Mathewson2021-12-061-1/+1
| | | | | | | | We want to only use TODO in the codebase for non-blockers, and open tickets for anything that is a bigger blocker than a TODO. These XXXXs seem like definite non-blockers to me. Part of arti#231.
* Run "cargo update" to get latest versions.Nick Mathewson2021-11-291-0/+2
| | | | | | | Also fix a couple of warnings introduced by now-unneeded imports with new ed25519 crate. This is part of the process for releasing our next version.
* add semicolons if nothing returnedDaniel Eades2021-11-251-13/+13
|
* Fix a few typos.Nick Mathewson2021-11-241-1/+1
| | | | Also fix some commonwealth spellings that had slipped in.
* Run "cargo fix --edition-idioms=2018".Nick Mathewson2021-10-221-1/+1
|
* fix/silence clippy lints in test modulesDaniel Eades2021-09-081-1/+2
|
* Improvements to array-of-u8 handling in tor-bytes.Nick Mathewson2021-09-071-30/+31
| | | | | | | | | | | | Now that we have const generics, we can use them. We can also avoid an extra clone in the implementation for [u8; N]. Nothing in our codebase requires that we use Reader or Writer on a GenericArray holding anything other than u8, so I've switched back to the more efficient implementation there. I've added a fuzzer case for the new method, but apparently rustc nightly isn't working too well with fuzzers for me; I'm going to try it tomorrow.
* Document every macro.Nick Mathewson2021-09-071-1/+3
| | | | | (The nightly version of clippy now includes macros for its missing_docs_in_private_items lint.)
* Move all crates into a `crates` subdirectory.Nick Mathewson2021-08-271-0/+417
This will cause some pain for now, but now is really the best time to do this kind of thing.