Skip to content

cipher+digest: migrate to hybrid array; MSRV 1.65#1358

Merged
tarcieri merged 3 commits intomasterfrom
cipher+digest/hybrid-array
Oct 27, 2023
Merged

cipher+digest: migrate to hybrid array; MSRV 1.65#1358
tarcieri merged 3 commits intomasterfrom
cipher+digest/hybrid-array

Conversation

@tarcieri
Copy link
Member

@tarcieri tarcieri commented Oct 8, 2023

Continuation of #1319.

Replaces generic-array with hybrid-array, which is built on a combination of typenum and const generics, providing a degree of interoperability between the two systems.

hybrid-array is designed to be a largely drop-in replacement, and the number of changes required to switch are relatively minimal aside from some idiosyncrasies.

@tarcieri tarcieri force-pushed the cipher+digest/hybrid-array branch 2 times, most recently from 2c457b6 to fb64380 Compare October 8, 2023 22:27
@tarcieri
Copy link
Member Author

tarcieri commented Oct 8, 2023

@newpavlov well, there's the next step

Replaces `generic-array` with `hybrid-array`, which is built on a
combination of `typenum` and const generics, providing a degree of
interoperability between the two systems.

`hybrid-array` is designed to be a largely drop-in replacement, and the
number of changes required to switch are relatively minimal aside from
some idiosyncrasies.
@tarcieri tarcieri force-pushed the cipher+digest/hybrid-array branch from fb64380 to f93a1d6 Compare October 27, 2023 00:50
@tarcieri tarcieri changed the title [WIP] cipher+digest: migrate to hybrid array; MSRV 1.65 cipher+digest: migrate to hybrid array; MSRV 1.65 Oct 27, 2023
/// of zero and tail is equal to `self`.
#[inline]
fn into_chunks<T, N: ArrayLength<T>>(buf: &mut [T]) -> (&mut [GenericArray<T, N>], &mut [T]) {
fn into_chunks<T, N: ArraySize>(buf: &mut [T]) -> (&mut [Array<T, N>], &mut [T]) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should move this method into hybrid-array? I think we had a recent discussion about it.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, although perhaps that could be a followup?

@tarcieri tarcieri marked this pull request as ready for review October 27, 2023 01:11
@tarcieri tarcieri requested a review from newpavlov October 27, 2023 16:03
@tarcieri tarcieri merged commit 102d328 into master Oct 27, 2023
@tarcieri tarcieri deleted the cipher+digest/hybrid-array branch October 27, 2023 18:15
@tarcieri tarcieri mentioned this pull request Feb 4, 2026
tarcieri added a commit that referenced this pull request Feb 4, 2026
### Added
- Traits for tweakable block ciphers (#1721)
- Methods for writing keystream (#1907)

### Changed
- Replaced `generic-array` with `hybrid-array` (#1358)
- Rename `BlockCipher*`/`BlockMode*` (#1482)
  - `BlockEncrypt` => `BlockCipherEncrypt`
  - `BlockDecrypt` => `BlockCipherDecrypt`
  - `BlockEncryptMut` => `BlockModeEncrypt`
  - `BlockDecryptMut` => `BlockModeDecrypt`
- Split `BlockBackend` traits into 4 specific traits: (#1636)
  - `BlockCipherEncBackend`
  - `BlockCipherDecBackend`
  - `BlockModeEncBackend`
  - `BlockModeDecBackend`
- Edition changed to 2024 and MSRV bumped to 1.85 (#1759)
- Use `block_buffer::ReadBuffer` in `StreamCipherCoreWrapper` (#1959)
- Re-export of `crypto-common` moved to `cipher::common` (#2237, #2260)
- `crypto-common` dependency bumped to v0.2 (#2276)
- `blobby` requirement bumped to v0.4 (#2147)
- `inout` dependency bumped to v0.2.2 (#2149)

### Fixed
- Bugs in `StreamCipherCoreWrapper` trait implementations (#1421)
- Seeking implementation in the stream cipher wrapper (#2052)

### Removed
- `std` feature (#1691)
- `BlockCipherEncrypt::encrypt_padded*` and
`BlockCipherDecrypt::decrypt_padded*` methods.
Users of the ECB mode should use the `ecb-mode` crate instead. (#2245)
- `AsyncStreamCipher` trait (#2280)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants