cmov 0.5.2

Conditional move CPU intrinsics which are guaranteed on major platforms (ARM32/ARM64, x86/x86_64, RISC-V) to execute in constant-time and not be rewritten as branches by the compiler. Provides wrappers for the CMOV family of instructions on x86/x86_64 and CSEL on AArch64, along with a portable "best-effort" pure Rust fallback implementation.
Documentation
[dev-dependencies.proptest]
version = "1.9"

[lib]
name = "cmov"
path = "src/lib.rs"

[package]
authors = ["RustCrypto Developers"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
categories = ["cryptography", "hardware-support", "no-std"]
description = """
Conditional move CPU intrinsics which are guaranteed on major platforms (ARM32/ARM64, x86/x86_64,
RISC-V) to execute in constant-time and not be rewritten as branches by the compiler. Provides
wrappers for the CMOV family of instructions on x86/x86_64 and CSEL on AArch64, along with a
portable "best-effort" pure Rust fallback implementation.
"""
documentation = "https://docs.rs/cmov"
edition = "2024"
keywords = ["constant-time", "crypto", "intrinsics"]
license = "Apache-2.0 OR MIT"
name = "cmov"
readme = "README.md"
repository = "https://github.com/RustCrypto/utils"
rust-version = "1.85"
version = "0.5.2"

[package.metadata.docs.rs]
all-features = true

[[test]]
name = "core_impls"
path = "tests/core_impls.rs"

[[test]]
name = "proptests"
path = "tests/proptests.rs"

[[test]]
name = "regression"
path = "tests/regression.rs"