| using System; |
| using System.Text; |
| using System.Security.Cryptography; |
| using UnityEngine; |
|
|
| namespace Unity.MLAgents.Analytics |
| { |
| internal static class AnalyticsUtils |
| { |
| |
| |
| |
| |
| |
| private static string ToHexString(byte[] array) |
| { |
| StringBuilder hex = new StringBuilder(array.Length * 2); |
| foreach (byte b in array) |
| { |
| hex.AppendFormat("{0:x2}", b); |
| } |
| return hex.ToString(); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public static string Hash(string key, string value) |
| { |
| string hash; |
| UTF8Encoding encoder = new UTF8Encoding(); |
| using (HMACSHA256 hmac = new HMACSHA256(encoder.GetBytes(key))) |
| { |
| Byte[] hmBytes = hmac.ComputeHash(encoder.GetBytes(value)); |
| hash = ToHexString(hmBytes); |
| } |
| return hash; |
| } |
|
|
| internal static bool s_SendEditorAnalytics = true; |
|
|
| |
| |
| |
| internal class DisableAnalyticsSending : IDisposable |
| { |
| private bool m_PreviousSendEditorAnalytics; |
|
|
| public DisableAnalyticsSending() |
| { |
| m_PreviousSendEditorAnalytics = s_SendEditorAnalytics; |
| s_SendEditorAnalytics = false; |
| } |
|
|
| public void Dispose() |
| { |
| s_SendEditorAnalytics = m_PreviousSendEditorAnalytics; |
| } |
| } |
| } |
| } |
|
|