Skip to content

Remove deprecated crypto_common re-exports#2260

Merged
tarcieri merged 1 commit intomasterfrom
remove-deprecated-crypto-common-re-exports
Feb 2, 2026
Merged

Remove deprecated crypto_common re-exports#2260
tarcieri merged 1 commit intomasterfrom
remove-deprecated-crypto-common-re-exports

Conversation

@tarcieri
Copy link
Member

@tarcieri tarcieri commented Feb 2, 2026

It was re-exported as common from aead, cipher, and universal-hash in #2237, with the old name re-exported and "deprecated".

Unfortuntaely, those deprecations don't work as expected, e.g.

#![allow(unused_imports)]
use digest::core_api::EagerHash;
use digest::crypto_common::OutputSizeUser;

This compiles without warnings:

Compiling crypto-common v0.2.0-rc.15
Compiling digest v0.11.0-rc.10
Compiling foobar v0.1.0 (/private/tmp/foobar)
Finished `test` profile [unoptimized + debuginfo] target(s) in 2.05s

Even if we change the re-export to use a deprecated module, ala:

#[deprecated(...)
pub mod crypto_common {
    pub use ::common::*;
}

...that still doesn't work. Unfortunately deprecations only seem to apply to the individual items, and not their imports or the modules they're imported through.

This removes the "deprecated" re-exports (including digest::core_api) since the deprecations don't work, so we might as well migrate to the new names wholesale.

It was re-exported as `common` from `aead`, `cipher`, and
`universal-hash` in #2237, with the old name re-exported and
"deprecated".

Unfortuntaely, those deprecations don't work as expected, e.g.

    #![allow(unused_imports)]
    use digest::core_api::EagerHash;
    use digest::crypto_common::OutputSizeUser;

This compiles without warnings:

   Compiling crypto-common v0.2.0-rc.15
   Compiling digest v0.11.0-rc.10
   Compiling foobar v0.1.0 (/private/tmp/foobar)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 2.05s

Even if we change the re-export to use a deprecated module, ala:

    #[deprecated(...)
    pub mod crypto_common {
        pub use ::common::*;
    }

...that still doesn't work. Unfortunately deprecations only seem to
apply to the individual items, and not their imports or the modules
they're imported through.
@tarcieri tarcieri requested a review from newpavlov February 2, 2026 15:38
@tarcieri tarcieri merged commit c95f051 into master Feb 2, 2026
79 checks passed
@tarcieri tarcieri deleted the remove-deprecated-crypto-common-re-exports branch February 2, 2026 15:46
@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