From ba3a88336a074f902667d3e13471af62b431da04 Mon Sep 17 00:00:00 2001 From: mat Date: Tue, 9 Dec 2025 01:27:44 +0000 Subject: move offline-mode uuid generation to azalea-crypto --- azalea-crypto/src/lib.rs | 1 + azalea-crypto/src/offline.rs | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 azalea-crypto/src/offline.rs (limited to 'azalea-crypto/src') diff --git a/azalea-crypto/src/lib.rs b/azalea-crypto/src/lib.rs index 738c4899..da10f530 100644 --- a/azalea-crypto/src/lib.rs +++ b/azalea-crypto/src/lib.rs @@ -1,5 +1,6 @@ #![doc = include_str!("../README.md")] +pub mod offline; mod signing; use aes::{ diff --git a/azalea-crypto/src/offline.rs b/azalea-crypto/src/offline.rs new file mode 100644 index 00000000..737555e8 --- /dev/null +++ b/azalea-crypto/src/offline.rs @@ -0,0 +1,17 @@ +use md5::{Digest, Md5}; +use uuid::Uuid; + +pub fn generate_uuid(username: &str) -> Uuid { + uuid::Builder::from_md5_bytes(hash(format!("OfflinePlayer:{username}").as_bytes())).into_uuid() +} + +fn hash(data: &[u8]) -> [u8; 16] { + let mut hasher = Md5::new(); + + hasher.update(data); + + let mut bytes = [0; 16]; + bytes.copy_from_slice(&hasher.finalize()[..16]); + + bytes +} -- cgit v1.2.3