Skip to content

Instantly share code, notes, and snippets.

@rakisaionji
Created March 15, 2021 12:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rakisaionji/7a0b00aff4fd4cd2e71d9d7301a1d9b9 to your computer and use it in GitHub Desktop.
Save rakisaionji/7a0b00aff4fd4cd2e71d9d7301a1d9b9 to your computer and use it in GitHub Desktop.
Testing a native DLL with C#.
using System;
using System.Runtime.InteropServices;
namespace CakeTest
{
class Program
{
[DllImport("Cake")]
private static extern IntPtr GetHttpEncryptHeader();
[DllImport("Cake")]
private static extern IntPtr GetHttpEncryptVersion();
static void Main(string[] args)
{
var EncryptHeader = Marshal.PtrToStringAnsi(GetHttpEncryptHeader());
var EncryptVersion = Marshal.PtrToStringAnsi(GetHttpEncryptVersion());
Console.WriteLine("EncryptHeader = {0}", EncryptHeader);
Console.WriteLine("EncryptVersion = {0}", EncryptVersion);
Console.ReadLine();
}
}
}
@rakisaionji
Copy link
Author

ChiffreTest.cs

using System;
using System.Runtime.InteropServices;
using System.Text;

namespace chiffre_test
{
    class Program
    {
        [DllImport("chiffre")]
        private static extern void calcB2b(int dstSize, [Out] byte[] dst, int srcSize, [In] byte[] src);

        public static void calcDigest(byte[] dst, byte[] src)
        {
            calcB2b(32, dst, src.Length, src);
        }

        static void Main(string[] args)
        {
            byte[] bytes = Encoding.UTF8.GetBytes("test");
            byte[] array = new byte[32];
            calcDigest(array, bytes);
            Console.WriteLine(Encoding.UTF8.GetString(array));
            Console.ReadKey();
        }
    }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment