Example #1
0
        public static byte[] hmac_hash(byte[] key, byte[] data)
        {
            try {
                UnityEngine.Debug.Assert(key.Length == 8);
                IntPtr keyptr = Marshal.AllocHGlobal(key.Length);
                Marshal.Copy(key, 0, keyptr, key.Length);
                Crypt_CSharp.PACKAGE keypg;
                keypg.src = keyptr;
                keypg.len = key.Length;

                IntPtr ptr = Marshal.AllocHGlobal(data.Length);
                Marshal.Copy(data, 0, ptr, data.Length);
                Crypt_CSharp.PACKAGE pg;
                pg.src = ptr;
                pg.len = data.Length;

                Crypt_CSharp.PACKAGE res = Crypt_CSharp.hmac_hash(keypg, 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;
            }
        }
Example #2
0
 public static byte[] hmac_hash(byte[] key, byte[] data)
 {
     try {
         IntPtr keyptr  = Package.package_packarray(key);
         IntPtr dataptr = Package.package_packarray(data);
         IntPtr resptr  = Crypt_CSharp.hmac_hash(keyptr, dataptr);
         byte[] buffer  = Package.package_unpackarray(resptr);
         Package.package_freezero(ref keyptr);
         Package.package_freezero(ref dataptr);
         Package.package_freezero(ref resptr);
         return(buffer);
     } catch (Exception) {
         throw;
     }
 }