wip registering ip addresses
This commit is contained in:
@@ -7,10 +7,10 @@ use rand_core::OsRng;
|
||||
use sha2::{Digest, Sha256};
|
||||
|
||||
pub enum MathError {
|
||||
DivisionByZero,
|
||||
NonPositiveLogarithm,
|
||||
NegativeSquareRoot,
|
||||
}
|
||||
DivisionByZero,
|
||||
NonPositiveLogarithm,
|
||||
NegativeSquareRoot,
|
||||
}
|
||||
|
||||
///
|
||||
/// contains the ecdsa private key, the ecdsa public key and the username
|
||||
@@ -42,28 +42,39 @@ impl CryptographicSignature {
|
||||
///
|
||||
/// returns a string representing the pub_key as a String
|
||||
///
|
||||
pub fn formatPubKey(crypto_pair: CryptographicSignature) -> String {
|
||||
pub fn formatPubKey(crypto_pair: CryptographicSignature) -> String {
|
||||
let encoded_point = crypto_pair.pub_key.to_encoded_point(false);
|
||||
let pubkey_bytes = encoded_point.as_bytes();
|
||||
hex::encode(pubkey_bytes)
|
||||
}
|
||||
|
||||
pub fn sign_message(crypto_pair: CryptographicSignature, message: [u8; 1024]) -> [u8; 1024] {
|
||||
let digest = Sha256::digest(&message[0..992]);
|
||||
let str = hex::encode(digest);
|
||||
let signature = crypto_pair.priv_key.sign_prehash_recoverable(str.as_bytes());
|
||||
let mut signed_message = [0;1024];
|
||||
signed_message[..992].copy_from_slice(&message[..992]);
|
||||
match signature {
|
||||
pub fn sign_message(crypto_pair: CryptographicSignature, message: Vec<u8>) -> Vec<u8> {
|
||||
let length_bytes: [u8; 2] = message[5..7]
|
||||
.try_into()
|
||||
.expect("slice with incorrect length");
|
||||
let msg_length = u16::from_be_bytes(length_bytes);
|
||||
println!("{}", msg_length);
|
||||
let digest = Sha256::digest(&message[..8 + msg_length as usize]);
|
||||
let signature = crypto_pair.priv_key.sign_prehash_recoverable(&digest);
|
||||
|
||||
let message_length = 12 + msg_length as usize + 32;
|
||||
let mut signed_message = Vec::with_capacity(message_length);
|
||||
println!("{}", message_length);
|
||||
signed_message.extend_from_slice(&message[..8 + msg_length as usize]);
|
||||
signed_message.pop();
|
||||
println!("signed_tmp:{:?}", signed_message);
|
||||
match signature {
|
||||
Ok(signature) => {
|
||||
println!("Signature: {:?}", signature);
|
||||
//println!("Signature: {:?}", signature);
|
||||
let r = signature.0.r();
|
||||
|
||||
|
||||
let r_bytes = r.to_bytes(); // Returns a GenericArray/bytes object
|
||||
|
||||
signed_message[992..].copy_from_slice(&r_bytes[..32]);
|
||||
signed_message.extend_from_slice(&r_bytes[..32]);
|
||||
println!("signed:{:?}", signed_message);
|
||||
println!("rbytes:{:?}", &r_bytes[..32]);
|
||||
signed_message
|
||||
},
|
||||
}
|
||||
Err(e) => {
|
||||
panic!("error");
|
||||
}
|
||||
@@ -83,7 +94,7 @@ mod tests {
|
||||
println!("pubkey : {}",formatted_pubkey);
|
||||
}*/
|
||||
|
||||
#[test]
|
||||
/*#[test]
|
||||
fn signing_message() {
|
||||
let username = String::from("quoicoubeh");
|
||||
let crypto_pair = CryptographicSignature::new(username);
|
||||
@@ -93,7 +104,5 @@ mod tests {
|
||||
let signed_message = sign_message(crypto_pair, ser);
|
||||
println!("unsigned_message: {:?}", ser);
|
||||
println!("signed_message: {:?}", signed_message);
|
||||
}
|
||||
|
||||
|
||||
}*/
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user