PackageTrack
Sign in Get early access

ctutils

Constant-time utility library with selection and equality testing support targeting cryptographic applications. Supports `const fn` where appropriate. Built on the `cmov` crate which provides architecture-specific predication intrinsics. Heavily inspired by the `subtle` crate.

0.4.2 51M downloads/mo #1202 most downloaded on crates.io RustCrypto/utils

What this package is like to depend on

Last release 4 months ago

02 Apr 2026

Release timing varies

gaps range from 8 days to 2 months

Nearly every release is documented

notes for 9 of 9 stable releases

7 versions withdrawn

withdrawn after publishing

8 months old

22 releases · first in 2025

22 releases in the last 12 months

see the full history below

Release timeline

22 releases · Dec 2025 to Apr 2026
2026
Release Pre-release Withdrawn

Releases

latest 22
  1. 0.4.2 02 Apr 2026
    Release notes

    Fixed

    • cmov v0.5.3 version requirement (#1467)
    Open source →
    Release notes

    Fixed

    • cmov v0.5.3 version requirement (#1467)
    Open source →
  2. 0.4.1 02 Apr 2026
    Release notes

    Added

    • subtle migration guide (#1465)
    Open source →
    Release notes

    Added

    • isize/usize and NonZero* trait impls (#1416)
    • subtle migration guide (#1465)
    Open source →
  3. 0.4.0 20 Jan 2026
    Release notes

    Added

    • core::num::NonZero<T> support (#1368)
    • Pluggable trait impls for [T] and [T; N] using helper traits: (#1388)
      • CtAssign: CtAssignSlice
      • CtEq: CtEqSlice
      • CtSelect: CtSelectArray
    • CtSelectUsingCtAssign marker trait (#1391)

    Changed

    • Split CtAssign out of CtSelect (#1363)
    • Bump cmov to v0.5 (#1386)

    Removed

    • BytesCtEq/BytesCtSelect no longer needed because default [u8] impls are fast (#1376)
    • target_pointer_width gating (#1389)
    • unsafe code (#1405)
    Open source →
  4. 0.4.0-pre.5 19 Jan 2026 pre-release

    Nothing published for this version

  5. 0.4.0-pre.4 18 Jan 2026 pre-release

    Nothing published for this version

  6. 0.4.0-pre.3 18 Jan 2026 pre-release

    Nothing published for this version

  7. 0.4.0-pre.2 18 Jan 2026 pre-release

    Nothing published for this version

  8. 0.4.0-pre.1 17 Jan 2026 pre-release

    Nothing published for this version

  9. 0.4.0-pre.0 16 Jan 2026 pre-release

    Nothing published for this version

  10. 0.3.2 16 Jan 2026
    Release notes

    Added

    • BytesCtEq and BytesCtSelect traits (#1359)
    • CtFind trait (#1361)
    • CtLookup trait (#1362)

    Changed

    • Bump cmov crate dependency to v0.5.0-pre.0 (#1357)
    Open source →
  11. 0.3.1 03 Jan 2026
    Release notes

    Added

    • Choice::to_u8_mask/to_u16_mask (#1322)
    • Choice::select_u8/select_u16 (#1324)
    Open source →
  12. 0.3.0 29 Dec 2025
    Release notes

    Removed

    • Choice::new (#1314)
    • (Partial)Eq impls for Choice (#1315)
    Open source →
  13. 0.2.3 29 Dec 2025
    Release notes

    Added

    • Impl From<u8> for Choice (#1309)
    • Choice::from_u8* and from_u16* (#1311)

    Changed

    • Deprecate Choice::new (#1312)
    Open source →
  14. 0.2.2 28 Dec 2025
    Release notes

    Added

    • Unsigned CtNeg impls (#1306)
    Open source →
  15. 0.2.1 28 Dec 2025
    Release notes

    Added

    • Enhanced subtle interop (#1289)

    Security

    • Pin to cmov v0.4.3+ - includes important security fixes (#1304)
    Open source →
  16. 0.2.0 27 Dec 2025 withdrawn
    Release notes

    Added

    • Additional Choice::from_u128* constructors (#1285)
    • CtNeg trait (#1286)

    Changed

    • Renamed Choice::from_*_nonzero => from_*_nz (#1287)
    Open source →
  17. 0.1.4 27 Dec 2025 withdrawn
    Release notes

    Added

    • Impl CtEq/CtSelect for isize (#1283)
    Open source →
  18. 0.1.3 27 Dec 2025 withdrawn
    Release notes

    Fixed

    • Rustdoc syntax for variable-time-related warning text (#1278)
    Open source →
  19. 0.1.2 27 Dec 2025 withdrawn
    Release notes

    Added

    • Additional methods for CtOption (#1274):
      • some
      • none
      • into_option_copied
      • filter_by
      • as_inner_unchecked
      • to_inner_unchecked
    • Default impl for CtOption (#1274)
    • map! and unwrap_or! macros (#1274)
    • u128 methods for Choice (#1277):
      • from_u128_le
      • from_u128_lsb
      • select_u128
    Open source →
  20. 0.1.1 26 Dec 2025 withdrawn
    Release notes

    Added

    • Additional const fn constructor and predication methods for Choice (#1266, #1272)
    Open source →
  21. 0.1.0 20 Dec 2025 withdrawn
    Release notes
    • Initial release
    Open source →
  22. 0.0.0 18 Dec 2025 withdrawn

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive