diff options
Diffstat (limited to 'azalea-auth/src')
| -rwxr-xr-x | azalea-auth/src/lib.rs | 1 | ||||
| -rw-r--r-- | azalea-auth/src/offline.rs | 17 |
2 files changed, 18 insertions, 0 deletions
diff --git a/azalea-auth/src/lib.rs b/azalea-auth/src/lib.rs index bd151eb3..1643bf04 100755 --- a/azalea-auth/src/lib.rs +++ b/azalea-auth/src/lib.rs @@ -4,6 +4,7 @@ mod auth; pub mod cache; pub mod certs; pub mod game_profile; +pub mod offline; pub mod sessionserver; pub use auth::*; diff --git a/azalea-auth/src/offline.rs b/azalea-auth/src/offline.rs new file mode 100644 index 00000000..737555e8 --- /dev/null +++ b/azalea-auth/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 +} |
