public static byte[] desdecode(byte[] key, byte[] encrypted) { UnityEngine.Debug.Assert(key.Length == 8); try { IntPtr keyptr = Marshal.AllocHGlobal(key.Length); Marshal.Copy(key, 0, keyptr, key.Length); Crypt_CSharp.PACKAGE pgkey; pgkey.src = keyptr; pgkey.len = key.Length; IntPtr ptr = Marshal.AllocHGlobal(encrypted.Length); Marshal.Copy(encrypted, 0, ptr, encrypted.Length); Crypt_CSharp.PACKAGE pg; pg.src = ptr; pg.len = encrypted.Length; Crypt_CSharp.PACKAGE res = Crypt_CSharp.desdecode(pgkey, pg); byte[] buffer = new byte[res.len]; Marshal.Copy(res.src, buffer, 0, res.len); pfree(res); Marshal.FreeHGlobal(keyptr); Marshal.FreeHGlobal(ptr); return(buffer); } catch (Exception) { throw; } }
public static byte[] desdecode(byte[] key, byte[] encrypted) { UnityEngine.Debug.Assert(key.Length == 8); try { IntPtr keyptr = Package.package_packarray(key); IntPtr encryptedptr = Package.package_packarray(encrypted); IntPtr resptr = Crypt_CSharp.desdecode(keyptr, encryptedptr); byte[] buffer = Package.package_unpackarray(resptr); Package.package_freezero(ref keyptr); Package.package_freezero(ref encryptedptr); Package.package_freezero(ref resptr); return(buffer); } catch (Exception) { throw; } }