Skip to content

Commit 1b82fd3

Browse files
committed
add config file compression
1 parent 96709e5 commit 1b82fd3

File tree

6 files changed

+75
-12
lines changed

6 files changed

+75
-12
lines changed

Cargo.lock

+35
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,4 @@ serde = { version = "1.0", features = ["derive"] }
1818
serde_json = "*"
1919
base64 = "*"
2020
toml = "*"
21+
flate2 = "1.0.24"

client2.gpsl

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
fn main() {
2+
let a = encrypt(16)
3+
println("a: " + decrypt(a))
4+
let b = encrypt(60)
5+
println("b: " + b)
6+
let c = encrypt(48)
7+
println("c: " + c)
8+
let d = encrypt(2)
9+
println("d: " + d)
10+
let e = encrypt(24)
11+
println("e: " + e)
12+
let r = a + b + c + d + e
13+
println("r: " + decrypt(r));
14+
println(decrypt(r) - 15)
15+
}

gpsl_conf.toml

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
private_key = "NDM1ODIxMjU2NDA1MTc3NjExNTc0MTk2NjQ5MjUyMzMxMDA5MTMyMjMwNTA1MjA1MTA1OTMzMTA0NjEwODU3MzU3NDg3NDA1Njk5ODU="
2-
public_key = "eyJQb2ludCI6eyJ4Ijp7InZhbHVlIjoiMHg1NDhlZWQwYzNlYzc5OTJlMzhhODkyNGJjMDk4NTZmZDcwOTNjZDIyZjQ3N2ZjNjA0OGQ3ZWYxNjJhNDM3Y2UiLCJwIjoiMHhmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZWZmZmZmYzJmIn0sInkiOnsidmFsdWUiOiIweGU3OTVlNGZmMDdlOTYyYmUzNzFlYmJhYWVlYWI2ZDBkZmVlNjg5YmQ3MzlmYjk5MGI1NmE0NDQxZTJhZGFiNzIiLCJwIjoiMHhmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZWZmZmZmYzJmIn0sImEiOnsidmFsdWUiOiIweDAiLCJwIjoiMHhmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZWZmZmZmYzJmIn0sImIiOnsidmFsdWUiOiIweDciLCJwIjoiMHhmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZWZmZmZmYzJmIn19fQ=="
1+
碜뵒䅎쌰Ⴜꨯ䡓߄ꆇ뙎升ꦜӻ艨娒㬉咈꿇₸⨟훚駕桦긿鼿蹏鰬♓ိǗ컀⻤쀅댿镦ϐ頠쵆烌ꊓΚꗧ搞娏䢫Ⴉ鲁愁᜵証읣䬿錑ニ࡝瓞瞺䀘㶎榶ྻ쵮ﶟび멣꾪�讎餷ෛ㪀逑ᦦ䚕麗滗䤁嘉ᘨ鎏訞谴䖋渹䌑ߘ莅撣唉玠⬃滗䪡೶餅坛䱶븇葩ꬫ꿉첊ꣾ뽞慔㪽罘ꟑԿ猔鬎쨼�ܾ쿂胀延㋲壏椵䂏ⶈ��㲉觟迥ꖌ㡍᭰蕆뫺噪糦๝殯맠�劖ퟐ繹೼�Ǹ眣�

src/gpsl/external_function.rs

