Change crate name to avoid annoying warning / add bit per symbol parameter in rust function
This commit is contained in:
22
Cargo.lock
generated
22
Cargo.lock
generated
@@ -2,17 +2,6 @@
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "SP800-90B-rs"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"autocxx",
|
||||
"autocxx-build",
|
||||
"cxx",
|
||||
"miette",
|
||||
"rand",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "addr2line"
|
||||
version = "0.20.0"
|
||||
@@ -812,6 +801,17 @@ version = "0.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043"
|
||||
|
||||
[[package]]
|
||||
name = "sp800_90b_rs"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"autocxx",
|
||||
"autocxx-build",
|
||||
"cxx",
|
||||
"miette",
|
||||
"rand",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "strum_macros"
|
||||
version = "0.24.3"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
[package]
|
||||
name = "SP800-90B-rs"
|
||||
name = "sp800_90b_rs"
|
||||
version = "0.1.0"
|
||||
build = "build.rs"
|
||||
edition = "2021"
|
||||
|
||||
@@ -54,28 +54,6 @@ public:
|
||||
// distribution tests
|
||||
bool iid_tests() const {
|
||||
IidTestCase tc;
|
||||
// tc.mean = rawmean;
|
||||
// tc.median = median;
|
||||
// tc.binary = is_binary;
|
||||
//
|
||||
// // to change if we want to compute conditionate data
|
||||
// bool initial_entropy = true;
|
||||
|
||||
// double H_original = data.word_size;
|
||||
// double H_bitstring = 1.0;
|
||||
|
||||
// // Compute the min-entropy of the dataset
|
||||
// if (initial_entropy) {
|
||||
// H_original = h_most_common();
|
||||
// }
|
||||
// tc.h_original = H_original;
|
||||
|
||||
// if (((data.alph_size > 2) || !initial_entropy)) {
|
||||
// H_bitstring = h_bitstring_most_common();
|
||||
// }
|
||||
// tc.h_bitstring = H_bitstring;
|
||||
|
||||
// bool cst = chi_square_tests_();
|
||||
return chi_square_tests_() && lrs_tests_() && permutation_tests_();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
#ifndef NIST_HPP
|
||||
#define NIST_HPP
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wunused-function"
|
||||
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||
|
||||
#include "../../SP800-90B_EntropyAssessment/cpp/shared/utils.h"
|
||||
|
||||
#define NO_NIST_DEFS
|
||||
@@ -48,6 +52,8 @@ typedef struct data_t data;
|
||||
#include "../../SP800-90B_EntropyAssessment/cpp/non_iid/multi_mcw_test.h"
|
||||
#include "../../SP800-90B_EntropyAssessment/cpp/non_iid/multi_mmc_test.h"
|
||||
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
#include <limits.h>
|
||||
#include <omp.h>
|
||||
|
||||
@@ -57,40 +63,6 @@ public:
|
||||
Stats(data_t &data) { calc_stats(&data, this->rawmean, this->median); };
|
||||
};
|
||||
|
||||
void SAalgs(const byte data[], const long len, const int alph_size,
|
||||
double &t_tuple_res, double &lrs_res, const int verbose,
|
||||
const char *label);
|
||||
|
||||
double most_common(byte *data, const long len, const int alph_size,
|
||||
const int verbose, const char *label);
|
||||
double multi_mcw_test(byte *data, const long len, const int alph_size,
|
||||
const int verbose, const char *label);
|
||||
double collision_test(byte *data, const long len, const int verbose,
|
||||
const char *label);
|
||||
double markov_test(byte *data, const long len, const int verbose,
|
||||
const char *label);
|
||||
double multi_mmc_test(byte *data, const long len, const int alph_size,
|
||||
const int verbose, const char *label);
|
||||
double compression_test(byte *data, const long len, const int verbose,
|
||||
const char *label);
|
||||
double lag_test(byte *data, const long len, const int alph_size,
|
||||
const int verbose, const char *label);
|
||||
double LZ78Y_test(byte *data, const long len, const int alph_size,
|
||||
const int verbose, const char *label);
|
||||
|
||||
data_t construct_data_t(const char *samples, int sample_length,
|
||||
int bits_per_symbol);
|
||||
void free_data(data_t *data);
|
||||
|
||||
bool len_LRS_test(const byte data[], const int length, const int k,
|
||||
const int verbosity, const char *label);
|
||||
|
||||
bool chi_square_tests(const byte data[], const int length, int alph_size,
|
||||
const int verbosity);
|
||||
|
||||
bool permutation_tests(const data_t *data, double rawmean, double median,
|
||||
int verbosity, IidTestCase &tc);
|
||||
|
||||
data_t construct_data_t(const char *symbols, int symbols_len,
|
||||
int bits_per_word) {
|
||||
|
||||
|
||||
@@ -8,9 +8,8 @@ include_cpp! {
|
||||
|
||||
use ffi::Data as Data_;
|
||||
|
||||
pub fn generate_data(samples: &[i8]) -> UniquePtr<Data_> {
|
||||
pub fn generate_data(samples: &[i8], bits_per_symbol: i32) -> UniquePtr<Data_> {
|
||||
let samples_length = samples.len() as i32;
|
||||
let bits_per_symbol = 8;
|
||||
|
||||
unsafe {
|
||||
ffi::Data::new2(
|
||||
|
||||
12
src/main.rs
12
src/main.rs
@@ -1,13 +1,17 @@
|
||||
use SP800_90B_rs::generate_data;
|
||||
use rand::Rng;
|
||||
use sp800_90b_rs::generate_data;
|
||||
|
||||
fn main() {
|
||||
// println!("Hello, world!");
|
||||
|
||||
let mut rng = rand::thread_rng();
|
||||
let samples: [i8; 1_000_000] = rng.gen();
|
||||
|
||||
let data = generate_data(&samples);
|
||||
let mut samples = [0_i8; 1_000_000];
|
||||
for i in 0..samples.len(){
|
||||
samples[i] = rng.gen_range(0..=1);
|
||||
}
|
||||
// let samples: [i8; 1_000_000] = rng.gen();
|
||||
|
||||
let data = generate_data(&samples, 1);
|
||||
|
||||
let a = data.iid_tests();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user