Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
 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;
     }
 }