1
0
mirror of https://git.ngram.ca/OpenJam/rc-servers synced 2026-08-23 23:08:52 +00:00

Disable logging of encryption keys in release builds

This commit is contained in:
NG (Graham)
2026-01-25 12:51:24 -05:00
parent 0db43497d8
commit 90a528f0e9
3 changed files with 13 additions and 14 deletions

8
Cargo.lock generated
View File

@@ -2985,18 +2985,14 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
[[package]]
name = "polariton"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6dcc388d509743a0419f5a5197a8c79e0f3fd484d5bd0b60e6f361887a8aa301"
version = "0.5.0"
dependencies = [
"tokio",
]
[[package]]
name = "polariton_server"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "51ea2a26537f7434f154e34d7c522ab10552442241e608e919d7cfc413ac3abc"
version = "0.5.0"
dependencies = [
"async-trait",
"log",

View File

@@ -35,10 +35,10 @@ libfj = { version = "0.9", path = "../libfj" }
log = "0.4"
env_logger = "0.11"
clap = { version = "4.5", features = [ "derive" ] }
#polariton = { version = "0.4", path = "../polariton", features = [ "tokio-async" ] }
#polariton_server = { version = "0.4", path = "../polariton/server", features = [ "tokio-async" ] }
polariton = { version = "0.4", features = [ "tokio-async" ] }
polariton_server = { version = "0.4", features = [ "tokio-async" ] }
polariton = { version = "0.5", path = "../polariton", features = [ "tokio-async" ] }
polariton_server = { version = "0.5", path = "../polariton/server", features = [ "tokio-async" ] }
#polariton = { version = "0.4", features = [ "tokio-async" ] }
#polariton_server = { version = "0.4", features = [ "tokio-async" ] }
serde = { version = "1.0", features = [ "derive" ] }
serde_json = "1.0"
async-trait = "0.1"

View File

@@ -26,21 +26,24 @@ pub fn generate_encryption_details(client_pub_key: &[u8]) -> Keys {
let big_0 = BigInt::from(0);
let prime_root = BigInt::from(PRIME_ROOT);
let my_prime = BigInt::from_bytes_be(num::bigint::Sign::Plus, PRIME_768);
log::debug!("Generating keys for client pub key {}", client_num);
log::trace!("Generating keys for client pub key {}", client_num);
let mut rng = rand::rng();
let mut bytes = rng.random::<[u8; SECRET_LEN]>();
let mut my_secret = BigInt::from_bytes_be(num::bigint::Sign::Plus, &bytes);
while my_secret >= &my_prime - 1 || my_secret == big_0 {
bytes = rng.random::<[u8; SECRET_LEN]>();
my_secret = BigInt::from_bytes_be(num::bigint::Sign::Plus, &bytes);
log::debug!("Generated secret {} (prime to beat: {})", my_secret, my_prime);
#[cfg(debug_assertions)]
log::trace!("Generated secret {} (prime to beat: {})", my_secret, my_prime);
}
let my_pub_key = prime_root.modpow(&my_secret, &my_prime);
let shared_key = client_num.modpow(&my_secret, &my_prime);
log::debug!("Generated shared key {} and pub key {}", shared_key, my_pub_key);
#[cfg(debug_assertions)]
log::trace!("Generated shared key {} and pub key {}", shared_key, my_pub_key);
let shared_key = shared_key.to_bytes_be().1;
let enc_key: Vec<u8> = ring::digest::digest(&ring::digest::SHA256, &shared_key).as_ref().into();
log::debug!("Encryption key is {:?}", enc_key.as_slice());
#[cfg(debug_assertions)]
log::trace!("Encryption key is {:?}", enc_key.as_slice());
Keys {
pub_key: my_pub_key.to_signed_bytes_be(),
enc: CryptoImpl::new(enc_key),