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.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "adler"
|
||||
version = "1.0.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
|
||||
|
||||
[[package]]
|
||||
name = "aho-corasick"
|
||||
version = "0.7.18"
|
||||
@ -126,6 +132,15 @@ dependencies = [
|
||||
"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]]
|
||||
name = "crunchy"
|
||||
version = "0.2.2"
|
||||
@ -140,6 +155,7 @@ dependencies = [
|
||||
"bigdecimal",
|
||||
"clap",
|
||||
"env_logger",
|
||||
"flate2",
|
||||
"log",
|
||||
"primitive-types",
|
||||
"rand 0.7.3",
|
||||
@ -175,6 +191,16 @@ dependencies = [
|
||||
"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]]
|
||||
name = "funty"
|
||||
version = "2.0.0"
|
||||
@ -302,6 +328,15 @@ version = "2.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
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]]
|
||||
name = "num-bigint"
|
||||
version = "0.4.3"
|
||||
|
@ -18,3 +18,4 @@ serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = "*"
|
||||
base64 = "*"
|
||||
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="
|
||||
public_key = "eyJQb2ludCI6eyJ4Ijp7InZhbHVlIjoiMHg1NDhlZWQwYzNlYzc5OTJlMzhhODkyNGJjMDk4NTZmZDcwOTNjZDIyZjQ3N2ZjNjA0OGQ3ZWYxNjJhNDM3Y2UiLCJwIjoiMHhmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZWZmZmZmYzJmIn0sInkiOnsidmFsdWUiOiIweGU3OTVlNGZmMDdlOTYyYmUzNzFlYmJhYWVlYWI2ZDBkZmVlNjg5YmQ3MzlmYjk5MGI1NmE0NDQxZTJhZGFiNzIiLCJwIjoiMHhmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZWZmZmZmYzJmIn0sImEiOnsidmFsdWUiOiIweDAiLCJwIjoiMHhmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZWZmZmZmYzJmIn0sImIiOnsidmFsdWUiOiIweDciLCJwIjoiMHhmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZWZmZmZmYzJmIn19fQ=="
|
||||
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
|
@ -112,6 +112,7 @@ pub const STD_FUNC: fn(
|
||||
};
|
||||
let ec = encryption.plain_to_ec_point(plain);
|
||||
let eep = encryption.encrypt(ec, data.public_key.unwrap(), None);
|
||||
println!("{}", ec);
|
||||
ExternalFuncReturn {
|
||||
status: ExternalFuncStatus::SUCCESS,
|
||||
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"),
|
||||
};
|
||||
let plain = Encryption::decrypt(eep, data.private_key.unwrap());
|
||||
println!("{}", plain);
|
||||
let plain = encryption.ec_point_to_plain(plain);
|
||||
ExternalFuncReturn {
|
||||
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::EllipticCurvePoint;
|
||||
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::ExternalFuncStatus;
|
||||
use gpsl::node::Node;
|
||||
@ -17,6 +20,7 @@ use serde::Deserialize;
|
||||
use serde::Serialize;
|
||||
use std::env;
|
||||
use std::fs::File;
|
||||
use std::io::prelude::*;
|
||||
use std::io::BufRead;
|
||||
use std::io::BufReader;
|
||||
use std::io::Read;
|
||||
@ -71,9 +75,12 @@ struct Config {
|
||||
impl Config {
|
||||
fn read_file(file: &str) -> String {
|
||||
let mut file = fs::File::open(file).unwrap();
|
||||
let mut contents = String::new();
|
||||
file.read_to_string(&mut contents).unwrap();
|
||||
contents
|
||||
let mut contents = Vec::new();
|
||||
file.read_to_end(&mut contents).unwrap();
|
||||
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 {
|
||||
let file = Config::read_file(file);
|
||||
@ -83,7 +90,7 @@ impl Config {
|
||||
if let Some(private_key) = config.private_key {
|
||||
let decoded = base64::decode(&private_key).unwrap();
|
||||
let s = std::str::from_utf8(&decoded).unwrap();
|
||||
Some(U512::from_str(s).unwrap())
|
||||
Some(U512::from_str_radix(s, 10).unwrap())
|
||||
} else {
|
||||
None
|
||||
}
|
||||
@ -93,7 +100,8 @@ impl Config {
|
||||
if let Some(public_key) = config.public_key {
|
||||
let decoded = base64::decode(&public_key).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 {
|
||||
None
|
||||
}
|
||||
@ -113,7 +121,7 @@ impl Config {
|
||||
[Mod(4767914906170010398, 6139062703770505681), Mod(2445476831433994309, 6139062703770505681)]]]
|
||||
*/
|
||||
|
||||
fn main() {
|
||||
fn o_main() {
|
||||
let p = U512::from_str_radix("1009", 10).unwrap();
|
||||
|
||||
let secp256_k1_a = FiniteFieldElement::new(U512::from(37u8), p);
|
||||
@ -139,6 +147,7 @@ fn main() {
|
||||
b: secp256_k1_b,
|
||||
}
|
||||
};
|
||||
|
||||
let r = U512::from_str_radix("7", 10).unwrap();
|
||||
|
||||
let f = EllipticCurvePoint::weil(pp, pd, r);
|
||||
@ -149,11 +158,11 @@ fn main() {
|
||||
let q = pp * s;
|
||||
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 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 t1 = pp * ra;
|
||||
@ -264,7 +273,7 @@ fn generate_encryption() -> Encryption {
|
||||
}
|
||||
}
|
||||
|
||||
fn o_main() {
|
||||
fn main() {
|
||||
env::set_var("RUST_LOG", "info");
|
||||
env_logger::init();
|
||||
let args = Args::parse();
|
||||
@ -434,8 +443,10 @@ fn client(args: Args) {
|
||||
|
||||
let mut file = File::create("gpsl_conf.toml").unwrap();
|
||||
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();
|
||||
file.write_all(&e.finish().unwrap()).unwrap();
|
||||
|
||||
config
|
||||
};
|
||||
|
Reference in New Issue
Block a user