test.cs (1881B)
1 using System; 2 using System.Runtime.InteropServices; 3 4 internal static class Program 5 { 6 internal static int Main() 7 { 8 Console.WriteLine("sodium_version_string: {0}", Marshal.PtrToStringAnsi(sodium_version_string())); 9 Console.WriteLine("sodium_library_version_major: {0}", sodium_library_version_major()); 10 Console.WriteLine("sodium_library_version_minor: {0}", sodium_library_version_minor()); 11 Console.WriteLine("sodium_library_minimal: {0}", sodium_library_minimal()); 12 int error = sodium_init(); 13 Console.WriteLine("sodium_init: {0}", error); 14 if (error == 0) 15 { 16 randombytes_buf(out ulong buf, (UIntPtr)sizeof(ulong)); 17 Console.WriteLine("randombytes_buf: 0x'{0:X8}'", buf); 18 Console.WriteLine("crypto_aead_aes256gcm_is_available: {0}", crypto_aead_aes256gcm_is_available()); 19 } 20 return error == 0 ? 0 : 1; 21 } 22 23 [DllImport("libsodium", CallingConvention = CallingConvention.Cdecl)] 24 private static extern int crypto_aead_aes256gcm_is_available(); 25 26 [DllImport("libsodium", CallingConvention = CallingConvention.Cdecl)] 27 private static extern void randombytes_buf(out ulong buf, UIntPtr size); 28 29 [DllImport("libsodium", CallingConvention = CallingConvention.Cdecl)] 30 private static extern int sodium_init(); 31 32 [DllImport("libsodium", CallingConvention = CallingConvention.Cdecl)] 33 private static extern int sodium_library_version_major(); 34 35 [DllImport("libsodium", CallingConvention = CallingConvention.Cdecl)] 36 private static extern int sodium_library_minimal(); 37 38 [DllImport("libsodium", CallingConvention = CallingConvention.Cdecl)] 39 private static extern int sodium_library_version_minor(); 40 41 [DllImport("libsodium", CallingConvention = CallingConvention.Cdecl)] 42 private static extern IntPtr sodium_version_string(); 43 }