public void HandleMachineAuthCallback(SteamUser user, SteamUser.UpdateMachineAuthCallback obj)
        {
            int fileSize;

            byte[] sentryHash;
            using (var fs = Sentry.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite))
            {
                fs.Seek(obj.Offset, SeekOrigin.Begin);
                fs.Write(obj.Data, 0, obj.BytesToWrite);
                fileSize = (int)fs.Length;

                fs.Seek(0, SeekOrigin.Begin);
                using (var sha = SHA1.Create())
                {
                    sentryHash = sha.ComputeHash(fs);
                }
            }

            // inform the steam servers that we're accepting this sentry file
            user.SendMachineAuthResponse(new SteamUser.MachineAuthDetails
            {
                JobID = obj.JobID,

                FileName = obj.FileName,

                BytesWritten = obj.BytesToWrite,
                FileSize     = fileSize,
                Offset       = obj.Offset,

                Result    = EResult.OK,
                LastError = 0,

                OneTimePassword = obj.OneTimePassword,

                SentryFileHash = sentryHash,
            });
        }