mirror of
https://github.com/mii443/encrypt.git
synced 2025-08-22 15:05:33 +00:00
add config file compression
This commit is contained in:
35
Cargo.lock
generated
35
Cargo.lock
generated
@ -2,6 +2,12 @@
|
|||||||
# It is not intended for manual editing.
|
# It is not intended for manual editing.
|
||||||
version = 3
|
version = 3
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "adler"
|
||||||
|
version = "1.0.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aho-corasick"
|
name = "aho-corasick"
|
||||||
version = "0.7.18"
|
version = "0.7.18"
|
||||||
@ -126,6 +132,15 @@ dependencies = [
|
|||||||
"os_str_bytes",
|
"os_str_bytes",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "crc32fast"
|
||||||
|
version = "1.3.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crunchy"
|
name = "crunchy"
|
||||||
version = "0.2.2"
|
version = "0.2.2"
|
||||||
@ -140,6 +155,7 @@ dependencies = [
|
|||||||
"bigdecimal",
|
"bigdecimal",
|
||||||
"clap",
|
"clap",
|
||||||
"env_logger",
|
"env_logger",
|
||||||
|
"flate2",
|
||||||
"log",
|
"log",
|
||||||
"primitive-types",
|
"primitive-types",
|
||||||
"rand 0.7.3",
|
"rand 0.7.3",
|
||||||
@ -175,6 +191,16 @@ dependencies = [
|
|||||||
"static_assertions",
|
"static_assertions",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "flate2"
|
||||||
|
version = "1.0.24"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6"
|
||||||
|
dependencies = [
|
||||||
|
"crc32fast",
|
||||||
|
"miniz_oxide",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "funty"
|
name = "funty"
|
||||||
version = "2.0.0"
|
version = "2.0.0"
|
||||||
@ -302,6 +328,15 @@ version = "2.5.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
|
checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "miniz_oxide"
|
||||||
|
version = "0.5.3"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc"
|
||||||
|
dependencies = [
|
||||||
|
"adler",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "num-bigint"
|
name = "num-bigint"
|
||||||
version = "0.4.3"
|
version = "0.4.3"
|
||||||
|
@ -18,3 +18,4 @@ serde = { version = "1.0", features = ["derive"] }
|
|||||||
serde_json = "*"
|
serde_json = "*"
|
||||||
base64 = "*"
|
base64 = "*"
|
||||||
toml = "*"
|
toml = "*"
|
||||||
|
flate2 = "1.0.24"
|
||||||
|
15
client2.gpsl
Normal file
15
client2.gpsl
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
fn main() {
|
||||||
|
let a = encrypt(16)
|
||||||
|
println("a: " + decrypt(a))
|
||||||
|
let b = encrypt(60)
|
||||||
|
println("b: " + b)
|
||||||
|
let c = encrypt(48)
|
||||||
|
println("c: " + c)
|
||||||
|
let d = encrypt(2)
|
||||||
|
println("d: " + d)
|
||||||
|
let e = encrypt(24)
|
||||||
|
println("e: " + e)
|
||||||
|
let r = a + b + c + d + e
|
||||||
|
println("r: " + decrypt(r));
|
||||||
|
println(decrypt(r) - 15)
|
||||||
|
}
|
@ -1,2 +1 @@
|
|||||||
private_key = "NDM1ODIxMjU2NDA1MTc3NjExNTc0MTk2NjQ5MjUyMzMxMDA5MTMyMjMwNTA1MjA1MTA1OTMzMTA0NjEwODU3MzU3NDg3NDA1Njk5ODU="
|
x<EFBFBD><EFBFBD>RAN<EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/HSġ<EFBFBD><EFBFBD>NSG<EFBFBD>Z<EFBFBD><EFBFBD><EFBFBD><EFBFBD>hZ; T<EFBFBD><EFBFBD>į<EFBFBD> <EFBFBD><EFBFBD><EFBFBD>*<EFBFBD>ڙ<EFBFBD>hf<EFBFBD><EFBFBD><EFBFBD>?<EFBFBD>?<EFBFBD>O<EFBFBD>q<EFBFBD>,&S-<EFBFBD><EFBFBD><EFBFBD><EFBFBD>s.<EFBFBD><EFBFBD><EFBFBD>?<EFBFBD>fИ <EFBFBD>Fp̢<EFBFBD><EFBFBD><EFBFBD><EFBFBD>d<EFBFBD>|ZH<EFBFBD><EFBFBD><EFBFBD><EFBFBD>a5ᢊ<<EFBFBD>cK?<EFBFBD>0<EFBFBD>]<EFBFBD>g<EFBFBD><EFBFBD><EFBFBD><EFBFBD>t<EFBFBD>w<EFBFBD><EFBFBD><EFBFBD>=<EFBFBD>i<EFBFBD><EFBFBD><EFBFBD>a<EFBFBD>n<EFBFBD><EFBFBD>0s<EFBFBD>c<EFBFBD><EFBFBD><EFBFBD>o<EFBFBD><EFBFBD><EFBFBD>7
|
||||||
public_key = "eyJQb2ludCI6eyJ4Ijp7InZhbHVlIjoiMHg1NDhlZWQwYzNlYzc5OTJlMzhhODkyNGJjMDk4NTZmZDcwOTNjZDIyZjQ3N2ZjNjA0OGQ3ZWYxNjJhNDM3Y2UiLCJwIjoiMHhmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZWZmZmZmYzJmIn0sInkiOnsidmFsdWUiOiIweGU3OTVlNGZmMDdlOTYyYmUzNzFlYmJhYWVlYWI2ZDBkZmVlNjg5YmQ3MzlmYjk5MGI1NmE0NDQxZTJhZGFiNzIiLCJwIjoiMHhmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZWZmZmZmYzJmIn0sImEiOnsidmFsdWUiOiIweDAiLCJwIjoiMHhmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZWZmZmZmYzJmIn0sImIiOnsidmFsdWUiOiIweDciLCJwIjoiMHhmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZWZmZmZmYzJmIn19fQ=="
|
|
@ -112,6 +112,7 @@ pub const STD_FUNC: fn(
|
|||||||
};
|
};
|
||||||
let ec = encryption.plain_to_ec_point(plain);
|
let ec = encryption.plain_to_ec_point(plain);
|
||||||
let eep = encryption.encrypt(ec, data.public_key.unwrap(), None);
|
let eep = encryption.encrypt(ec, data.public_key.unwrap(), None);
|
||||||
|
println!("{}", ec);
|
||||||
ExternalFuncReturn {
|
ExternalFuncReturn {
|
||||||
status: ExternalFuncStatus::SUCCESS,
|
status: ExternalFuncStatus::SUCCESS,
|
||||||
value: Some(Variable::PureEncrypted { value: eep }),
|
value: Some(Variable::PureEncrypted { value: eep }),
|
||||||
@ -124,6 +125,7 @@ pub const STD_FUNC: fn(
|
|||||||
_ => panic!("decrypt: first argument must be a pure encrypted point"),
|
_ => panic!("decrypt: first argument must be a pure encrypted point"),
|
||||||
};
|
};
|
||||||
let plain = Encryption::decrypt(eep, data.private_key.unwrap());
|
let plain = Encryption::decrypt(eep, data.private_key.unwrap());
|
||||||
|
println!("{}", plain);
|
||||||
let plain = encryption.ec_point_to_plain(plain);
|
let plain = encryption.ec_point_to_plain(plain);
|
||||||
ExternalFuncReturn {
|
ExternalFuncReturn {
|
||||||
status: ExternalFuncStatus::SUCCESS,
|
status: ExternalFuncStatus::SUCCESS,
|
||||||
|
31
src/main.rs
31
src/main.rs
@ -5,6 +5,9 @@ use common::finite_field::FiniteFieldElement;
|
|||||||
use elliptic_curve::elliptic_curve::EllipticCurve;
|
use elliptic_curve::elliptic_curve::EllipticCurve;
|
||||||
use elliptic_curve::elliptic_curve::EllipticCurvePoint;
|
use elliptic_curve::elliptic_curve::EllipticCurvePoint;
|
||||||
use elliptic_curve::encryption::Encryption;
|
use elliptic_curve::encryption::Encryption;
|
||||||
|
use flate2::read::ZlibDecoder;
|
||||||
|
use flate2::write::ZlibEncoder;
|
||||||
|
use flate2::Compression;
|
||||||
use gpsl::external_function::ExternalFuncReturn;
|
use gpsl::external_function::ExternalFuncReturn;
|
||||||
use gpsl::external_function::ExternalFuncStatus;
|
use gpsl::external_function::ExternalFuncStatus;
|
||||||
use gpsl::node::Node;
|
use gpsl::node::Node;
|
||||||
@ -17,6 +20,7 @@ use serde::Deserialize;
|
|||||||
use serde::Serialize;
|
use serde::Serialize;
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
|
use std::io::prelude::*;
|
||||||
use std::io::BufRead;
|
use std::io::BufRead;
|
||||||
use std::io::BufReader;
|
use std::io::BufReader;
|
||||||
use std::io::Read;
|
use std::io::Read;
|
||||||
@ -71,9 +75,12 @@ struct Config {
|
|||||||
impl Config {
|
impl Config {
|
||||||
fn read_file(file: &str) -> String {
|
fn read_file(file: &str) -> String {
|
||||||
let mut file = fs::File::open(file).unwrap();
|
let mut file = fs::File::open(file).unwrap();
|
||||||
let mut contents = String::new();
|
let mut contents = Vec::new();
|
||||||
file.read_to_string(&mut contents).unwrap();
|
file.read_to_end(&mut contents).unwrap();
|
||||||
contents
|
let mut d = ZlibDecoder::new(&contents[..]);
|
||||||
|
let mut s = String::new();
|
||||||
|
d.read_to_string(&mut s).unwrap();
|
||||||
|
s
|
||||||
}
|
}
|
||||||
pub fn from_file(file: &str) -> Self {
|
pub fn from_file(file: &str) -> Self {
|
||||||
let file = Config::read_file(file);
|
let file = Config::read_file(file);
|
||||||
@ -83,7 +90,7 @@ impl Config {
|
|||||||
if let Some(private_key) = config.private_key {
|
if let Some(private_key) = config.private_key {
|
||||||
let decoded = base64::decode(&private_key).unwrap();
|
let decoded = base64::decode(&private_key).unwrap();
|
||||||
let s = std::str::from_utf8(&decoded).unwrap();
|
let s = std::str::from_utf8(&decoded).unwrap();
|
||||||
Some(U512::from_str(s).unwrap())
|
Some(U512::from_str_radix(s, 10).unwrap())
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
@ -93,7 +100,8 @@ impl Config {
|
|||||||
if let Some(public_key) = config.public_key {
|
if let Some(public_key) = config.public_key {
|
||||||
let decoded = base64::decode(&public_key).unwrap();
|
let decoded = base64::decode(&public_key).unwrap();
|
||||||
let s = std::str::from_utf8(&decoded).unwrap();
|
let s = std::str::from_utf8(&decoded).unwrap();
|
||||||
Some(EllipticCurvePoint::from_str(s).unwrap())
|
let r = EllipticCurvePoint::from_str(s).unwrap();
|
||||||
|
Some(r)
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
@ -113,7 +121,7 @@ impl Config {
|
|||||||
[Mod(4767914906170010398, 6139062703770505681), Mod(2445476831433994309, 6139062703770505681)]]]
|
[Mod(4767914906170010398, 6139062703770505681), Mod(2445476831433994309, 6139062703770505681)]]]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
fn main() {
|
fn o_main() {
|
||||||
let p = U512::from_str_radix("1009", 10).unwrap();
|
let p = U512::from_str_radix("1009", 10).unwrap();
|
||||||
|
|
||||||
let secp256_k1_a = FiniteFieldElement::new(U512::from(37u8), p);
|
let secp256_k1_a = FiniteFieldElement::new(U512::from(37u8), p);
|
||||||
@ -139,6 +147,7 @@ fn main() {
|
|||||||
b: secp256_k1_b,
|
b: secp256_k1_b,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let r = U512::from_str_radix("7", 10).unwrap();
|
let r = U512::from_str_radix("7", 10).unwrap();
|
||||||
|
|
||||||
let f = EllipticCurvePoint::weil(pp, pd, r);
|
let f = EllipticCurvePoint::weil(pp, pd, r);
|
||||||
@ -149,11 +158,11 @@ fn main() {
|
|||||||
let q = pp * s;
|
let q = pp * s;
|
||||||
let qd = pd * sd;
|
let qd = pd * sd;
|
||||||
|
|
||||||
let ra = U512::from_str_radix("1", 10).unwrap();
|
let ra = U512::from_str_radix("20", 10).unwrap();
|
||||||
let rad = U512::from_str_radix("26", 10).unwrap();
|
let rad = U512::from_str_radix("26", 10).unwrap();
|
||||||
|
|
||||||
let m = U512::from_str_radix("2", 10).unwrap();
|
let m = U512::from_str_radix("2", 10).unwrap();
|
||||||
let md = U512::from_str_radix("3", 10).unwrap();
|
let md = U512::from_str_radix("2", 10).unwrap();
|
||||||
|
|
||||||
let s1 = pp * m + q * ra;
|
let s1 = pp * m + q * ra;
|
||||||
let t1 = pp * ra;
|
let t1 = pp * ra;
|
||||||
@ -264,7 +273,7 @@ fn generate_encryption() -> Encryption {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn o_main() {
|
fn main() {
|
||||||
env::set_var("RUST_LOG", "info");
|
env::set_var("RUST_LOG", "info");
|
||||||
env_logger::init();
|
env_logger::init();
|
||||||
let args = Args::parse();
|
let args = Args::parse();
|
||||||
@ -434,8 +443,10 @@ fn client(args: Args) {
|
|||||||
|
|
||||||
let mut file = File::create("gpsl_conf.toml").unwrap();
|
let mut file = File::create("gpsl_conf.toml").unwrap();
|
||||||
let config_file = ConfigFile::from_config(config.clone());
|
let config_file = ConfigFile::from_config(config.clone());
|
||||||
file.write_all(serde_json::to_string(&config_file).unwrap().as_bytes())
|
let mut e = ZlibEncoder::new(Vec::new(), Compression::default());
|
||||||
|
e.write_all(toml::to_string(&config_file).unwrap().as_bytes())
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
file.write_all(&e.finish().unwrap()).unwrap();
|
||||||
|
|
||||||
config
|
config
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user