get_info tool
This commit is contained in:
parent
9420c72716
commit
5b3c3151a7
40
phase2/src/bin/get_info.rs
Normal file
40
phase2/src/bin/get_info.rs
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
extern crate phase2;
|
||||||
|
extern crate exitcode;
|
||||||
|
|
||||||
|
use std::io;
|
||||||
|
use std::fs::OpenOptions;
|
||||||
|
use phase2::parameters::MPCParameters;
|
||||||
|
use phase2::keypair::PublicKey;
|
||||||
|
use phase2::hash_writer::HashWriter;
|
||||||
|
|
||||||
|
fn get_hash(pubkey: &PublicKey) -> [u8; 64] {
|
||||||
|
// Calculate the hash of the public key and return it
|
||||||
|
let sink = io::sink();
|
||||||
|
let mut sink = HashWriter::new(sink);
|
||||||
|
pubkey.write(&mut sink).unwrap();
|
||||||
|
let h = sink.into_hash();
|
||||||
|
let mut response = [0u8; 64];
|
||||||
|
response.copy_from_slice(h.as_ref());
|
||||||
|
response
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let args: Vec<String> = std::env::args().collect();
|
||||||
|
if args.len() != 2 {
|
||||||
|
println!("Usage: \n<params>");
|
||||||
|
std::process::exit(exitcode::USAGE);
|
||||||
|
}
|
||||||
|
let params_filename = &args[1];
|
||||||
|
|
||||||
|
let disallow_points_at_infinity = false;
|
||||||
|
|
||||||
|
let reader = OpenOptions::new()
|
||||||
|
.read(true)
|
||||||
|
.open(params_filename)
|
||||||
|
.expect("unable to open.");
|
||||||
|
let params = MPCParameters::read(reader, disallow_points_at_infinity, true).expect("unable to read params");
|
||||||
|
println!("CS hash: 0x{}", hex::encode(params.cs_hash.to_vec()));
|
||||||
|
for i in 0..params.contributions.len() {
|
||||||
|
println!("Contribution {} hash: 0x{}", i + 1, hex::encode(get_hash(¶ms.contributions[i]).to_vec()));
|
||||||
|
}
|
||||||
|
}
|
@ -79,9 +79,9 @@ use super::utils::*;
|
|||||||
/// they contain a transcript of contributions at the end, which can be verified.
|
/// they contain a transcript of contributions at the end, which can be verified.
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct MPCParameters {
|
pub struct MPCParameters {
|
||||||
params: Parameters<Bn256>,
|
pub params: Parameters<Bn256>,
|
||||||
cs_hash: [u8; 64],
|
pub cs_hash: [u8; 64],
|
||||||
contributions: Vec<PublicKey>
|
pub contributions: Vec<PublicKey>
|
||||||
}
|
}
|
||||||
|
|
||||||
impl PartialEq for MPCParameters {
|
impl PartialEq for MPCParameters {
|
||||||
|
Loading…
Reference in New Issue
Block a user