+2
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ pub const STD_FUNC: fn(
112112
};
113113
let ec = encryption.plain_to_ec_point(plain);
114114
let eep = encryption.encrypt(ec, data.public_key.unwrap(), None);
115+
println!("{}", ec);
115116
ExternalFuncReturn {
116117
status: ExternalFuncStatus::SUCCESS,
117118
value: Some(Variable::PureEncrypted { value: eep }),
@@ -124,6 +125,7 @@ pub const STD_FUNC: fn(
124125
_ => panic!("decrypt: first argument must be a pure encrypted point"),
125126
};
126127
let plain = Encryption::decrypt(eep, data.private_key.unwrap());
128+
println!("{}", plain);
127129
let plain = encryption.ec_point_to_plain(plain);
128130
ExternalFuncReturn {
129131
status: ExternalFuncStatus::SUCCESS,

src/main.rs

+21-10
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ use common::finite_field::FiniteFieldElement;
55
use elliptic_curve::elliptic_curve::EllipticCurve;
66
use elliptic_curve::elliptic_curve::EllipticCurvePoint;
77
use elliptic_curve::encryption::Encryption;
8+
use flate2::read::ZlibDecoder;
9+
use flate2::write::ZlibEncoder;
10+
use flate2::Compression;
811
use gpsl::external_function::ExternalFuncReturn;
912
use gpsl::external_function::ExternalFuncStatus;
1013
use gpsl::node::Node;
@@ -17,6 +20,7 @@ use serde::Deserialize;
1720
use serde::Serialize;
1821
use std::env;
1922
use std::fs::File;
23+
use std::io::prelude::*;
2024
use std::io::BufRead;
2125
use std::io::BufReader;
2226
use std::io::Read;
@@ -71,9 +75,12 @@ struct Config {
7175
impl Config {
7276
fn read_file(file: &str) -> String {
7377
let mut file = fs::File::open(file).unwrap();
74-
let mut contents = String::new();
75-
file.read_to_string(&mut contents).unwrap();
76-
contents
78+
let mut contents = Vec::new();
79+
file.read_to_end(&mut contents).unwrap();
80+
let mut d = ZlibDecoder::new(&contents[..]);
81+
let mut s = String::new();
82+
d.read_to_string(&mut s).unwrap();
83+
s
7784
}
7885
pub fn from_file(file: &str) -> Self {
7986
let file = Config::read_file(file);
@@ -83,7 +90,7 @@ impl Config {
8390
if let Some(private_key) = config.private_key {
8491
let decoded = base64::decode(&private_key).unwrap();
8592
let s = std::str::from_utf8(&decoded).unwrap();
86-
Some(U512::from_str(s).unwrap())
93+
Some(U512::from_str_radix(s, 10).unwrap())
8794
} else {
8895
None
8996
}
@@ -93,7 +100,8 @@ impl Config {
93100
if let Some(public_key) = config.public_key {
94101
let decoded = base64::decode(&public_key).unwrap();
95102
let s = std::str::from_utf8(&decoded).unwrap();
96-
Some(EllipticCurvePoint::from_str(s).unwrap())
103+
let r = EllipticCurvePoint::from_str(s).unwrap();
104+
Some(r)
97105
} else {
98106
None
99107
}
@@ -113,7 +121,7 @@ impl Config {
113121
[Mod(4767914906170010398, 6139062703770505681), Mod(2445476831433994309, 6139062703770505681)]]]
114122
*/
115123

116-
fn main() {
124+
fn o_main() {
117125
let p = U512::from_str_radix("1009", 10).unwrap();
118126

119127
let secp256_k1_a = FiniteFieldElement::new(U512::from(37u8), p);
@@ -139,6 +147,7 @@ fn main() {
139147
b: secp256_k1_b,
140148
}
141149
};
150+
142151
let r = U512::from_str_radix("7", 10).unwrap();
143152

144153
let f = EllipticCurvePoint::weil(pp, pd, r);
@@ -149,11 +158,11 @@ fn main() {
149158
let q = pp * s;
150159
let qd = pd * sd;
151160

152-
let ra = U512::from_str_radix("1", 10).unwrap();
161+
let ra = U512::from_str_radix("20", 10).unwrap();
153162
let rad = U512::from_str_radix("26", 10).unwrap();
154163

155164
let m = U512::from_str_radix("2", 10).unwrap();
156-
let md = U512::from_str_radix("3", 10).unwrap();
165+
let md = U512::from_str_radix("2", 10).unwrap();
157166

158167
let s1 = pp * m + q * ra;
159168
let t1 = pp * ra;
@@ -264,7 +273,7 @@ fn generate_encryption() -> Encryption {
264273
}
265274
}
266275

267-
fn o_main() {
276+
fn main() {
268277
env::set_var("RUST_LOG", "info");
269278
env_logger::init();
270279
let args = Args::parse();
@@ -434,8 +443,10 @@ fn client(args: Args) {
434443

435444
let mut file = File::create("gpsl_conf.toml").unwrap();
436445
let config_file = ConfigFile::from_config(config.clone());
437-
file.write_all(serde_json::to_string(&config_file).unwrap().as_bytes())
446+
let mut e = ZlibEncoder::new(Vec::new(), Compression::default());
447+
e.write_all(toml::to_string(&config_file).unwrap().as_bytes())
438448
.unwrap();
449+
file.write_all(&e.finish().unwrap()).unwrap();
439450

440451
config
441452
};

0 commit comments

Comments
 (0)