[package]
edition = "2021"
rust-version = "1.90"
name = "tacet"
version = "0.4.2"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Detect timing side channels in cryptographic code"
homepage = "https://tacet.sh"
documentation = "https://docs.rs/tacet"
readme = "README.md"
keywords = [
"security",
"cryptography",
"timing",
"side-channel",
]
categories = [
"cryptography",
"development-tools::testing",
]
license = "MPL-2.0"
repository = "https://github.com/agucova/tacet"
[features]
default = [
"parallel",
"kperf-default",
"perf-default",
"macros",
"thread-priority",
]
kperf = ["dep:kperf-rs"]
kperf-default = ["kperf"]
macros = ["dep:tacet-macros"]
parallel = [
"dep:rayon",
"tacet-core/parallel",
]
perf = ["dep:perf_event2"]
perf-default = ["perf"]
perf-mmap = [
"perf",
"dep:perf-event-open-sys",
"dep:memmap2",
]
power = []
progress-bars = ["dep:indicatif"]
thread-priority = ["dep:thread-priority"]
[lib]
name = "tacet"
path = "src/lib.rs"
[[example]]
name = "aes"
path = "examples/aes.rs"
[[example]]
name = "compare"
path = "examples/compare.rs"
[[example]]
name = "simple"
path = "examples/simple.rs"
[[example]]
name = "test_xor"
path = "examples/test_xor.rs"
[[test]]
name = "calibration"
path = "tests/calibration.rs"
[[test]]
name = "core"
path = "tests/core.rs"
[[test]]
name = "crypto"
path = "tests/crypto.rs"
[[test]]
name = "investigation"
path = "tests/investigation.rs"
[[test]]
name = "macros"
path = "tests/macros.rs"
[[test]]
name = "perf_comparison"
path = "tests/perf_comparison.rs"
[[test]]
name = "perf_mmap"
path = "tests/perf_mmap.rs"
[[test]]
name = "perf_mmap_validation"
path = "tests/perf_mmap_validation.rs"
[[test]]
name = "platform"
path = "tests/platform.rs"
[[test]]
name = "runtime"
path = "tests/runtime.rs"
[[test]]
name = "synthetic"
path = "tests/synthetic.rs"
[[test]]
name = "unit"
path = "tests/unit.rs"
[[bench]]
name = "comparison"
path = "benches/comparison.rs"
harness = false
[[bench]]
name = "oracle"
path = "benches/oracle.rs"
[[bench]]
name = "perf_overhead"
path = "benches/perf_overhead.rs"
harness = false
[dependencies.colored]
version = "3.0.0"
[dependencies.indicatif]
version = "0.17"
optional = true
[dependencies.nalgebra]
version = "0.34.1"
features = ["std"]
default-features = false
[dependencies.rand]
version = "0.9.2"
[dependencies.rand_distr]
version = "0.5.1"
[dependencies.rand_xoshiro]
version = "0.7"
[dependencies.rayon]
version = "1.11.0"
optional = true
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.148"
[dependencies.statrs]
version = "0.18"
[dependencies.tacet-core]
version = "0.4.2"
[dependencies.tacet-macros]
version = "0.4.2"
optional = true
[dependencies.thread-priority]
version = "1.2.0"
optional = true
[dependencies.tracing]
version = "0.1"
[dev-dependencies.aes]
version = "0.8"
[dev-dependencies.aes-gcm]
version = "0.10.3"
[dev-dependencies.blake2]
version = "0.10"
[dev-dependencies.chacha20poly1305]
version = "0.10"
[dev-dependencies.cipher]
version = "0.4"
features = ["block-padding"]
[dev-dependencies.criterion]
version = "0.8"
[dev-dependencies.curve25519-dalek]
version = "4.1"
[dev-dependencies.dudect-bencher]
version = "0.6"
[dev-dependencies.num-bigint]
version = "0.4"
[dev-dependencies.num-traits]
version = "0.2"
[dev-dependencies.pqcrypto-dilithium]
version = "0.5"
[dev-dependencies.pqcrypto-falcon]
version = "0.3"
[dev-dependencies.pqcrypto-kyber]
version = "0.8"
[dev-dependencies.pqcrypto-sphincsplus]
version = "0.7"
[dev-dependencies.pqcrypto-traits]
version = "0.3.5"
[dev-dependencies.regex]
version = "1.10"
[dev-dependencies.ring]
version = "0.17"
[dev-dependencies.rsa]
version = "0.9"
[dev-dependencies.sha2]
version = "0.10.9"
[dev-dependencies.sha3]
version = "0.10"
[dev-dependencies.subtle]
version = "2.6.1"
[dev-dependencies.tempfile]
version = "3.8"
[dev-dependencies.tokio]
version = "1"
features = [
"rt",
"time",
"macros",
"rt-multi-thread",
]
[dev-dependencies.tracing-subscriber]
version = "0.3.22"
features = ["env-filter"]
[dev-dependencies.trybuild]
version = "1.0"
[dev-dependencies.x25519-dalek]
version = "2.0"
[target.'cfg(target_os = "linux")'.dependencies.libc]
version = "0.2"
[target.'cfg(target_os = "linux")'.dependencies.memmap2]
version = "0.9"
optional = true
[target.'cfg(target_os = "linux")'.dependencies.perf-event-open-sys]
version = "4.0"
optional = true
[target.'cfg(target_os = "linux")'.dependencies.perf_event2]
version = "0.7"
optional = true
package = "perf-event2"
[target.'cfg(target_os = "macos")'.dependencies.kperf-rs]
version = "0.1.1"
optional = true
[target.'cfg(target_os = "macos")'.dependencies.libc]
version = "0.2"