Пример #1
0
        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);
        }
Пример #2
0
        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()));
            }
        }