wip registering ip addresses

This commit is contained in:
2025-12-18 00:34:57 +01:00
parent e902070c82
commit 6ac06ccfe5
4 changed files with 187 additions and 92 deletions

View File

@@ -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);
}
}*/
}