diff --git a/.gitignore b/.gitignore index ba51dfb7f..fd32d8964 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -rust-security-curves/target/ -rust-security-curves/Cargo.lock +concrete-security-curves/target/ +concrete-security-curves/Cargo.lock diff --git a/Makefile b/Makefile index d964915f3..93e4799cf 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,18 @@ CURVES_JSON_PATH=json/curves.json -CURVES_CPP_GEN_H=cpp/include/concrete/curves.gen.h +CURVES_CPP_GEN_H=concrete-security-curves-cpp/include/concrete/curves.gen.h +CURVES_RUST_GEN_TXT=concrete-security-curves-rust/src/curves.gen.rs $(CURVES_JSON_PATH): verify_curves.py sage verify_curves.py > $@ -$(CURVES_CPP_GEN_H): cpp/gen_header.py $(CURVES_JSON_PATH) - cat $(CURVES_JSON_PATH) | python cpp/gen_header.py > $(CURVES_CPP_GEN_H) +$(CURVES_CPP_GEN_H): concrete-security-curves-cpp/gen_header.py $(CURVES_JSON_PATH) + cat $(CURVES_JSON_PATH) | python concrete-security-curves-cpp/gen_header.py > $(CURVES_CPP_GEN_H) -generate-cpp-header: $(CURVES_CPP_GEN_H) +generate-cpp: $(CURVES_CPP_GEN_H) + +$(CURVES_RUST_GEN_TXT): rust/gen_table.py $(CURVES_JSON_PATH) + cat $(CURVES_JSON_PATH) | python concrete-security-curves-cpp/gen_table.py > $(CURVES_CPP_GEN_H) + +generate-rust: $(CURVES_RUST_GEN_TXT) .PHONY: generate-cpp-header \ No newline at end of file diff --git a/cpp/gen_header.py b/concrete-security-curves-cpp/gen_header.py similarity index 100% rename from cpp/gen_header.py rename to concrete-security-curves-cpp/gen_header.py diff --git a/cpp/include/concrete/curves.gen.h b/concrete-security-curves-cpp/include/concrete/curves.gen.h similarity index 100% rename from cpp/include/concrete/curves.gen.h rename to concrete-security-curves-cpp/include/concrete/curves.gen.h diff --git a/cpp/include/concrete/curves.h b/concrete-security-curves-cpp/include/concrete/curves.h similarity index 100% rename from cpp/include/concrete/curves.h rename to concrete-security-curves-cpp/include/concrete/curves.h diff --git a/concrete-security-curves-rust/Cargo.lock b/concrete-security-curves-rust/Cargo.lock new file mode 100644 index 000000000..27661b8fc --- /dev/null +++ b/concrete-security-curves-rust/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "concrete-security-curves" +version = "0.1.0" diff --git a/rust-security-curves/Cargo.toml b/concrete-security-curves-rust/Cargo.toml similarity index 82% rename from rust-security-curves/Cargo.toml rename to concrete-security-curves-rust/Cargo.toml index facecdebe..a366a203a 100644 --- a/rust-security-curves/Cargo.toml +++ b/concrete-security-curves-rust/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "rust-security-curves" +name = "concrete-security-curves" version = "0.1.0" edition = "2021" diff --git a/concrete-security-curves-rust/gen_table.py b/concrete-security-curves-rust/gen_table.py new file mode 100644 index 000000000..3f2040fe9 --- /dev/null +++ b/concrete-security-curves-rust/gen_table.py @@ -0,0 +1,13 @@ +import sys, json; + +def print_curve(data): + print(f' ({data["security_level"]}, SecurityWeights {{ slope: {data["slope"]}, bias: {data["bias"]}, minimal_lwe_dimension: {data["minimal_lwe_dimension"]} }}),') + + +def print_rust_curves_declaration(datas): + print("[") + for data in datas: + print_curve(data) + print("]") + +print_rust_curves_declaration(json.load(sys.stdin)) \ No newline at end of file diff --git a/rust-security-curves/verified_curves.txt b/concrete-security-curves-rust/src/curves.gen.rs similarity index 100% rename from rust-security-curves/verified_curves.txt rename to concrete-security-curves-rust/src/curves.gen.rs diff --git a/rust-security-curves/src/lib.rs b/concrete-security-curves-rust/src/lib.rs similarity index 98% rename from rust-security-curves/src/lib.rs rename to concrete-security-curves-rust/src/lib.rs index 117c3a993..75890f2e7 100644 --- a/rust-security-curves/src/lib.rs +++ b/concrete-security-curves-rust/src/lib.rs @@ -1,4 +1,4 @@ -const SECURITY_WEIGHTS_ARRAY: [(u64, SecurityWeights); 9] = include!("../verified_curves.txt"); +const SECURITY_WEIGHTS_ARRAY: [(u64, SecurityWeights); 9] = include!("./curves.gen.rs"); #[derive(Clone, Copy)] pub struct SecurityWeights { diff --git a/rust-security-curves/gen_table.py b/rust-security-curves/gen_table.py deleted file mode 100644 index da0a543ae..000000000 --- a/rust-security-curves/gen_table.py +++ /dev/null @@ -1,13 +0,0 @@ -import sys, json; - -def print_curve(data): - print(f' ({data["bits"]}, SecurityWeights {{ slope: {data["linear_term1"]}, bias: {data["linear_term2"]}, minimal_lwe_dimension: {data["n_alpha"]} }}),') - - -def print_rust_curves_declaration(datas): - print("[") - for data in datas: - print_curve(data) - print("]") - -print_rust_curves_declaration(json.load(open("json/curves.json"))) \ No newline at end of file