cooltest 0.2.0

Randomness testing tool
# CoolTest

CoolTest is a randomness-testing tool. It uses first half of provided data to construct a distinguisher based on a histogram construction. Then it evaluates the distinguisher on the second half of the data to evaluate the probability of the data being generated by true random number generator.

This tool is based on our paper published at [IFIP SEC 2025](https://link.springer.com/chapter/10.1007/978-3-031-92886-4_1). 


# How to use CoolTest

## Prerequisites

- Rust: Ensure you have Rust installed. If not, install it from [rust-lang.org]https://rust-lang.org.

## Build Instructions

Clone the repository:

```
git clone https://github.com/jirigav/cooltest.git
cd cooltest
```

Build the project in release mode:

```
cargo build --release
```

## Run the tool

After building, you can run CoolTest with default parameters using the following command:

```
./target/release/cooltest <file>
```

Replace <file> with the path to the binary file you wish to test.

To view all available options:

```
./target/release/cooltest --help
```

### Alternative p-value computation

For a more precise p-value computation, the python library SciPy can be used. 

Python library SciPy (version 1.7.0 or newer) is required.

Build with:

```
cargo build --release --features scipy
```


# License
CoolTest is released under the MIT license. See [LICENSE](LICENSE) for more information.