initial commit
This commit is contained in:
parent
6715289efe
commit
788c3389af
37645 changed files with 2526849 additions and 80 deletions
|
@ -0,0 +1,50 @@
|
|||
#if UNITY_2019_3_OR_NEWER
|
||||
using System.Security.Cryptography;
|
||||
using Unity.Collections.LowLevel.Unsafe;
|
||||
using UnityEngine;
|
||||
|
||||
namespace UnityEditor.Build.Pipeline.Utilities
|
||||
{
|
||||
public unsafe sealed class SpookyHash : HashAlgorithm
|
||||
{
|
||||
Hash128 m_Hash;
|
||||
|
||||
SpookyHash()
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
|
||||
public new static SpookyHash Create()
|
||||
{
|
||||
return new SpookyHash();
|
||||
}
|
||||
|
||||
public override void Initialize() {}
|
||||
|
||||
protected override void HashCore(byte[] inputBuffer, int inputOffset, int inputCount)
|
||||
{
|
||||
if (inputBuffer == null || inputOffset < 0 || inputCount <= 0 || (inputCount > inputBuffer.Length) || (inputBuffer.Length - inputCount) < inputOffset)
|
||||
return;
|
||||
|
||||
#if UNITY_2020_1_OR_NEWER
|
||||
m_Hash.Append(inputBuffer, inputOffset, inputCount);
|
||||
#else
|
||||
throw new System.InvalidOperationException("SpookyHash implementation was unstable and not deterministic prior to Unity 2020.1. Use MD5 or MD4 instead.");
|
||||
#endif
|
||||
}
|
||||
|
||||
protected override byte[] HashFinal()
|
||||
{
|
||||
#if UNITY_2020_1_OR_NEWER
|
||||
byte[] results = new byte[UnsafeUtility.SizeOf<Hash128>()];
|
||||
byte* hashPtr = (byte*)UnsafeUtility.AddressOf(ref m_Hash);
|
||||
fixed(byte* d = results)
|
||||
UnsafeUtility.MemCpy(d, hashPtr, results.Length);
|
||||
return results;
|
||||
#else
|
||||
throw new System.InvalidOperationException("SpookyHash implementation was unstable and not deterministic prior to Unity 2020.1. Use MD5 or MD4 instead.");
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue