diff --git a/packaging/dotnet-core/test.cs b/packaging/dotnet-core/test.cs new file mode 100644 index 00000000..33484825 --- /dev/null +++ b/packaging/dotnet-core/test.cs @@ -0,0 +1,43 @@ +using System; +using System.Runtime.InteropServices; + +internal static class Program +{ + internal static int Main() + { + Console.WriteLine("sodium_version_string: {0}", Marshal.PtrToStringAnsi(sodium_version_string())); + Console.WriteLine("sodium_library_version_major: {0}", sodium_library_version_major()); + Console.WriteLine("sodium_library_version_minor: {0}", sodium_library_version_minor()); + Console.WriteLine("sodium_library_minimal: {0}", sodium_library_minimal()); + int error = sodium_init(); + Console.WriteLine("sodium_init: {0}", error); + if (error == 0) + { + randombytes_buf(out ulong buf, (UIntPtr)sizeof(ulong)); + Console.WriteLine("randombytes_buf: 0x'{0:X8}'", buf); + Console.WriteLine("crypto_aead_aes256gcm_is_available: {0}", crypto_aead_aes256gcm_is_available()); + } + return error == 0 ? 0 : 1; + } + + [DllImport("libsodium", CallingConvention = CallingConvention.Cdecl)] + private static extern int crypto_aead_aes256gcm_is_available(); + + [DllImport("libsodium", CallingConvention = CallingConvention.Cdecl)] + private static extern void randombytes_buf(out ulong buf, UIntPtr size); + + [DllImport("libsodium", CallingConvention = CallingConvention.Cdecl)] + private static extern int sodium_init(); + + [DllImport("libsodium", CallingConvention = CallingConvention.Cdecl)] + private static extern int sodium_library_version_major(); + + [DllImport("libsodium", CallingConvention = CallingConvention.Cdecl)] + private static extern int sodium_library_minimal(); + + [DllImport("libsodium", CallingConvention = CallingConvention.Cdecl)] + private static extern int sodium_library_version_minor(); + + [DllImport("libsodium", CallingConvention = CallingConvention.Cdecl)] + private static extern IntPtr sodium_version_string(); +}