diff --git a/umskt/src/bink1998.rs b/umskt/src/bink1998.rs index dfd4c37..3c893ec 100644 --- a/umskt/src/bink1998.rs +++ b/umskt/src/bink1998.rs @@ -58,12 +58,14 @@ impl ProductKey { // Default to upgrade=false let upgrade = upgrade.unwrap_or(false); + let private = &private_key.gen_order - &private_key.private_key; + // Generate a new random key let product_key = Self::generate( &curve.curve, &curve.gen_point, &private_key.gen_order, - &private_key.private_key, + &private, channel_id, sequence, upgrade, diff --git a/umskt/src/crypto.rs b/umskt/src/crypto.rs index 3b584f0..f817858 100644 --- a/umskt/src/crypto.rs +++ b/umskt/src/crypto.rs @@ -18,7 +18,7 @@ pub struct PrivateKey { impl PrivateKey { pub fn new(gen_order: &str, private_key: &str) -> Result { let gen_order = BigInt::from_str_radix(gen_order, 10)?; - let private_key = &gen_order - &BigInt::from_str_radix(private_key, 10)?; + let private_key = BigInt::from_str_radix(private_key, 10)?; Ok(Self { gen_order, private_key,