Exemplo n.º 1
0
        public static byte[] hmac64(byte[] key1, byte[] key2)
        {
            try {
                IntPtr keyptr1 = Marshal.AllocHGlobal(key1.Length);
                Marshal.Copy(key1, 0, keyptr1, key1.Length);
                Crypt_CSharp.PACKAGE pgkey1;
                pgkey1.src = keyptr1;
                pgkey1.len = key1.Length;

                IntPtr keyptr2 = Marshal.AllocHGlobal(key2.Length);
                Marshal.Copy(key2, 0, keyptr2, key2.Length);
                Crypt_CSharp.PACKAGE pgkey2;
                pgkey2.src = keyptr2;
                pgkey2.len = key2.Length;
                Crypt_CSharp.PACKAGE res = Crypt_CSharp.hmac64(pgkey1, pgkey2);
                byte[] buffer            = new byte[res.len];
                Marshal.Copy(res.src, buffer, 0, res.len);
                pfree(res);

                Marshal.FreeHGlobal(keyptr1);
                Marshal.FreeHGlobal(keyptr2);
                return(buffer);
            } catch (Exception) {
                throw;
            }
        }
Exemplo n.º 2
0
 public static byte[] hmac64(byte[] key1, byte[] key2)
 {
     try {
         IntPtr key1ptr = Package.package_packarray(key1);
         IntPtr key2ptr = Package.package_packarray(key2);
         IntPtr resptr  = Crypt_CSharp.hmac64(key1ptr, key2ptr);
         byte[] buffer  = Package.package_unpackarray(resptr);
         Package.package_freezero(ref key1ptr);
         Package.package_freezero(ref key2ptr);
         Package.package_freezero(ref resptr);
         return(buffer);
     } catch (Exception) {
         throw;
     }
 }