feat: add publish, and rpc

This commit is contained in:
2020-11-07 23:15:40 +08:00
parent 297dca28f3
commit 6f7b3ecce8
10 changed files with 1340 additions and 38 deletions

View File

@@ -0,0 +1,34 @@
use std::io::{ Read, Write };
use std::fs::File;
use std::path::Path;
use ring::digest;
use virt_enclave::sig::*;
use rust_util::XResult;
fn main() -> XResult<()> {
let mut args = std::env::args();
args.next();
let signing_key_pair = virt_enclave::util::load_signing_key_pair().expect("Load singing key pair!");
let f = args.next().ok_or_else(|| rust_util::new_box_error("File not assigned!"))?;
let mut file = File::open(&f)?;
let mut buf = vec![];
file.read_to_end(&mut buf)?;
let d = digest::digest(&digest::SHA256, &buf);
let digest_hex = hex::encode(&d);
let mut signed_message = SignedMessage::new(d.as_ref().to_vec(), None);
signed_message.sign(&signing_key_pair);
let js_path = Path::new("js");
if !js_path.exists() {
std::fs::create_dir(js_path).expect("Create js/ dir");
}
let js_file = format!("js/{}.js", digest_hex);
let js_sign_file = format!("js/{}.sig.json", digest_hex);
File::create(&js_file)?.write_all(&buf).expect("Write js/HEX.js file");
println!("Write file successed: {}", js_file);
File::create(&js_sign_file)?.write_all(serde_json::to_string(&signed_message)?.as_bytes()).expect("Write js/HEX.sig.json file");
println!("Write file successed: {}", js_sign_file);
Ok(())
}