diff options
Diffstat (limited to 'azalea-crypto/src')
| -rw-r--r-- | azalea-crypto/src/lib.rs | 1 | ||||
| -rw-r--r-- | azalea-crypto/src/offline.rs | 17 |
2 files changed, 18 insertions, 0 deletions
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 +} |
