public static LibraryName GetDefaultLibrary() { try { var ptr = InteropOpenSSL10_libssl_so_1_0_0.SSLeay_version(); if (ptr != IntPtr.Zero) { return(LibraryName.libssl_so_1_0_0); } } catch (Exception ex) { System.Diagnostics.Trace.WriteLine($"Failed to load OpenSSL1.0 from libssl.so.1.0.0: {ex}"); } try { var ptr = InteropOpenSSL10_libssl_so_1_0.SSLeay_version(); if (ptr != IntPtr.Zero) { return(LibraryName.libssl_so_1_0); } } catch (Exception ex) { System.Diagnostics.Trace.WriteLine($"Failed to load OpenSSL1.0 from libssl.so.1.0: {ex}"); } try { var ptr = InteropOpenSSL10_libeay32_dll.SSLeay_version(); if (ptr != IntPtr.Zero) { return(LibraryName.libeay32_dll); } } catch (Exception ex) { System.Diagnostics.Trace.WriteLine($"Failed to load OpenSSL1.0 from libeay32.dll: {ex}"); } return(LibraryName.libssl); }
public static string SSLeay_version(LibraryName library = LibraryName.unknown) { if (library == LibraryName.unknown) { library = DefaultLibrary; } switch (library) { case LibraryName.libssl_so_1_0: return(Marshal.PtrToStringAuto(InteropOpenSSL10_libssl_so_1_0.SSLeay_version())); case LibraryName.libssl_so_1_0_0: return(Marshal.PtrToStringAuto(InteropOpenSSL10_libssl_so_1_0_0.SSLeay_version())); case LibraryName.libeay32_dll: return(Marshal.PtrToStringAuto(InteropOpenSSL10_libeay32_dll.SSLeay_version())); //case LibraryName.libssl: default: return(Marshal.PtrToStringAuto(InteropOpenSSL10_libssl.SSLeay_version())); } }