cipher: v0.3 changes (without block-modes integration)#435
Merged
Conversation
To aid in getting the other changes landed, and since the `block-modes` integration is otherwise purely additive, this deletes the WIP code so the rest can be landed.
tarcieri
commented
Dec 26, 2020
| /// Default implementation will accept only keys with length equal to | ||
| /// `KeySize`, but some ciphers can accept range of key lengths. | ||
| fn new_varkey(key: &[u8]) -> Result<Self, InvalidLength> { | ||
| fn new_var(key: &[u8]) -> Result<Self, InvalidLength> { |
Member
Author
There was a problem hiding this comment.
As long as we're bikeshedding this method name, I've thought it would be clearer if it had slice in the name, e.g. new_from_slice or from_slice.
Member
There was a problem hiding this comment.
new_from_slice sounds good! from_slice is shorter, but I think will be more confusing, since it could be mistaken for a specialized version of the From trait. Also usually from* methods imply simple conversion, which is not the case here.
i wonder if for stream cipher and block modes we should use plural new_from_slices, since they accept two slices.
Member
Author
|
Going to go ahead and land this. Hopefully that's ok! |
tarcieri
added a commit
to RustCrypto/stream-ciphers
that referenced
this pull request
Dec 30, 2020
Implements the changes from: RustCrypto/traits#435 Unfortunately there's a circular dependency with `aes`, which now pulls in `ctr`, so the tests which depend on AES are failing. The plan is to land these changes first, then update the `block-ciphers` repository, then circle back and update the `aes` crate dependencies used in this repo.
tarcieri
added a commit
that referenced
this pull request
Dec 30, 2020
This reverts the implementation of `SeekNum::from_block_byte` which was merged as part of #435. I'm not exactly sure what the issue is and it's somewhat difficult to debug in that it's code that involves both generics and macros causing an error as part of any failure in a long chain of checked arithmetic, which I'm trying to debug from the context of a concrete stream cipher impl (both `chacha20` and `salsa20`) where it's operating over a generic type. The error manifests as `OverflowError`: RustCrypto/stream-ciphers#205 (comment) This commit reverts to the previous implementation, which is at least much simpler.
tarcieri
added a commit
that referenced
this pull request
Dec 30, 2020
This reverts the implementation of `SeekNum::from_block_byte` which was merged as part of #435. I'm not exactly sure what the issue is and it's somewhat difficult to debug in that it's code that involves both generics and macros causing an error as part of any failure in a long chain of checked arithmetic, which I'm trying to debug from the context of a concrete stream cipher impl (both `chacha20` and `salsa20`) where it's operating over a generic type. The error manifests as `OverflowError`: RustCrypto/stream-ciphers#205 (comment) This commit reverts to the previous implementation, which is at least much simpler.
tarcieri
added a commit
to RustCrypto/stream-ciphers
that referenced
this pull request
Dec 30, 2020
Implements the changes from: RustCrypto/traits#435 Unfortunately there's a circular dependency with `aes`, which now pulls in `ctr`, so the tests which depend on AES are failing. The plan is to land these changes first, then update the `block-ciphers` repository, then circle back and update the `aes` crate dependencies used in this repo.
tarcieri
added a commit
to RustCrypto/stream-ciphers
that referenced
this pull request
Dec 30, 2020
Implements the changes from: RustCrypto/traits#435 Unfortunately there's a circular dependency with `aes`, which now pulls in `ctr`, so the tests which depend on AES are failing. The plan is to land these changes first, then update the `block-ciphers` repository, then circle back and update the `aes` crate dependencies used in this repo.
tarcieri
added a commit
to RustCrypto/stream-ciphers
that referenced
this pull request
Dec 30, 2020
Implements the changes from: RustCrypto/traits#435 Unfortunately there's a circular dependency with `aes`, which now pulls in `ctr`, so the tests which depend on AES are failing. The plan is to land these changes first, then update the `block-ciphers` repository, then circle back and update the `aes` crate dependencies used in this repo.
tarcieri
added a commit
to RustCrypto/block-ciphers
that referenced
this pull request
Dec 30, 2020
Implements the API changes introduced in: RustCrypto/traits#435
tarcieri
added a commit
to RustCrypto/block-ciphers
that referenced
this pull request
Dec 30, 2020
Implements the API changes introduced in: RustCrypto/traits#435
tarcieri
added a commit
to RustCrypto/block-ciphers
that referenced
this pull request
Dec 30, 2020
Implements the API changes introduced in: RustCrypto/traits#435
tarcieri
added a commit
to RustCrypto/block-ciphers
that referenced
this pull request
Dec 30, 2020
Implements the API changes introduced in: RustCrypto/traits#435
tarcieri
added a commit
to RustCrypto/block-ciphers
that referenced
this pull request
Dec 30, 2020
Implements the API changes introduced in: RustCrypto/traits#435
Member
No problem! Sorry, I couldn't finish the PR myself. |
tarcieri
added a commit
that referenced
this pull request
Dec 30, 2020
Renames `new_var`(key) methods to use `new_from_slice(s)` as discussed earlier here: #435 (comment)
tarcieri
added a commit
that referenced
this pull request
Dec 30, 2020
Renames `new_var`(key) methods to use `new_from_slice(s)` as discussed earlier here: #435 (comment)
Closed
dfvgbh
added a commit
to dfvgbh/stream-siphers
that referenced
this pull request
Oct 4, 2025
Implements the changes from: RustCrypto/traits#435 Unfortunately there's a circular dependency with `aes`, which now pulls in `ctr`, so the tests which depend on AES are failing. The plan is to land these changes first, then update the `block-ciphers` repository, then circle back and update the `aes` crate dependencies used in this repo.
zk-wraithbg67
added a commit
to zk-wraithbg67/stream-ciphers
that referenced
this pull request
Jan 11, 2026
Implements the changes from: RustCrypto/traits#435 Unfortunately there's a circular dependency with `aes`, which now pulls in `ctr`, so the tests which depend on AES are failing. The plan is to land these changes first, then update the `block-ciphers` repository, then circle back and update the `aes` crate dependencies used in this repo.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the proposed API changes from #394, but removes the WIP work to also integrate the
block-modescrate.The reason is this work is a blocker on getting downstream crates updated to the new API, and the
block-modesintegration work is otherwise purely additive so it can easily be done separately.