using System; using Google.Protobuf; namespace FrostFS.SDK.Cryptography; public static class UUIDExtension { public static Guid ToUuid(this ByteString id) { if (id == null) throw new ArgumentNullException(nameof(id)); var bytes = id.ToByteArray(); var orderedBytes = GetGuidBytesDirectOrder(bytes); return new Guid(orderedBytes); } /// /// Serializes Guid to binary representation in direct order bytes format /// /// /// public static byte[] ToBytes(this Guid id) { var bytes = id.ToByteArray(); var orderedBytes = GetGuidBytesDirectOrder(bytes); return orderedBytes; } private static byte[] GetGuidBytesDirectOrder(byte[] source) { if (source.Length != 16) throw new ArgumentException("Wrong uuid binary format"); return [ source[3], source[2], source[1], source[0], source[5], source[4], source[7], source[6], source[8], source[9], source[10], source[11], source[12], source[13], source[14], source[15] ]; } }