diff options
author | Zoltan Varga <vargaz@gmail.com> | 2016-10-22 00:29:13 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-22 00:29:13 +0300 |
commit | 2fb07d6c6d5b3915ef4665391febbb7b8be09fb5 (patch) | |
tree | 6c5e0315011a1f707c844a3ae171ca71db5b0ebf | |
parent | 20acd5895c2f0d661a4a9971f979f33384f6066e (diff) |
[btls] Convert BTLS icalls to pinvokes by invoking them using [DllImp… (#3799)
* [btls] Convert BTLS icalls to pinvokes by invoking them using [DllImport("__Internal")], which will make it easier to redirect them to a separate dylib in the future.
* [btls] Add a --enable-dynamic-btls configure flag to enable compiling btls into a separate shared library instead of embedding it into the runtime.
45 files changed, 442 insertions, 391 deletions
diff --git a/configure.ac b/configure.ac index c644a7c4202..aed6989394d 100644 --- a/configure.ac +++ b/configure.ac @@ -3930,7 +3930,10 @@ dnl ************** AC_ARG_ENABLE(btls, [ --disable-btls Disable the BoringTls provider], enable_btls=$enableval, enable_btls=$BTLS_SUPPORTED) AC_ARG_WITH(btls_android_ndk, [ --with-btls-android-ndk Android NDK for BoringTls]) +AC_ARG_ENABLE(dynamic-btls, [ --enable-dynamic-btls Place the BTLS provider into a separate shared library/archive.], enable_dynamic_btls=$enableval, enable_dynamic_btls=no) + AM_CONDITIONAL(BTLS, test x$enable_btls = xyes) +AM_CONDITIONAL(DYNAMIC_BTLS, test x$enable_dynamic_btls = xyes) btls_android=no if test "x$enable_btls" = "xyes"; then @@ -3999,6 +4002,10 @@ if test "x$enable_btls" = "xyes"; then AC_SUBST(BTLS_CMAKE_ARGS) AC_DEFINE(HAVE_BTLS, 1, [BoringTls is supported]) + + if test "x$enable_dynamic_btls" = "xyes"; then + AC_DEFINE(HAVE_DYNAMIC_BTLS, 1, [BTLS in a shared libraty]) + fi else enable_btls=no fi @@ -4407,6 +4414,9 @@ fi echo "AOT_BUILD_FLAGS=$AOT_BUILD_FLAGS" >> $srcdir/$mcsdir/build/config.make fi + if test "x$enable_dynamic_btls" = "xyes"; then + echo "DYNAMIC_BTLS=1" >> $srcdir/$mcsdir/build/config.make + fi fi ) diff --git a/data/config.in b/data/config.in index b4b7243ecfd..be831514293 100644 --- a/data/config.in +++ b/data/config.in @@ -11,6 +11,7 @@ <dllmap dll="oci" target="libclntsh@libsuffix@" os="!windows"/> <dllmap dll="db2cli" target="libdb2_36@libsuffix@" os="!windows"/> <dllmap dll="MonoPosixHelper" target="$mono_libdir/libMonoPosixHelper@libsuffix@" os="!windows" /> + <dllmap dll="libmono-btls-shared" target="$mono_libdir/libmono-btls-shared@libsuffix@" os="!windows" /> <dllmap dll="i:msvcrt" target="@LIBC@" os="!windows"/> <dllmap dll="i:msvcrt.dll" target="@LIBC@" os="!windows"/> <dllmap dll="sqlite" target="@SQLITE@" os="!windows"/> diff --git a/mcs/class/System/Makefile b/mcs/class/System/Makefile index fdfb7c293a4..29eace8a1ff 100644 --- a/mcs/class/System/Makefile +++ b/mcs/class/System/Makefile @@ -42,6 +42,10 @@ endif LIB_MCS_FLAGS = -nowarn:618 -d:CONFIGURATION_2_0 $(REFERENCE_SOURCES_FLAGS) -unsafe $(RESOURCE_FILES:%=-resource:%) +ifdef DYNAMIC_BTLS +LIB_MCS_FLAGS += -d:DYNAMIC_BTLS +endif + ifndef NO_THREAD_ABORT REFERENCE_SOURCES_FLAGS += -d:MONO_FEATURE_THREAD_ABORT TEST_MCS_FLAGS += -d:MONO_FEATURE_THREAD_ABORT diff --git a/mcs/class/System/Mono.Btls/MonoBtlsBio.cs b/mcs/class/System/Mono.Btls/MonoBtlsBio.cs index 1fbe47117d1..ca62c8e4a29 100644 --- a/mcs/class/System/Mono.Btls/MonoBtlsBio.cs +++ b/mcs/class/System/Mono.Btls/MonoBtlsBio.cs @@ -70,25 +70,25 @@ namespace Mono.Btls return MonoBtlsBioMono.CreateStream (stream, false); } - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_bio_read (IntPtr bio, IntPtr data, int len); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_bio_write (IntPtr bio, IntPtr data, int len); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_bio_flush (IntPtr bio); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_bio_indent (IntPtr bio, uint indent, uint max_indent); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_bio_hexdump (IntPtr bio, IntPtr data, int len, uint indent); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_bio_print_errors (IntPtr bio); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_bio_free (IntPtr handle); public int Read (byte[] buffer, int offset, int size) @@ -192,10 +192,10 @@ namespace Mono.Btls class MonoBtlsBioMemory : MonoBtlsBio { - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_bio_mem_new (); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_bio_mem_get_data (IntPtr handle, out IntPtr data); public MonoBtlsBioMemory () @@ -278,10 +278,10 @@ namespace Mono.Btls delegate int BioWriteFunc (IntPtr bio, IntPtr data, int dataLength); delegate long BioControlFunc (IntPtr bio, ControlCommand command, long arg); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_bio_mono_new (); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_bio_mono_initialize (IntPtr handle, IntPtr instance, IntPtr readFunc, IntPtr writeFunc, IntPtr controlFunc); long Control (ControlCommand command, long arg) diff --git a/mcs/class/System/Mono.Btls/MonoBtlsError.cs b/mcs/class/System/Mono.Btls/MonoBtlsError.cs index 2645a926bc3..bbfee5ef897 100644 --- a/mcs/class/System/Mono.Btls/MonoBtlsError.cs +++ b/mcs/class/System/Mono.Btls/MonoBtlsError.cs @@ -23,7 +23,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. -// #if SECURITY_DEP +#if SECURITY_DEP using System; using System.IO; using System.Text; @@ -38,16 +38,16 @@ namespace Mono.Btls { static class MonoBtlsError { - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (MonoBtlsObject.BTLS_DYLIB)] extern static int mono_btls_error_peek_error (); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (MonoBtlsObject.BTLS_DYLIB)] extern static int mono_btls_error_get_error (); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (MonoBtlsObject.BTLS_DYLIB)] extern static void mono_btls_error_clear_error (); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (MonoBtlsObject.BTLS_DYLIB)] extern static void mono_btls_error_get_error_string_n (int error, IntPtr buf, int len); public static int PeekError () @@ -80,4 +80,4 @@ namespace Mono.Btls } } } -// #endif +#endif diff --git a/mcs/class/System/Mono.Btls/MonoBtlsKey.cs b/mcs/class/System/Mono.Btls/MonoBtlsKey.cs index 81280b54ece..04ccb467a95 100644 --- a/mcs/class/System/Mono.Btls/MonoBtlsKey.cs +++ b/mcs/class/System/Mono.Btls/MonoBtlsKey.cs @@ -48,19 +48,19 @@ namespace Mono.Btls } } - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_key_free (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_key_up_ref (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_key_get_bytes (IntPtr handle, out IntPtr data, out int size, int include_private_bits); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_key_get_bits (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_key_is_rsa (IntPtr handle); new internal BoringKeyHandle Handle { diff --git a/mcs/class/System/Mono.Btls/MonoBtlsObject.cs b/mcs/class/System/Mono.Btls/MonoBtlsObject.cs index 8f3054318fe..9731e1deb44 100644 --- a/mcs/class/System/Mono.Btls/MonoBtlsObject.cs +++ b/mcs/class/System/Mono.Btls/MonoBtlsObject.cs @@ -33,6 +33,12 @@ namespace Mono.Btls { abstract class MonoBtlsObject : IDisposable { +#if DYNAMIC_BTLS + internal const string BTLS_DYLIB = "libmono-btls-shared"; +#else + internal const string BTLS_DYLIB = "__Internal"; +#endif + internal MonoBtlsObject (MonoBtlsHandle handle) { this.handle = handle; @@ -100,7 +106,7 @@ namespace Mono.Btls CheckError (ret == 1, callerName); } - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_free (IntPtr data); protected void FreeDataPtr (IntPtr data) diff --git a/mcs/class/System/Mono.Btls/MonoBtlsPkcs12.cs b/mcs/class/System/Mono.Btls/MonoBtlsPkcs12.cs index a7d42a190b4..2f97cb87474 100644 --- a/mcs/class/System/Mono.Btls/MonoBtlsPkcs12.cs +++ b/mcs/class/System/Mono.Btls/MonoBtlsPkcs12.cs @@ -52,28 +52,28 @@ namespace Mono.Btls get { return (BoringPkcs12Handle)base.Handle; } } - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_pkcs12_free (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_pkcs12_new (); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_pkcs12_get_count (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_pkcs12_get_cert (IntPtr Handle, int index); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_pkcs12_add_cert (IntPtr chain, IntPtr x509); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern unsafe static int mono_btls_pkcs12_import (IntPtr chain, void* data, int len, IntPtr password); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_pkcs12_has_private_key (IntPtr pkcs12); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_pkcs12_get_private_key (IntPtr pkcs12); internal MonoBtlsPkcs12 () diff --git a/mcs/class/System/Mono.Btls/MonoBtlsSsl.cs b/mcs/class/System/Mono.Btls/MonoBtlsSsl.cs index b24ed079ab1..d04a15a1a66 100644 --- a/mcs/class/System/Mono.Btls/MonoBtlsSsl.cs +++ b/mcs/class/System/Mono.Btls/MonoBtlsSsl.cs @@ -55,73 +55,73 @@ namespace Mono.Btls } } - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_ssl_destroy (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_ssl_new (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_ssl_use_certificate (IntPtr handle, IntPtr x509); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_ssl_use_private_key (IntPtr handle, IntPtr key); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_ssl_add_chain_certificate (IntPtr handle, IntPtr x509); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_ssl_accept (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_ssl_connect (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_ssl_handshake (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_ssl_close (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_ssl_set_bio (IntPtr handle, IntPtr bio); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_ssl_read (IntPtr handle, IntPtr data, int len); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_ssl_write (IntPtr handle, IntPtr data, int len); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_ssl_get_error (IntPtr handle, int ret_code); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_ssl_get_version (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_ssl_set_min_version (IntPtr handle, int version); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_ssl_set_max_version (IntPtr handle, int version); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_ssl_get_cipher (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_ssl_get_ciphers (IntPtr handle, out IntPtr data); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_ssl_get_peer_certificate (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_ssl_set_cipher_list (IntPtr handle, IntPtr str); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_ssl_print_errors_cb (IntPtr func, IntPtr ctx); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_ssl_set_verify_param (IntPtr handle, IntPtr param); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_ssl_set_server_name (IntPtr handle, IntPtr name); static BoringSslHandle Create_internal (MonoBtlsSslCtx ctx) diff --git a/mcs/class/System/Mono.Btls/MonoBtlsSslCtx.cs b/mcs/class/System/Mono.Btls/MonoBtlsSslCtx.cs index 517b158b8e0..7fac0f33821 100644 --- a/mcs/class/System/Mono.Btls/MonoBtlsSslCtx.cs +++ b/mcs/class/System/Mono.Btls/MonoBtlsSslCtx.cs @@ -54,40 +54,40 @@ namespace Mono.Btls get { return (BoringSslCtxHandle)base.Handle; } } - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_ssl_ctx_new (); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_ssl_ctx_free (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_ssl_ctx_up_ref (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_ssl_ctx_initialize (IntPtr handle, IntPtr instance); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_ssl_ctx_set_debug_bio (IntPtr handle, IntPtr bio); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_ssl_ctx_set_cert_verify_callback (IntPtr handle, IntPtr func, int cert_required); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_ssl_ctx_set_cert_select_callback (IntPtr handle, IntPtr func); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_ssl_ctx_set_min_version (IntPtr handle, int version); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_ssl_ctx_set_max_version (IntPtr handle, int version); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_ssl_ctx_is_cipher_supported (IntPtr handle, short value); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_ssl_ctx_set_ciphers (IntPtr handle, int count, IntPtr data, int allow_unsupported); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_ssl_ctx_set_verify_param (IntPtr handle, IntPtr param); delegate int NativeVerifyFunc (IntPtr instance, int preverify_ok, IntPtr ctx); diff --git a/mcs/class/System/Mono.Btls/MonoBtlsX509.cs b/mcs/class/System/Mono.Btls/MonoBtlsX509.cs index 31ec4581052..b35c0c14225 100644 --- a/mcs/class/System/Mono.Btls/MonoBtlsX509.cs +++ b/mcs/class/System/Mono.Btls/MonoBtlsX509.cs @@ -67,79 +67,79 @@ namespace Mono.Btls { } - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_up_ref (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_from_data (IntPtr data, int len, MonoBtlsX509Format format); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_get_subject_name (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_get_issuer_name (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_get_subject_name_string (IntPtr handle, IntPtr buffer, int size); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_get_issuer_name_string (IntPtr handle, IntPtr buffer, int size); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_get_raw_data (IntPtr handle, IntPtr bio, MonoBtlsX509Format format); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_cmp (IntPtr a, IntPtr b); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_get_hash (IntPtr handle, out IntPtr data); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static long mono_btls_x509_get_not_before (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static long mono_btls_x509_get_not_after (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_get_public_key (IntPtr handle, IntPtr bio); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_get_serial_number (IntPtr handle, IntPtr data, int size, int mono_style); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_get_version (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_get_signature_algorithm (IntPtr handle, IntPtr buffer, int size); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_get_public_key_asn1 (IntPtr handle, IntPtr oid, int oid_size, out IntPtr data, out int size); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_get_public_key_parameters (IntPtr handle, IntPtr oid, int oid_size, out IntPtr data, out int size); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_get_pubkey (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_get_subject_key_identifier (IntPtr handle, out IntPtr data, out int size); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_print (IntPtr handle, IntPtr bio); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_x509_free (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_dup (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_add_trust_object (IntPtr handle, MonoBtlsX509Purpose purpose); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_add_reject_object (IntPtr handle, MonoBtlsX509Purpose purpose); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_add_explicit_trust (IntPtr handle, MonoBtlsX509TrustKind kind); internal MonoBtlsX509 Copy () diff --git a/mcs/class/System/Mono.Btls/MonoBtlsX509Chain.cs b/mcs/class/System/Mono.Btls/MonoBtlsX509Chain.cs index 6926ae7e65b..853e3bb60c5 100644 --- a/mcs/class/System/Mono.Btls/MonoBtlsX509Chain.cs +++ b/mcs/class/System/Mono.Btls/MonoBtlsX509Chain.cs @@ -52,22 +52,22 @@ namespace Mono.Btls get { return (BoringX509ChainHandle)base.Handle; } } - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_chain_new (); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_chain_get_count (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_chain_get_cert (IntPtr Handle, int index); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_chain_add_cert (IntPtr chain, IntPtr x509); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_chain_up_ref (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_x509_chain_free (IntPtr handle); public MonoBtlsX509Chain () diff --git a/mcs/class/System/Mono.Btls/MonoBtlsX509Crl.cs b/mcs/class/System/Mono.Btls/MonoBtlsX509Crl.cs index 9d1868337d6..004a29abc1f 100644 --- a/mcs/class/System/Mono.Btls/MonoBtlsX509Crl.cs +++ b/mcs/class/System/Mono.Btls/MonoBtlsX509Crl.cs @@ -67,37 +67,37 @@ namespace Mono.Btls { } - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_crl_ref (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_crl_from_data (IntPtr data, int len, MonoBtlsX509Format format); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_crl_get_by_cert (IntPtr handle, IntPtr x509); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] unsafe extern static IntPtr mono_btls_x509_crl_get_by_serial (IntPtr handle, void *serial, int len); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_crl_get_revoked_count (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_crl_get_revoked (IntPtr handle, int index); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static long mono_btls_x509_crl_get_last_update (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static long mono_btls_x509_crl_get_next_update (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static long mono_btls_x509_crl_get_version (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_crl_get_issuer (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_x509_crl_free (IntPtr handle); public static MonoBtlsX509Crl LoadFromData (byte[] buffer, MonoBtlsX509Format format) diff --git a/mcs/class/System/Mono.Btls/MonoBtlsX509Lookup.cs b/mcs/class/System/Mono.Btls/MonoBtlsX509Lookup.cs index 3e8fb299768..fc24dc79d0c 100644 --- a/mcs/class/System/Mono.Btls/MonoBtlsX509Lookup.cs +++ b/mcs/class/System/Mono.Btls/MonoBtlsX509Lookup.cs @@ -52,38 +52,38 @@ namespace Mono.Btls get { return (BoringX509LookupHandle)base.Handle; } } - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_lookup_new (IntPtr store, MonoBtlsX509LookupType type); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_lookup_load_file (IntPtr handle, IntPtr file, MonoBtlsX509FileType type); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_lookup_add_dir (IntPtr handle, IntPtr dir, MonoBtlsX509FileType type); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_lookup_add_mono (IntPtr handle, IntPtr monoLookup); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_x509_lookup_method_mono_init ( IntPtr handle, IntPtr instance, IntPtr by_subject_func); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_lookup_init (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_lookup_shutdown (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_lookup_by_subject (IntPtr handle, IntPtr name); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_lookup_by_fingerprint (IntPtr handle, IntPtr bytes, int len); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_x509_lookup_free (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_lookup_peek_lookup (IntPtr handle); MonoBtlsX509LookupType type; diff --git a/mcs/class/System/Mono.Btls/MonoBtlsX509LookupMono.cs b/mcs/class/System/Mono.Btls/MonoBtlsX509LookupMono.cs index 30b2ee3876e..73d16a3bb5d 100644 --- a/mcs/class/System/Mono.Btls/MonoBtlsX509LookupMono.cs +++ b/mcs/class/System/Mono.Btls/MonoBtlsX509LookupMono.cs @@ -51,14 +51,14 @@ namespace Mono.Btls get { return (BoringX509LookupMonoHandle)base.Handle; } } - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_lookup_mono_new (); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_x509_lookup_mono_init ( IntPtr handle, IntPtr instance, IntPtr by_subject_func); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_lookup_mono_free (IntPtr handle); delegate int BySubjectFunc (IntPtr instance, IntPtr name, out IntPtr x509_ptr); diff --git a/mcs/class/System/Mono.Btls/MonoBtlsX509Name.cs b/mcs/class/System/Mono.Btls/MonoBtlsX509Name.cs index 80a322caaf3..88e1bb427d7 100644 --- a/mcs/class/System/Mono.Btls/MonoBtlsX509Name.cs +++ b/mcs/class/System/Mono.Btls/MonoBtlsX509Name.cs @@ -52,40 +52,40 @@ namespace Mono.Btls } } - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_name_print_bio (IntPtr handle, IntPtr bio); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_name_print_string (IntPtr handle, IntPtr buffer, int size); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_name_get_raw_data (IntPtr handle, out IntPtr buffer, int use_canon_enc); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static long mono_btls_x509_name_hash (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static long mono_btls_x509_name_hash_old (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_name_get_entry_count (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static MonoBtlsX509NameEntryType mono_btls_x509_name_get_entry_type (IntPtr name, int index); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_name_get_entry_oid (IntPtr name, int index, IntPtr buffer, int size); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_name_get_entry_oid_data (IntPtr name, int index, out IntPtr data); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_name_get_entry_value (IntPtr name, int index, out int tag, out IntPtr str); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern unsafe static IntPtr mono_btls_x509_name_from_data (void* data, int len, int use_canon_enc); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_x509_name_free (IntPtr handle); new internal BoringX509NameHandle Handle { diff --git a/mcs/class/System/Mono.Btls/MonoBtlsX509NameList.cs b/mcs/class/System/Mono.Btls/MonoBtlsX509NameList.cs index cccc005f8d9..ab3a7bba62c 100644 --- a/mcs/class/System/Mono.Btls/MonoBtlsX509NameList.cs +++ b/mcs/class/System/Mono.Btls/MonoBtlsX509NameList.cs @@ -52,19 +52,19 @@ namespace Mono.Btls } } - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_name_list_new (); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_name_list_get_count (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_name_list_add (IntPtr handle, IntPtr name); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_name_list_get_item (IntPtr handle, int index); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_x509_name_list_free (IntPtr handle); new internal BoringX509NameListHandle Handle { diff --git a/mcs/class/System/Mono.Btls/MonoBtlsX509Revoked.cs b/mcs/class/System/Mono.Btls/MonoBtlsX509Revoked.cs index 4f5d79b67b4..583a6d01517 100644 --- a/mcs/class/System/Mono.Btls/MonoBtlsX509Revoked.cs +++ b/mcs/class/System/Mono.Btls/MonoBtlsX509Revoked.cs @@ -67,19 +67,19 @@ namespace Mono.Btls { } - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_revoked_get_serial_number (IntPtr handle, IntPtr data, int size); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static long mono_btls_x509_revoked_get_revocation_date (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_revoked_get_reason (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_revoked_get_sequence (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_x509_revoked_free (IntPtr handle); public byte[] GetSerialNumber () diff --git a/mcs/class/System/Mono.Btls/MonoBtlsX509Store.cs b/mcs/class/System/Mono.Btls/MonoBtlsX509Store.cs index 2e03715ce34..76db62bb9f8 100644 --- a/mcs/class/System/Mono.Btls/MonoBtlsX509Store.cs +++ b/mcs/class/System/Mono.Btls/MonoBtlsX509Store.cs @@ -53,28 +53,28 @@ namespace Mono.Btls get { return (BoringX509StoreHandle)base.Handle; } } - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_store_new (); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_store_from_ctx (IntPtr ctx); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_store_from_ssl_ctx (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_store_load_locations (IntPtr handle, IntPtr file, IntPtr path); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_store_set_default_paths (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_store_add_cert (IntPtr handle, IntPtr x509); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_store_get_count (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_x509_store_free (IntPtr handle); Dictionary<IntPtr,MonoBtlsX509Lookup> lookupHash; diff --git a/mcs/class/System/Mono.Btls/MonoBtlsX509StoreCtx.cs b/mcs/class/System/Mono.Btls/MonoBtlsX509StoreCtx.cs index 41df1298f9c..f197a66bc3d 100644 --- a/mcs/class/System/Mono.Btls/MonoBtlsX509StoreCtx.cs +++ b/mcs/class/System/Mono.Btls/MonoBtlsX509StoreCtx.cs @@ -66,49 +66,49 @@ namespace Mono.Btls get { return (BoringX509StoreCtxHandle)base.Handle; } } - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_store_ctx_new (); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_store_ctx_from_ptr (IntPtr ctx); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static MonoBtlsX509Error mono_btls_x509_store_ctx_get_error (IntPtr handle, out IntPtr error_string); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_store_ctx_get_error_depth (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_store_ctx_get_chain (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_store_ctx_init (IntPtr handle, IntPtr store, IntPtr chain); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_store_ctx_set_param (IntPtr handle, IntPtr param); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_store_ctx_verify_cert (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_store_ctx_get_by_subject (IntPtr handle, IntPtr name); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_store_ctx_get_current_cert (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_store_ctx_get_current_issuer (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_store_ctx_get_verify_param (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_store_ctx_get_untrusted (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_store_ctx_up_ref (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_x509_store_ctx_free (IntPtr handle); internal MonoBtlsX509StoreCtx () diff --git a/mcs/class/System/Mono.Btls/MonoBtlsX509VerifyParam.cs b/mcs/class/System/Mono.Btls/MonoBtlsX509VerifyParam.cs index 5c012389fdc..d95610a92da 100644 --- a/mcs/class/System/Mono.Btls/MonoBtlsX509VerifyParam.cs +++ b/mcs/class/System/Mono.Btls/MonoBtlsX509VerifyParam.cs @@ -51,55 +51,55 @@ namespace Mono.Btls get { return (BoringX509VerifyParamHandle)base.Handle; } } - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_verify_param_new (); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_verify_param_copy (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_verify_param_lookup (IntPtr name); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_verify_param_can_modify (IntPtr param); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_verify_param_set_name (IntPtr handle, IntPtr name); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_verify_param_set_host (IntPtr handle, IntPtr name, int namelen); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_verify_param_add_host (IntPtr handle, IntPtr name, int namelen); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static ulong mono_btls_x509_verify_param_get_flags (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_verify_param_set_flags (IntPtr handle, ulong flags); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static MonoBtlsX509VerifyFlags mono_btls_x509_verify_param_get_mono_flags (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_verify_param_set_mono_flags (IntPtr handle, MonoBtlsX509VerifyFlags flags); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_verify_param_set_purpose (IntPtr handle, MonoBtlsX509Purpose purpose); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_verify_param_get_depth (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_verify_param_set_depth (IntPtr handle, int depth); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static int mono_btls_x509_verify_param_set_time (IntPtr handle, long time); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static IntPtr mono_btls_x509_verify_param_get_peername (IntPtr handle); - [MethodImpl (MethodImplOptions.InternalCall)] + [DllImport (BTLS_DYLIB)] extern static void mono_btls_x509_verify_param_free (IntPtr handle); internal MonoBtlsX509VerifyParam () diff --git a/mono/btls/CMakeLists.txt b/mono/btls/CMakeLists.txt index aba7440e505..0e01496e9fa 100644 --- a/mono/btls/CMakeLists.txt +++ b/mono/btls/CMakeLists.txt @@ -79,10 +79,12 @@ set ( ${BORINGSSL_OBJECTS} ) -if (BUILD_SHARED_LIBS) +if (BUILD_DYNAMIC_BTLS) + add_library (mono-btls-shared SHARED ${MONO_BTLS_SOURCES}) +elseif (BUILD_SHARED_LIBS) add_library (mono-btls-shared SHARED ${MONO_BTLS_SOURCES}) set_target_properties (mono-btls-shared PROPERTIES RULE_LAUNCH_LINK - "${PROJECT_SOURCE_DIR}/create-object-library.sh ${CMAKE_BINARY_DIR} mono-btls-shared.txt mono-btls-shared-lo.txt libmono-btls-shared.a shared ${CMAKE_AR} ${CMAKE_RANLIB} <OBJECTS> --" + "${PROJECT_SOURCE_DIR}/create-object-library.sh ${CMAKE_BINARY_DIR} mono-btls-shared.txt mono-btls-shared-lo.txt libmono-btls-shared.a shared ${CMAKE_AR} ${CMAKE_RANLIB} <OBJECTS> --" ) else () add_library (mono-btls-static STATIC ${MONO_BTLS_SOURCES}) diff --git a/mono/btls/Makefile.am b/mono/btls/Makefile.am index 0bb00bf184e..25d742b1097 100644 --- a/mono/btls/Makefile.am +++ b/mono/btls/Makefile.am @@ -46,9 +46,15 @@ CMAKE_ARGS = -D CMAKE_INSTALL_PREFIX:PATH=$(prefix) -D BTLS_ROOT:PATH=$(BTLS_ROO all-local: $(BTLS_STATIC_LIST) $(BTLS_SHARED_LIST) +if DYNAMIC_BTLS +build-shared/Makefile: + -mkdir -p build-shared + (cd build-shared && $(CMAKE) $(CMAKE_ARGS) $(BTLS_CMAKE_ARGS) -DBUILD_DYNAMIC_BTLS=1 $(abs_top_srcdir)/mono/btls) +else build-shared/Makefile: -mkdir -p build-shared (cd build-shared && $(CMAKE) $(CMAKE_ARGS) $(BTLS_CMAKE_ARGS) -DBUILD_SHARED_LIBS=1 $(abs_top_srcdir)/mono/btls) +endif build-static/Makefile: -mkdir -p build-static diff --git a/mono/btls/btls-bio.c b/mono/btls/btls-bio.c index 5af2d86ecd6..ea8fda67dc3 100644 --- a/mono/btls/btls-bio.c +++ b/mono/btls/btls-bio.c @@ -114,7 +114,7 @@ static const BIO_METHOD mono_method = { NULL, NULL, mono_ctrl, mono_new, mono_free, NULL }; -BIO * +MONO_API BIO * mono_btls_bio_mono_new (void) { BIO *bio; @@ -136,7 +136,7 @@ mono_btls_bio_mono_new (void) return bio; } -void +MONO_API void mono_btls_bio_mono_initialize (BIO *bio, const void *instance, MonoBtlsReadFunc read_func, MonoBtlsWriteFunc write_func, MonoBtlsControlFunc control_func) @@ -151,55 +151,55 @@ mono_btls_bio_mono_initialize (BIO *bio, const void *instance, bio->init = 1; } -int +MONO_API int mono_btls_bio_read (BIO *bio, void *data, int len) { return BIO_read (bio, data, len); } -int +MONO_API int mono_btls_bio_write (BIO *bio, const void *data, int len) { return BIO_write (bio, data, len); } -int +MONO_API int mono_btls_bio_flush (BIO *bio) { return BIO_flush (bio); } -int +MONO_API int mono_btls_bio_indent (BIO *bio, unsigned indent, unsigned max_indent) { return BIO_indent (bio, indent, max_indent); } -int +MONO_API int mono_btls_bio_hexdump (BIO *bio, const uint8_t *data, int len, unsigned indent) { return BIO_hexdump (bio, data, len, indent); } -void +MONO_API void mono_btls_bio_print_errors (BIO *bio) { BIO_print_errors (bio); } -void +MONO_API void mono_btls_bio_free (BIO *bio) { BIO_free (bio); } -BIO * +MONO_API BIO * mono_btls_bio_mem_new (void) { return BIO_new (BIO_s_mem ()); } -int +MONO_API int mono_btls_bio_mem_get_data (BIO *bio, void **data) { return (int)BIO_get_mem_data (bio, (char**)data); diff --git a/mono/btls/btls-error.c b/mono/btls/btls-error.c index 8ed950c7e66..75252162a2a 100644 --- a/mono/btls/btls-error.c +++ b/mono/btls/btls-error.c @@ -7,27 +7,28 @@ // #include <btls-error.h> +#include <btls-util.h> #include <assert.h> -int +MONO_API int mono_btls_error_peek_error (void) { return ERR_peek_error (); } -int +MONO_API int mono_btls_error_get_error (void) { return ERR_get_error (); } -void +MONO_API void mono_btls_error_clear_error (void) { ERR_clear_error (); } -void +MONO_API void mono_btls_error_get_error_string_n (int error, char *buf, int len) { ERR_error_string_n (error, buf, len); diff --git a/mono/btls/btls-key.c b/mono/btls/btls-key.c index 756f9c75649..65909a527d9 100644 --- a/mono/btls/btls-key.c +++ b/mono/btls/btls-key.c @@ -8,31 +8,31 @@ #include <btls-key.h> -void +MONO_API void mono_btls_key_free (EVP_PKEY *pkey) { EVP_PKEY_free (pkey); } -EVP_PKEY * +MONO_API EVP_PKEY * mono_btls_key_up_ref (EVP_PKEY *pkey) { return EVP_PKEY_up_ref (pkey); } -int +MONO_API int mono_btls_key_get_bits (EVP_PKEY *pkey) { return EVP_PKEY_bits (pkey); } -int +MONO_API int mono_btls_key_is_rsa (EVP_PKEY *pkey) { return pkey->type == EVP_PKEY_RSA; } -int +MONO_API int mono_btls_key_get_bytes (EVP_PKEY *pkey, uint8_t **buffer, int *size, int include_private_bits) { size_t len; diff --git a/mono/btls/btls-pkcs12.c b/mono/btls/btls-pkcs12.c index d037ddb8910..6e1a79e60bd 100644 --- a/mono/btls/btls-pkcs12.c +++ b/mono/btls/btls-pkcs12.c @@ -15,7 +15,7 @@ struct MonoBtlsPkcs12 { CRYPTO_refcount_t references; }; -MonoBtlsPkcs12 * +MONO_API MonoBtlsPkcs12 * mono_btls_pkcs12_new (void) { MonoBtlsPkcs12 *pkcs12 = (MonoBtlsPkcs12 *)OPENSSL_malloc (sizeof (MonoBtlsPkcs12)); @@ -28,13 +28,13 @@ mono_btls_pkcs12_new (void) return pkcs12; } -int +MONO_API int mono_btls_pkcs12_get_count (MonoBtlsPkcs12 *pkcs12) { return (int)sk_X509_num (pkcs12->certs); } -X509 * +MONO_API X509 * mono_btls_pkcs12_get_cert (MonoBtlsPkcs12 *pkcs12, int index) { X509 *cert; @@ -47,13 +47,13 @@ mono_btls_pkcs12_get_cert (MonoBtlsPkcs12 *pkcs12, int index) return cert; } -STACK_OF(X509) * +MONO_API STACK_OF(X509) * mono_btls_pkcs12_get_certs (MonoBtlsPkcs12 *pkcs12) { return pkcs12->certs; } -int +MONO_API int mono_btls_pkcs12_free (MonoBtlsPkcs12 *pkcs12) { if (!CRYPTO_refcount_dec_and_test_zero (&pkcs12->references)) @@ -64,21 +64,21 @@ mono_btls_pkcs12_free (MonoBtlsPkcs12 *pkcs12) return 1; } -MonoBtlsPkcs12 * +MONO_API MonoBtlsPkcs12 * mono_btls_pkcs12_up_ref (MonoBtlsPkcs12 *pkcs12) { CRYPTO_refcount_inc (&pkcs12->references); return pkcs12; } -void +MONO_API void mono_btls_pkcs12_add_cert (MonoBtlsPkcs12 *pkcs12, X509 *x509) { X509_up_ref (x509); sk_X509_push (pkcs12->certs, x509); } -int +MONO_API int mono_btls_pkcs12_import (MonoBtlsPkcs12 *pkcs12, const void *data, int len, const void *password) { CBS cbs; @@ -86,13 +86,13 @@ mono_btls_pkcs12_import (MonoBtlsPkcs12 *pkcs12, const void *data, int len, cons return PKCS12_get_key_and_certs (&pkcs12->private_key, pkcs12->certs, &cbs, password); } -int +MONO_API int mono_btls_pkcs12_has_private_key (MonoBtlsPkcs12 *pkcs12) { return pkcs12->private_key != NULL; } -EVP_PKEY * +MONO_API EVP_PKEY * mono_btls_pkcs12_get_private_key (MonoBtlsPkcs12 *pkcs12) { if (!pkcs12->private_key) diff --git a/mono/btls/btls-ssl-ctx.c b/mono/btls/btls-ssl-ctx.c index ddbb02f5517..1f9d43c536e 100644 --- a/mono/btls/btls-ssl-ctx.c +++ b/mono/btls/btls-ssl-ctx.c @@ -31,13 +31,13 @@ mono_btls_ssl_ctx_debug_printf (ptr, "%s:%d:%s(): " fmt, __FILE__, __LINE__, \ void ssl_cipher_preference_list_free (struct ssl_cipher_preference_list_st *cipher_list); -int +MONO_API int mono_btls_ssl_ctx_is_debug_enabled (MonoBtlsSslCtx *ctx) { return ctx->debug_bio != NULL; } -int +MONO_API int mono_btls_ssl_ctx_debug_printf (MonoBtlsSslCtx *ctx, const char *format, ...) { va_list args; @@ -52,7 +52,7 @@ mono_btls_ssl_ctx_debug_printf (MonoBtlsSslCtx *ctx, const char *format, ...) return ret; } -MonoBtlsSslCtx * +MONO_API MonoBtlsSslCtx * mono_btls_ssl_ctx_new (void) { MonoBtlsSslCtx *ctx; @@ -67,14 +67,14 @@ mono_btls_ssl_ctx_new (void) return ctx; } -MonoBtlsSslCtx * +MONO_API MonoBtlsSslCtx * mono_btls_ssl_ctx_up_ref (MonoBtlsSslCtx *ctx) { CRYPTO_refcount_inc (&ctx->references); return ctx; } -int +MONO_API int mono_btls_ssl_ctx_free (MonoBtlsSslCtx *ctx) { if (!CRYPTO_refcount_dec_and_test_zero (&ctx->references)) @@ -85,13 +85,13 @@ mono_btls_ssl_ctx_free (MonoBtlsSslCtx *ctx) return 1; } -SSL_CTX * +MONO_API SSL_CTX * mono_btls_ssl_ctx_get_ctx (MonoBtlsSslCtx *ctx) { return ctx->ctx; } -void +MONO_API void mono_btls_ssl_ctx_set_debug_bio (MonoBtlsSslCtx *ctx, BIO *debug_bio) { if (debug_bio) @@ -100,7 +100,7 @@ mono_btls_ssl_ctx_set_debug_bio (MonoBtlsSslCtx *ctx, BIO *debug_bio) ctx->debug_bio = NULL; } -void +MONO_API void mono_btls_ssl_ctx_initialize (MonoBtlsSslCtx *ctx, void *instance) { ctx->instance = instance; @@ -122,7 +122,7 @@ cert_verify_callback (X509_STORE_CTX *storeCtx, void *arg) return ret; } -void +MONO_API void mono_btls_ssl_ctx_set_cert_verify_callback (MonoBtlsSslCtx *ptr, MonoBtlsVerifyFunc func, int cert_required) { int mode; @@ -151,32 +151,32 @@ cert_select_callback (SSL *ssl, void *arg) return ret; } -void +MONO_API void mono_btls_ssl_ctx_set_cert_select_callback (MonoBtlsSslCtx *ptr, MonoBtlsSelectFunc func) { ptr->select_func = func; SSL_CTX_set_cert_cb (ptr->ctx, cert_select_callback, ptr); } -X509_STORE * +MONO_API X509_STORE * mono_btls_ssl_ctx_peek_store (MonoBtlsSslCtx *ctx) { return SSL_CTX_get_cert_store (ctx->ctx); } -void +MONO_API void mono_btls_ssl_ctx_set_min_version (MonoBtlsSslCtx *ctx, int version) { SSL_CTX_set_min_version (ctx->ctx, version); } -void +MONO_API void mono_btls_ssl_ctx_set_max_version (MonoBtlsSslCtx *ctx, int version) { SSL_CTX_set_max_version (ctx->ctx, version); } -int +MONO_API int mono_btls_ssl_ctx_is_cipher_supported (MonoBtlsSslCtx *ctx, uint16_t value) { const SSL_CIPHER *cipher; @@ -185,7 +185,7 @@ mono_btls_ssl_ctx_is_cipher_supported (MonoBtlsSslCtx *ctx, uint16_t value) return cipher != NULL; } -int +MONO_API int mono_btls_ssl_ctx_set_ciphers (MonoBtlsSslCtx *ctx, int count, const uint16_t *data, int allow_unsupported) { @@ -247,7 +247,7 @@ err: return 0; } -int +MONO_API int mono_btls_ssl_ctx_set_verify_param (MonoBtlsSslCtx *ctx, const MonoBtlsX509VerifyParam *param) { return SSL_CTX_set1_param (ctx->ctx, mono_btls_x509_verify_param_peek_param (param)); diff --git a/mono/btls/btls-ssl.c b/mono/btls/btls-ssl.c index fa3e53d4cdf..f18d6c19247 100644 --- a/mono/btls/btls-ssl.c +++ b/mono/btls/btls-ssl.c @@ -26,7 +26,7 @@ __func__, __VA_ARGS__); } while (0) STACK_OF(SSL_CIPHER) *ssl_bytes_to_cipher_list (SSL *s, const CBS *cbs); -MonoBtlsSsl * +MONO_API MonoBtlsSsl * mono_btls_ssl_new (MonoBtlsSslCtx *ctx) { MonoBtlsSsl *ptr; @@ -41,7 +41,7 @@ mono_btls_ssl_new (MonoBtlsSslCtx *ctx) return ptr; } -void +MONO_API void mono_btls_ssl_destroy (MonoBtlsSsl *ptr) { mono_btls_ssl_close (ptr); @@ -56,92 +56,92 @@ mono_btls_ssl_destroy (MonoBtlsSsl *ptr) free (ptr); } -void +MONO_API void mono_btls_ssl_close (MonoBtlsSsl *ptr) { ; } -void +MONO_API void mono_btls_ssl_set_bio (MonoBtlsSsl *ptr, BIO *bio) { BIO_up_ref (bio); SSL_set_bio (ptr->ssl, bio, bio); } -void +MONO_API void mono_btls_ssl_print_errors_cb (ERR_print_errors_callback_t callback, void *ctx) { ERR_print_errors_cb (callback, ctx); } -int +MONO_API int mono_btls_ssl_use_certificate (MonoBtlsSsl *ptr, X509 *x509) { return SSL_use_certificate (ptr->ssl, x509); } -int +MONO_API int mono_btls_ssl_use_private_key (MonoBtlsSsl *ptr, EVP_PKEY *key) { return SSL_use_PrivateKey (ptr->ssl, key); } -int +MONO_API int mono_btls_ssl_add_chain_certificate (MonoBtlsSsl *ptr, X509 *x509) { return SSL_add1_chain_cert (ptr->ssl, x509); } -int +MONO_API int mono_btls_ssl_accept (MonoBtlsSsl *ptr) { return SSL_accept (ptr->ssl); } -int +MONO_API int mono_btls_ssl_connect (MonoBtlsSsl *ptr) { return SSL_connect (ptr->ssl); } -int +MONO_API int mono_btls_ssl_handshake (MonoBtlsSsl *ptr) { return SSL_do_handshake (ptr->ssl); } -int +MONO_API int mono_btls_ssl_read (MonoBtlsSsl *ptr, void *buf, int count) { return SSL_read (ptr->ssl, buf, count); } -int +MONO_API int mono_btls_ssl_write (MonoBtlsSsl *ptr, void *buf, int count) { return SSL_write (ptr->ssl, buf, count); } -int +MONO_API int mono_btls_ssl_get_version (MonoBtlsSsl *ptr) { return SSL_version (ptr->ssl); } -void +MONO_API void mono_btls_ssl_set_min_version (MonoBtlsSsl *ptr, int version) { SSL_set_min_version (ptr->ssl, version); } -void +MONO_API void mono_btls_ssl_set_max_version (MonoBtlsSsl *ptr, int version) { SSL_set_max_version (ptr->ssl, version); } -int +MONO_API int mono_btls_ssl_get_cipher (MonoBtlsSsl *ptr) { const SSL_CIPHER *cipher; @@ -152,13 +152,13 @@ mono_btls_ssl_get_cipher (MonoBtlsSsl *ptr) return (uint16_t)SSL_CIPHER_get_id (cipher); } -int +MONO_API int mono_btls_ssl_set_cipher_list (MonoBtlsSsl *ptr, const char *str) { return SSL_set_cipher_list(ptr->ssl, str); } -int +MONO_API int mono_btls_ssl_get_ciphers (MonoBtlsSsl *ptr, uint16_t **data) { STACK_OF(SSL_CIPHER) *ciphers; @@ -184,25 +184,25 @@ mono_btls_ssl_get_ciphers (MonoBtlsSsl *ptr, uint16_t **data) return count; } -X509 * +MONO_API X509 * mono_btls_ssl_get_peer_certificate (MonoBtlsSsl *ptr) { return SSL_get_peer_certificate (ptr->ssl); } -int +MONO_API int mono_btls_ssl_get_error (MonoBtlsSsl *ptr, int ret_code) { return SSL_get_error (ptr->ssl, ret_code); } -int +MONO_API int mono_btls_ssl_set_verify_param (MonoBtlsSsl *ptr, const MonoBtlsX509VerifyParam *param) { return SSL_set1_param (ptr->ssl, mono_btls_x509_verify_param_peek_param (param)); } -int +MONO_API int mono_btls_ssl_set_server_name (MonoBtlsSsl *ptr, const char *name) { return SSL_set_tlsext_host_name (ptr->ssl, name); diff --git a/mono/btls/btls-util.c b/mono/btls/btls-util.c index d28763a0fd1..824b101f34c 100644 --- a/mono/btls/btls-util.c +++ b/mono/btls/btls-util.c @@ -17,7 +17,7 @@ extern time_t timegm (struct tm* const t); extern int asn1_generalizedtime_to_tm (struct tm *tm, const ASN1_GENERALIZEDTIME *d); -void +MONO_API void mono_btls_free (void *data) { OPENSSL_free (data); diff --git a/mono/btls/btls-util.h b/mono/btls/btls-util.h index a77bfcd61d0..525e6199750 100644 --- a/mono/btls/btls-util.h +++ b/mono/btls/btls-util.h @@ -14,6 +14,22 @@ #include <string.h> #include <openssl/ssl.h> +#ifndef MONO_API +#if defined(_MSC_VER) + +#define MONO_API __declspec(dllexport) + +#else + +#ifdef __GNUC__ +#define MONO_API __attribute__ ((visibility ("default"))) +#else +#define MONO_API +#endif + +#endif +#endif + void mono_btls_free (void *data); diff --git a/mono/btls/btls-x509-chain.c b/mono/btls/btls-x509-chain.c index 0584791dedf..5b7082ddb13 100644 --- a/mono/btls/btls-x509-chain.c +++ b/mono/btls/btls-x509-chain.c @@ -13,7 +13,7 @@ struct MonoBtlsX509Chain { CRYPTO_refcount_t references; }; -MonoBtlsX509Chain * +MONO_API MonoBtlsX509Chain * mono_btls_x509_chain_new (void) { MonoBtlsX509Chain *chain = (MonoBtlsX509Chain *)OPENSSL_malloc (sizeof (MonoBtlsX509Chain)); @@ -26,7 +26,7 @@ mono_btls_x509_chain_new (void) return chain; } -MonoBtlsX509Chain * +MONO_API MonoBtlsX509Chain * mono_btls_x509_chain_from_certs (STACK_OF(X509) *certs) { MonoBtlsX509Chain *chain = (MonoBtlsX509Chain *)OPENSSL_malloc (sizeof (MonoBtlsX509Chain)); @@ -39,19 +39,19 @@ mono_btls_x509_chain_from_certs (STACK_OF(X509) *certs) return chain; } -STACK_OF(X509) * +MONO_API STACK_OF(X509) * mono_btls_x509_chain_peek_certs (MonoBtlsX509Chain *chain) { return chain->certs; } -int +MONO_API int mono_btls_x509_chain_get_count (MonoBtlsX509Chain *chain) { return (int)sk_X509_num(chain->certs); } -X509 * +MONO_API X509 * mono_btls_x509_chain_get_cert (MonoBtlsX509Chain *chain, int index) { X509 *cert; @@ -64,13 +64,13 @@ mono_btls_x509_chain_get_cert (MonoBtlsX509Chain *chain, int index) return cert; } -STACK_OF(X509) * +MONO_API STACK_OF(X509) * mono_btls_x509_chain_get_certs (MonoBtlsX509Chain *chain) { return chain->certs; } -int +MONO_API int mono_btls_x509_chain_free (MonoBtlsX509Chain *chain) { if (!CRYPTO_refcount_dec_and_test_zero(&chain->references)) @@ -81,14 +81,14 @@ mono_btls_x509_chain_free (MonoBtlsX509Chain *chain) return 1; } -MonoBtlsX509Chain * +MONO_API MonoBtlsX509Chain * mono_btls_x509_chain_up_ref (MonoBtlsX509Chain *chain) { CRYPTO_refcount_inc(&chain->references); return chain; } -void +MONO_API void mono_btls_x509_chain_add_cert (MonoBtlsX509Chain *chain, X509 *x509) { X509_up_ref(x509); diff --git a/mono/btls/btls-x509-crl.c b/mono/btls/btls-x509-crl.c index ccd3e287314..b4e861234ca 100644 --- a/mono/btls/btls-x509-crl.c +++ b/mono/btls/btls-x509-crl.c @@ -14,7 +14,7 @@ struct MonoBtlsX509Crl { CRYPTO_refcount_t references; }; -MonoBtlsX509Crl * +MONO_API MonoBtlsX509Crl * mono_btls_x509_crl_from_data (const void *buf, int len, MonoBtlsX509Format format) { MonoBtlsX509Crl *crl; @@ -43,14 +43,14 @@ mono_btls_x509_crl_from_data (const void *buf, int len, MonoBtlsX509Format forma return crl; } -MonoBtlsX509Crl * +MONO_API MonoBtlsX509Crl * mono_btls_x509_crl_ref (MonoBtlsX509Crl *crl) { CRYPTO_refcount_inc (&crl->references); return crl; } -int +MONO_API int mono_btls_x509_crl_free (MonoBtlsX509Crl *crl) { if (!CRYPTO_refcount_dec_and_test_zero (&crl->references)) @@ -61,7 +61,7 @@ mono_btls_x509_crl_free (MonoBtlsX509Crl *crl) return 1; } -MonoBtlsX509Revoked * +MONO_API MonoBtlsX509Revoked * mono_btls_x509_crl_get_by_cert (MonoBtlsX509Crl *crl, X509 *x509) { X509_REVOKED *revoked; @@ -77,7 +77,7 @@ mono_btls_x509_crl_get_by_cert (MonoBtlsX509Crl *crl, X509 *x509) return mono_btls_x509_revoked_new (crl, revoked); } -MonoBtlsX509Revoked * +MONO_API MonoBtlsX509Revoked * mono_btls_x509_crl_get_by_serial (MonoBtlsX509Crl *crl, void *serial, int len) { ASN1_INTEGER si; @@ -98,7 +98,7 @@ mono_btls_x509_crl_get_by_serial (MonoBtlsX509Crl *crl, void *serial, int len) return mono_btls_x509_revoked_new (crl, revoked); } -int +MONO_API int mono_btls_x509_crl_get_revoked_count (MonoBtlsX509Crl *crl) { STACK_OF(X509_REVOKED) *stack; @@ -107,7 +107,7 @@ mono_btls_x509_crl_get_revoked_count (MonoBtlsX509Crl *crl) return (int)sk_X509_REVOKED_num (stack); } -MonoBtlsX509Revoked * +MONO_API MonoBtlsX509Revoked * mono_btls_x509_crl_get_revoked (MonoBtlsX509Crl *crl, int index) { STACK_OF(X509_REVOKED) *stack; @@ -124,25 +124,25 @@ mono_btls_x509_crl_get_revoked (MonoBtlsX509Crl *crl, int index) return mono_btls_x509_revoked_new (crl, revoked); } -long +MONO_API long mono_btls_x509_crl_get_last_update (MonoBtlsX509Crl *crl) { return mono_btls_util_asn1_time_to_ticks (X509_CRL_get_lastUpdate (crl->crl)); } -long +MONO_API long mono_btls_x509_crl_get_next_update (MonoBtlsX509Crl *crl) { return mono_btls_util_asn1_time_to_ticks (X509_CRL_get_nextUpdate (crl->crl)); } -long +MONO_API long mono_btls_x509_crl_get_version (MonoBtlsX509Crl *crl) { return X509_CRL_get_version (crl->crl); } -MonoBtlsX509Name * +MONO_API MonoBtlsX509Name * mono_btls_x509_crl_get_issuer (MonoBtlsX509Crl *crl) { return mono_btls_x509_name_copy (X509_CRL_get_issuer (crl->crl)); diff --git a/mono/btls/btls-x509-lookup-mono.c b/mono/btls/btls-x509-lookup-mono.c index cce73689469..1d8f7d3ee51 100644 --- a/mono/btls/btls-x509-lookup-mono.c +++ b/mono/btls/btls-x509-lookup-mono.c @@ -29,7 +29,7 @@ struct MonoBtlsX509LookupMono { MonoLookup *lookup; }; -MonoBtlsX509LookupMono * +MONO_API MonoBtlsX509LookupMono * mono_btls_x509_lookup_mono_new (void) { MonoBtlsX509LookupMono *mono; @@ -42,7 +42,7 @@ mono_btls_x509_lookup_mono_new (void) return mono; } -void +MONO_API void mono_btls_x509_lookup_mono_init (MonoBtlsX509LookupMono *mono, const void *instance, MonoBtlsX509LookupMono_BySubject by_subject_func) { @@ -85,7 +85,7 @@ mono_lookup_uninstall (MonoBtlsX509LookupMono *mono) return 0; } -int +MONO_API int mono_btls_x509_lookup_mono_free (MonoBtlsX509LookupMono *mono) { mono->instance = NULL; @@ -211,13 +211,13 @@ static X509_LOOKUP_METHOD mono_lookup_method = { NULL, /* get_by_alias */ }; -X509_LOOKUP_METHOD * +MONO_API X509_LOOKUP_METHOD * mono_btls_x509_lookup_mono_method (void) { return &mono_lookup_method; } -int +MONO_API int mono_btls_x509_lookup_add_mono (MonoBtlsX509Lookup *lookup, MonoBtlsX509LookupMono *mono) { if (mono_btls_x509_lookup_get_type (lookup) != MONO_BTLS_X509_LOOKUP_TYPE_MONO) diff --git a/mono/btls/btls-x509-lookup.c b/mono/btls/btls-x509-lookup.c index 1cfc1741a36..567d19c237a 100644 --- a/mono/btls/btls-x509-lookup.c +++ b/mono/btls/btls-x509-lookup.c @@ -32,7 +32,7 @@ get_lookup_method (MonoBtlsX509LookupType type) } } -MonoBtlsX509Lookup * +MONO_API MonoBtlsX509Lookup * mono_btls_x509_lookup_new (MonoBtlsX509Store *store, MonoBtlsX509LookupType type) { MonoBtlsX509Lookup *lookup; @@ -61,26 +61,26 @@ mono_btls_x509_lookup_new (MonoBtlsX509Store *store, MonoBtlsX509LookupType type return lookup; } -int +MONO_API int mono_btls_x509_lookup_load_file (MonoBtlsX509Lookup *lookup, const char *file, MonoBtlsX509FileType type) { return X509_LOOKUP_load_file (lookup->lookup, file, type); } -int +MONO_API int mono_btls_x509_lookup_add_dir (MonoBtlsX509Lookup *lookup, const char *dir, MonoBtlsX509FileType type) { return X509_LOOKUP_add_dir (lookup->lookup, dir, type); } -MonoBtlsX509Lookup * +MONO_API MonoBtlsX509Lookup * mono_btls_x509_lookup_up_ref (MonoBtlsX509Lookup *lookup) { CRYPTO_refcount_inc (&lookup->references); return lookup; } -int +MONO_API int mono_btls_x509_lookup_free (MonoBtlsX509Lookup *lookup) { if (!CRYPTO_refcount_dec_and_test_zero (&lookup->references)) @@ -101,31 +101,31 @@ mono_btls_x509_lookup_free (MonoBtlsX509Lookup *lookup) return 1; } -int +MONO_API int mono_btls_x509_lookup_init (MonoBtlsX509Lookup *lookup) { return X509_LOOKUP_init (lookup->lookup); } -int +MONO_API int mono_btls_x509_lookup_shutdown (MonoBtlsX509Lookup *lookup) { return X509_LOOKUP_shutdown (lookup->lookup); } -MonoBtlsX509LookupType +MONO_API MonoBtlsX509LookupType mono_btls_x509_lookup_get_type (MonoBtlsX509Lookup *lookup) { return lookup->type; } -X509_LOOKUP * +MONO_API X509_LOOKUP * mono_btls_x509_lookup_peek_lookup (MonoBtlsX509Lookup *lookup) { return lookup->lookup; } -X509 * +MONO_API X509 * mono_btls_x509_lookup_by_subject (MonoBtlsX509Lookup *lookup, MonoBtlsX509Name *name) { X509_OBJECT obj; @@ -142,7 +142,7 @@ mono_btls_x509_lookup_by_subject (MonoBtlsX509Lookup *lookup, MonoBtlsX509Name * return x509; } -X509 * +MONO_API X509 * mono_btls_x509_lookup_by_fingerprint (MonoBtlsX509Lookup *lookup, unsigned char *bytes, int len) { X509_OBJECT obj; diff --git a/mono/btls/btls-x509-name.c b/mono/btls/btls-x509-name.c index 7a40f75b53b..782743f8752 100644 --- a/mono/btls/btls-x509-name.c +++ b/mono/btls/btls-x509-name.c @@ -13,7 +13,7 @@ struct MonoBtlsX509Name { X509_NAME *name; }; -MonoBtlsX509Name * +MONO_API MonoBtlsX509Name * mono_btls_x509_name_from_name (X509_NAME *xn) { MonoBtlsX509Name *name; @@ -27,7 +27,7 @@ mono_btls_x509_name_from_name (X509_NAME *xn) return name; } -MonoBtlsX509Name * +MONO_API MonoBtlsX509Name * mono_btls_x509_name_copy (X509_NAME *xn) { MonoBtlsX509Name *name; @@ -42,7 +42,7 @@ mono_btls_x509_name_copy (X509_NAME *xn) return name; } -void +MONO_API void mono_btls_x509_name_free (MonoBtlsX509Name *name) { if (name->owns) { @@ -54,19 +54,19 @@ mono_btls_x509_name_free (MonoBtlsX509Name *name) OPENSSL_free(name); } -X509_NAME * +MONO_API X509_NAME * mono_btls_x509_name_peek_name (MonoBtlsX509Name *name) { return name->name; } -int +MONO_API int mono_btls_x509_name_print_bio (MonoBtlsX509Name *name, BIO *bio) { return X509_NAME_print_ex (bio, name->name, 0, ASN1_STRFLGS_RFC2253 | XN_FLAG_FN_SN | XN_FLAG_SEP_CPLUS_SPC | XN_FLAG_DN_REV); } -int +MONO_API int mono_btls_x509_name_get_raw_data (MonoBtlsX509Name *name, void **buffer, int use_canon_enc) { int len; @@ -91,7 +91,7 @@ mono_btls_x509_name_get_raw_data (MonoBtlsX509Name *name, void **buffer, int use return len; } -MonoBtlsX509Name * +MONO_API MonoBtlsX509Name * mono_btls_x509_name_from_data (const void *data, int len, int use_canon_enc) { MonoBtlsX509Name *name; @@ -146,26 +146,26 @@ mono_btls_x509_name_from_data (const void *data, int len, int use_canon_enc) return name; } -int +MONO_API int mono_btls_x509_name_print_string (MonoBtlsX509Name *name, char *buffer, int size) { *buffer = 0; return X509_NAME_oneline (name->name, buffer, size) != NULL; } -long +MONO_API long mono_btls_x509_name_hash (MonoBtlsX509Name *name) { return X509_NAME_hash (name->name); } -long +MONO_API long mono_btls_x509_name_hash_old (MonoBtlsX509Name *name) { return X509_NAME_hash_old (name->name); } -int +MONO_API int mono_btls_x509_name_get_entry_count (MonoBtlsX509Name *name) { return X509_NAME_entry_count (name->name); @@ -210,7 +210,7 @@ nid2mono (int nid) } } -MonoBtlsX509NameEntryType +MONO_API MonoBtlsX509NameEntryType mono_btls_x509_name_get_entry_type (MonoBtlsX509Name *name, int index) { X509_NAME_ENTRY *entry; @@ -230,7 +230,7 @@ mono_btls_x509_name_get_entry_type (MonoBtlsX509Name *name, int index) return nid2mono (OBJ_obj2nid (obj)); } -int +MONO_API int mono_btls_x509_name_get_entry_oid (MonoBtlsX509Name *name, int index, char *buffer, int size) { X509_NAME_ENTRY *entry; @@ -250,7 +250,7 @@ mono_btls_x509_name_get_entry_oid (MonoBtlsX509Name *name, int index, char *buff return OBJ_obj2txt (buffer, size, obj, 1); } -int +MONO_API int mono_btls_x509_name_get_entry_oid_data (MonoBtlsX509Name *name, int index, const void **data) { X509_NAME_ENTRY *entry; @@ -271,7 +271,7 @@ mono_btls_x509_name_get_entry_oid_data (MonoBtlsX509Name *name, int index, const return obj->length; } -int +MONO_API int mono_btls_x509_name_get_entry_value (MonoBtlsX509Name *name, int index, int *tag, unsigned char **str) { X509_NAME_ENTRY *entry; diff --git a/mono/btls/btls-x509-revoked.c b/mono/btls/btls-x509-revoked.c index e6fb4b0035f..d0540e6ca10 100644 --- a/mono/btls/btls-x509-revoked.c +++ b/mono/btls/btls-x509-revoked.c @@ -13,7 +13,7 @@ struct MonoBtlsX509Revoked { X509_REVOKED *revoked; }; -MonoBtlsX509Revoked * +MONO_API MonoBtlsX509Revoked * mono_btls_x509_revoked_new (MonoBtlsX509Crl *owner, X509_REVOKED *revoked) { MonoBtlsX509Revoked *instance; @@ -26,14 +26,14 @@ mono_btls_x509_revoked_new (MonoBtlsX509Crl *owner, X509_REVOKED *revoked) return instance; } -void +MONO_API void mono_btls_x509_revoked_free (MonoBtlsX509Revoked *revoked) { mono_btls_x509_crl_free (revoked->owner); OPENSSL_free (revoked); } -int +MONO_API int mono_btls_x509_revoked_get_serial_number (MonoBtlsX509Revoked *revoked, char *buffer, int size) { ASN1_INTEGER *serial; @@ -46,7 +46,7 @@ mono_btls_x509_revoked_get_serial_number (MonoBtlsX509Revoked *revoked, char *bu return serial->length; } -long +MONO_API long mono_btls_x509_revoked_get_revocation_date (MonoBtlsX509Revoked *revoked) { ASN1_TIME *date; @@ -58,13 +58,13 @@ mono_btls_x509_revoked_get_revocation_date (MonoBtlsX509Revoked *revoked) return mono_btls_util_asn1_time_to_ticks (date); } -int +MONO_API int mono_btls_x509_revoked_get_reason (MonoBtlsX509Revoked *revoked) { return revoked->revoked->reason; } -int +MONO_API int mono_btls_x509_revoked_get_sequence (MonoBtlsX509Revoked *revoked) { return revoked->revoked->sequence; diff --git a/mono/btls/btls-x509-store-ctx.c b/mono/btls/btls-x509-store-ctx.c index f023e31a848..8bbb732ac73 100644 --- a/mono/btls/btls-x509-store-ctx.c +++ b/mono/btls/btls-x509-store-ctx.c @@ -16,7 +16,7 @@ struct MonoBtlsX509StoreCtx { MonoBtlsX509Chain *chain; }; -MonoBtlsX509StoreCtx * +MONO_API MonoBtlsX509StoreCtx * mono_btls_x509_store_ctx_from_ptr (X509_STORE_CTX *ptr) { MonoBtlsX509StoreCtx *ctx; @@ -31,7 +31,7 @@ mono_btls_x509_store_ctx_from_ptr (X509_STORE_CTX *ptr) return ctx; } -MonoBtlsX509StoreCtx * +MONO_API MonoBtlsX509StoreCtx * mono_btls_x509_store_ctx_new (void) { MonoBtlsX509StoreCtx *ctx; @@ -47,14 +47,14 @@ mono_btls_x509_store_ctx_new (void) return ctx; } -MonoBtlsX509StoreCtx * +MONO_API MonoBtlsX509StoreCtx * mono_btls_x509_store_ctx_up_ref (MonoBtlsX509StoreCtx *ctx) { CRYPTO_refcount_inc (&ctx->references); return ctx; } -int +MONO_API int mono_btls_x509_store_ctx_free (MonoBtlsX509StoreCtx *ctx) { if (!CRYPTO_refcount_dec_and_test_zero (&ctx->references)) @@ -77,7 +77,7 @@ mono_btls_x509_store_ctx_free (MonoBtlsX509StoreCtx *ctx) return 1; } -int +MONO_API int mono_btls_x509_store_ctx_get_error (MonoBtlsX509StoreCtx *ctx, const char **error_string) { int error; @@ -88,13 +88,13 @@ mono_btls_x509_store_ctx_get_error (MonoBtlsX509StoreCtx *ctx, const char **erro return error; } -int +MONO_API int mono_btls_x509_store_ctx_get_error_depth (MonoBtlsX509StoreCtx *ctx) { return X509_STORE_CTX_get_error_depth (ctx->ctx); } -MonoBtlsX509Chain * +MONO_API MonoBtlsX509Chain * mono_btls_x509_store_ctx_get_chain (MonoBtlsX509StoreCtx *ctx) { STACK_OF(X509) *certs; @@ -106,7 +106,7 @@ mono_btls_x509_store_ctx_get_chain (MonoBtlsX509StoreCtx *ctx) return mono_btls_x509_chain_from_certs (certs); } -MonoBtlsX509Chain * +MONO_API MonoBtlsX509Chain * mono_btls_x509_store_ctx_get_untrusted (MonoBtlsX509StoreCtx *ctx) { STACK_OF(X509) *untrusted; @@ -124,7 +124,7 @@ mono_btls_x509_store_ctx_get_untrusted (MonoBtlsX509StoreCtx *ctx) return mono_btls_x509_chain_from_certs (untrusted); } -int +MONO_API int mono_btls_x509_store_ctx_init (MonoBtlsX509StoreCtx *ctx, MonoBtlsX509Store *store, MonoBtlsX509Chain *chain) { @@ -151,19 +151,19 @@ mono_btls_x509_store_ctx_init (MonoBtlsX509StoreCtx *ctx, return 1; } -int +MONO_API int mono_btls_x509_store_ctx_set_param (MonoBtlsX509StoreCtx *ctx, MonoBtlsX509VerifyParam *param) { return X509_VERIFY_PARAM_set1 (X509_STORE_CTX_get0_param (ctx->ctx), mono_btls_x509_verify_param_peek_param (param)); } -int +MONO_API int mono_btls_x509_store_ctx_verify_cert (MonoBtlsX509StoreCtx *ctx) { return X509_verify_cert (ctx->ctx); } -X509 * +MONO_API X509 * mono_btls_x509_store_ctx_get_by_subject (MonoBtlsX509StoreCtx *ctx, MonoBtlsX509Name *name) { X509_OBJECT obj; @@ -180,7 +180,7 @@ mono_btls_x509_store_ctx_get_by_subject (MonoBtlsX509StoreCtx *ctx, MonoBtlsX509 return x509; } -X509 * +MONO_API X509 * mono_btls_x509_store_ctx_get_current_cert (MonoBtlsX509StoreCtx *ctx) { X509 *x509 = X509_STORE_CTX_get_current_cert (ctx->ctx); @@ -189,7 +189,7 @@ mono_btls_x509_store_ctx_get_current_cert (MonoBtlsX509StoreCtx *ctx) return X509_up_ref (x509); } -X509 * +MONO_API X509 * mono_btls_x509_store_ctx_get_current_issuer (MonoBtlsX509StoreCtx *ctx) { X509 *x509 = X509_STORE_CTX_get0_current_issuer (ctx->ctx); @@ -198,7 +198,7 @@ mono_btls_x509_store_ctx_get_current_issuer (MonoBtlsX509StoreCtx *ctx) return X509_up_ref (x509); } -MonoBtlsX509VerifyParam * +MONO_API MonoBtlsX509VerifyParam * mono_btls_x509_store_ctx_get_verify_param (MonoBtlsX509StoreCtx *ctx) { X509_VERIFY_PARAM *param; @@ -210,8 +210,8 @@ mono_btls_x509_store_ctx_get_verify_param (MonoBtlsX509StoreCtx *ctx) return mono_btls_x509_verify_param_from_store_ctx (ctx, param); } -int +MONO_API int mono_btls_x509_store_ctx_get_foo (MonoBtlsX509StoreCtx *ctx) { return 0; -}
\ No newline at end of file +} diff --git a/mono/btls/btls-x509-store.c b/mono/btls/btls-x509-store.c index f2c826e11f4..3534739a6ee 100644 --- a/mono/btls/btls-x509-store.c +++ b/mono/btls/btls-x509-store.c @@ -13,7 +13,7 @@ struct MonoBtlsX509Store { CRYPTO_refcount_t references; }; -MonoBtlsX509Store * +MONO_API MonoBtlsX509Store * mono_btls_x509_store_from_store (X509_STORE *ctx) { MonoBtlsX509Store *store; @@ -29,13 +29,13 @@ mono_btls_x509_store_from_store (X509_STORE *ctx) return store; } -MonoBtlsX509Store * +MONO_API MonoBtlsX509Store * mono_btls_x509_store_from_ctx (X509_STORE_CTX *ctx) { return mono_btls_x509_store_from_store (ctx->ctx); } -MonoBtlsX509Store * +MONO_API MonoBtlsX509Store * mono_btls_x509_store_new (void) { MonoBtlsX509Store *store; @@ -50,20 +50,20 @@ mono_btls_x509_store_new (void) return store; } -X509_STORE * +MONO_API X509_STORE * mono_btls_x509_store_peek_store (MonoBtlsX509Store *store) { return store->store; } -MonoBtlsX509Store * +MONO_API MonoBtlsX509Store * mono_btls_x509_store_from_ssl_ctx (MonoBtlsSslCtx *ctx) { X509_STORE *store = mono_btls_ssl_ctx_peek_store (ctx); return mono_btls_x509_store_from_store (store); } -int +MONO_API int mono_btls_x509_store_free (MonoBtlsX509Store *store) { if (!CRYPTO_refcount_dec_and_test_zero(&store->references)) @@ -77,32 +77,32 @@ mono_btls_x509_store_free (MonoBtlsX509Store *store) return 1; } -MonoBtlsX509Store * +MONO_API MonoBtlsX509Store * mono_btls_x509_store_up_ref (MonoBtlsX509Store *store) { CRYPTO_refcount_inc (&store->references); return store; } -int +MONO_API int mono_btls_x509_store_add_cert (MonoBtlsX509Store *store, X509 *cert) { return X509_STORE_add_cert (store->store, cert); } -int +MONO_API int mono_btls_x509_store_load_locations (MonoBtlsX509Store *store, const char *file, const char *path) { return X509_STORE_load_locations (store->store, file, path); } -int +MONO_API int mono_btls_x509_store_set_default_paths (MonoBtlsX509Store *store) { return X509_STORE_set_default_paths (store->store); } -int +MONO_API int mono_btls_x509_store_get_count (MonoBtlsX509Store *store) { return (int)sk_X509_OBJECT_num (store->store->objs); diff --git a/mono/btls/btls-x509-verify-param.c b/mono/btls/btls-x509-verify-param.c index 643fdcd43d2..5ac8bdbb099 100644 --- a/mono/btls/btls-x509-verify-param.c +++ b/mono/btls/btls-x509-verify-param.c @@ -15,7 +15,7 @@ struct MonoBtlsX509VerifyParam { X509_VERIFY_PARAM *param; }; -MonoBtlsX509VerifyParam * +MONO_API MonoBtlsX509VerifyParam * mono_btls_x509_verify_param_new (void) { MonoBtlsX509VerifyParam *param; @@ -29,7 +29,7 @@ mono_btls_x509_verify_param_new (void) return param; } -MonoBtlsX509VerifyParam * +MONO_API MonoBtlsX509VerifyParam * mono_btls_x509_verify_param_from_store_ctx (MonoBtlsX509StoreCtx *ctx, X509_VERIFY_PARAM *param) { MonoBtlsX509VerifyParam *instance; @@ -43,7 +43,7 @@ mono_btls_x509_verify_param_from_store_ctx (MonoBtlsX509StoreCtx *ctx, X509_VERI return instance; } -MonoBtlsX509VerifyParam * +MONO_API MonoBtlsX509VerifyParam * mono_btls_x509_verify_param_copy (const MonoBtlsX509VerifyParam *from) { MonoBtlsX509VerifyParam *param; @@ -56,19 +56,19 @@ mono_btls_x509_verify_param_copy (const MonoBtlsX509VerifyParam *from) return param; } -const X509_VERIFY_PARAM * +MONO_API const X509_VERIFY_PARAM * mono_btls_x509_verify_param_peek_param (const MonoBtlsX509VerifyParam *param) { return param->param; } -int +MONO_API int mono_btls_x509_verify_param_can_modify (MonoBtlsX509VerifyParam *param) { return param->owns; } -MonoBtlsX509VerifyParam * +MONO_API MonoBtlsX509VerifyParam * mono_btls_x509_verify_param_lookup (const char *name) { MonoBtlsX509VerifyParam *param; @@ -86,7 +86,7 @@ mono_btls_x509_verify_param_lookup (const char *name) return param; } -void +MONO_API void mono_btls_x509_verify_param_free (MonoBtlsX509VerifyParam *param) { if (param->owns) { @@ -102,7 +102,7 @@ mono_btls_x509_verify_param_free (MonoBtlsX509VerifyParam *param) OPENSSL_free (param); } -int +MONO_API int mono_btls_x509_verify_param_set_name (MonoBtlsX509VerifyParam *param, const char *name) { if (!param->owns) @@ -110,7 +110,7 @@ mono_btls_x509_verify_param_set_name (MonoBtlsX509VerifyParam *param, const char return X509_VERIFY_PARAM_set1_name (param->param, name); } -int +MONO_API int mono_btls_x509_verify_param_set_host (MonoBtlsX509VerifyParam *param, const char *host, int namelen) { if (!param->owns) @@ -118,7 +118,7 @@ mono_btls_x509_verify_param_set_host (MonoBtlsX509VerifyParam *param, const char return X509_VERIFY_PARAM_set1_host (param->param, host, namelen); } -int +MONO_API int mono_btls_x509_verify_param_add_host (MonoBtlsX509VerifyParam *param, const char *host, int namelen) { if (!param->owns) @@ -126,13 +126,13 @@ mono_btls_x509_verify_param_add_host (MonoBtlsX509VerifyParam *param, const char return X509_VERIFY_PARAM_set1_host (param->param, host, namelen); } -unsigned long +MONO_API unsigned long mono_btls_x509_verify_param_get_flags (MonoBtlsX509VerifyParam *param) { return X509_VERIFY_PARAM_get_flags (param->param); } -int +MONO_API int mono_btls_x509_verify_param_set_flags (MonoBtlsX509VerifyParam *param, unsigned long flags) { if (!param->owns) @@ -140,7 +140,7 @@ mono_btls_x509_verify_param_set_flags (MonoBtlsX509VerifyParam *param, unsigned return X509_VERIFY_PARAM_set_flags (param->param, flags); } -MonoBtlsX509VerifyFlags +MONO_API MonoBtlsX509VerifyFlags mono_btls_x509_verify_param_get_mono_flags (MonoBtlsX509VerifyParam *param) { MonoBtlsX509VerifyFlags current; @@ -162,7 +162,7 @@ mono_btls_x509_verify_param_get_mono_flags (MonoBtlsX509VerifyParam *param) return current; } -int +MONO_API int mono_btls_x509_verify_param_set_mono_flags (MonoBtlsX509VerifyParam *param, MonoBtlsX509VerifyFlags flags) { unsigned long current; @@ -181,7 +181,7 @@ mono_btls_x509_verify_param_set_mono_flags (MonoBtlsX509VerifyParam *param, Mono return X509_VERIFY_PARAM_set_flags (param->param, current); } -int +MONO_API int mono_btls_x509_verify_param_set_purpose (MonoBtlsX509VerifyParam *param, MonoBtlsX509Purpose purpose) { if (!param->owns) @@ -189,13 +189,13 @@ mono_btls_x509_verify_param_set_purpose (MonoBtlsX509VerifyParam *param, MonoBtl return X509_VERIFY_PARAM_set_purpose (param->param, purpose); } -int +MONO_API int mono_btls_x509_verify_param_get_depth (MonoBtlsX509VerifyParam *param) { return X509_VERIFY_PARAM_get_depth (param->param); } -int +MONO_API int mono_btls_x509_verify_param_set_depth (MonoBtlsX509VerifyParam *param, int depth) { if (!param->owns) @@ -204,7 +204,7 @@ mono_btls_x509_verify_param_set_depth (MonoBtlsX509VerifyParam *param, int depth return 1; } -int +MONO_API int mono_btls_x509_verify_param_set_time (MonoBtlsX509VerifyParam *param, long time) { if (!param->owns) @@ -213,7 +213,7 @@ mono_btls_x509_verify_param_set_time (MonoBtlsX509VerifyParam *param, long time) return 1; } -char * +MONO_API char * mono_btls_x509_verify_param_get_peername (MonoBtlsX509VerifyParam *param) { char *peer = X509_VERIFY_PARAM_get0_peername (param->param); diff --git a/mono/btls/btls-x509.c b/mono/btls/btls-x509.c index bd3100885cc..ae75f3ce912 100644 --- a/mono/btls/btls-x509.c +++ b/mono/btls/btls-x509.c @@ -10,7 +10,7 @@ #include <openssl/x509v3.h> #include <openssl/pkcs12.h> -X509 * +MONO_API X509 * mono_btls_x509_from_data (const void *buf, int len, MonoBtlsX509Format format) { BIO *bio; @@ -29,52 +29,52 @@ mono_btls_x509_from_data (const void *buf, int len, MonoBtlsX509Format format) return cert; } -X509 * +MONO_API X509 * mono_btls_x509_up_ref (X509 *x509) { X509_up_ref (x509); return x509; } -void +MONO_API void mono_btls_x509_free (X509 *x509) { X509_free (x509); } -X509 * +MONO_API X509 * mono_btls_x509_dup (X509 *x509) { return X509_dup (x509); } -MonoBtlsX509Name * +MONO_API MonoBtlsX509Name * mono_btls_x509_get_subject_name (X509 *x509) { return mono_btls_x509_name_copy (X509_get_subject_name (x509)); } -MonoBtlsX509Name * +MONO_API MonoBtlsX509Name * mono_btls_x509_get_issuer_name (X509 *x509) { return mono_btls_x509_name_copy (X509_get_issuer_name (x509)); } -int +MONO_API int mono_btls_x509_get_subject_name_string (X509 *name, char *buffer, int size) { *buffer = 0; return X509_NAME_oneline (X509_get_subject_name (name), buffer, size) != NULL; } -int +MONO_API int mono_btls_x509_get_issuer_name_string (X509 *name, char *buffer, int size) { *buffer = 0; return X509_NAME_oneline (X509_get_issuer_name (name), buffer, size) != NULL; } -int +MONO_API int mono_btls_x509_get_raw_data (X509 *x509, BIO *bio, MonoBtlsX509Format format) { switch (format) { @@ -87,13 +87,13 @@ mono_btls_x509_get_raw_data (X509 *x509, BIO *bio, MonoBtlsX509Format format) } } -int +MONO_API int mono_btls_x509_cmp (const X509 *a, const X509 *b) { return X509_cmp (a, b); } -int +MONO_API int mono_btls_x509_get_hash (X509 *x509, const void **data) { X509_check_purpose (x509, -1, 0); @@ -101,19 +101,19 @@ mono_btls_x509_get_hash (X509 *x509, const void **data) return SHA_DIGEST_LENGTH; } -long +MONO_API long mono_btls_x509_get_not_before (X509 *x509) { return mono_btls_util_asn1_time_to_ticks (X509_get_notBefore (x509)); } -long +MONO_API long mono_btls_x509_get_not_after (X509 *x509) { return mono_btls_util_asn1_time_to_ticks (X509_get_notAfter (x509)); } -int +MONO_API int mono_btls_x509_get_public_key (X509 *x509, BIO *bio) { EVP_PKEY *pkey; @@ -135,7 +135,7 @@ mono_btls_x509_get_public_key (X509 *x509, BIO *bio) return ret; } -int +MONO_API int mono_btls_x509_get_serial_number (X509 *x509, char *buffer, int size, int mono_style) { ASN1_INTEGER *serial; @@ -172,7 +172,7 @@ mono_btls_x509_get_serial_number (X509 *x509, char *buffer, int size, int mono_s return len; } -int +MONO_API int mono_btls_x509_get_public_key_algorithm (X509 *x509, char *buffer, int size) { X509_PUBKEY *pkey; @@ -191,13 +191,13 @@ mono_btls_x509_get_public_key_algorithm (X509 *x509, char *buffer, int size) return OBJ_obj2txt (buffer, size, ppkalg, 1); } -int +MONO_API int mono_btls_x509_get_version (X509 *x509) { return (int)X509_get_version (x509) + 1; } -int +MONO_API int mono_btls_x509_get_signature_algorithm (X509 *x509, char *buffer, int size) { const ASN1_OBJECT *obj; @@ -214,7 +214,7 @@ mono_btls_x509_get_signature_algorithm (X509 *x509, char *buffer, int size) return OBJ_obj2txt (buffer, size, obj, 1); } -int +MONO_API int mono_btls_x509_get_public_key_asn1 (X509 *x509, char *out_oid, int oid_len, uint8_t **buffer, int *size) { X509_PUBKEY *pkey; @@ -251,7 +251,7 @@ mono_btls_x509_get_public_key_asn1 (X509 *x509, char *out_oid, int oid_len, uint } -int +MONO_API int mono_btls_x509_get_public_key_parameters (X509 *x509, char *out_oid, int oid_len, uint8_t **buffer, int *size) { X509_PUBKEY *pkey; @@ -310,13 +310,13 @@ mono_btls_x509_get_public_key_parameters (X509 *x509, char *out_oid, int oid_len } } -EVP_PKEY * +MONO_API EVP_PKEY * mono_btls_x509_get_pubkey (X509 *x509) { return X509_get_pubkey (x509); } -int +MONO_API int mono_btls_x509_get_subject_key_identifier (X509 *x509, uint8_t **buffer, int *size) { ASN1_OCTET_STRING *skid; @@ -340,7 +340,7 @@ mono_btls_x509_get_subject_key_identifier (X509 *x509, uint8_t **buffer, int *si return 1; } -int +MONO_API int mono_btls_x509_print (X509 *x509, BIO *bio) { return X509_print_ex (bio, x509, XN_FLAG_COMPAT, X509_FLAG_COMPAT); @@ -359,7 +359,7 @@ get_trust_nid (MonoBtlsX509Purpose purpose) } } -int +MONO_API int mono_btls_x509_add_trust_object (X509 *x509, MonoBtlsX509Purpose purpose) { ASN1_OBJECT *trust; @@ -377,7 +377,7 @@ mono_btls_x509_add_trust_object (X509 *x509, MonoBtlsX509Purpose purpose) return X509_add1_trust_object (x509, trust); } -int +MONO_API int mono_btls_x509_add_reject_object (X509 *x509, MonoBtlsX509Purpose purpose) { ASN1_OBJECT *reject; @@ -395,7 +395,7 @@ mono_btls_x509_add_reject_object (X509 *x509, MonoBtlsX509Purpose purpose) return X509_add1_reject_object (x509, reject); } -int +MONO_API int mono_btls_x509_add_explicit_trust (X509 *x509, MonoBtlsX509TrustKind kind) { int ret = 0; diff --git a/mono/metadata/Makefile.am b/mono/metadata/Makefile.am index 3f754d04f3f..b3fd6121b2d 100644 --- a/mono/metadata/Makefile.am +++ b/mono/metadata/Makefile.am @@ -50,6 +50,7 @@ if PLATFORM_ANDROID platform_sources += ../../support/libm/complex.c endif +if !DYNAMIC_BTLS if BTLS btls_file_list := $(shell cat ../btls/build-shared/mono-btls-shared-lo.txt) btls_static_file_list := $(shell cat ../btls/build-static/mono-btls-static-lo.txt) @@ -57,6 +58,7 @@ btls_libs = $(btls_file_list) btls_static_libs = $(btls_static_file_list) btls_cflags = -I$(top_srcdir)/external/boringssl/include -I$(top_srcdir)/mono/btls endif +endif # # libtool is not capable of creating static/shared versions of the same diff --git a/mono/metadata/icall-def.h b/mono/metadata/icall-def.h index 185487662b6..11ba22a6e61 100644 --- a/mono/metadata/icall-def.h +++ b/mono/metadata/icall-def.h @@ -78,7 +78,7 @@ ICALL(NATIVEMETHODS_10, "TerminateProcess", ves_icall_Microsoft_Win32_NativeMeth ICALL(NATIVEMETHODS_11, "WaitForInputIdle", ves_icall_Microsoft_Win32_NativeMethods_WaitForInputIdle) #endif /* !DISABLE_PROCESS_HANDLING */ -#if HAVE_BTLS +#if defined(HAVE_BTLS) && !defined(HAVE_DYNAMIC_BTLS) ICALL_TYPE(BTLS_BIO, "Mono.Btls.MonoBtlsBio", BTLS_BIO_1) ICALL(BTLS_BIO_1, "mono_btls_bio_flush", mono_btls_bio_flush) ICALL(BTLS_BIO_2, "mono_btls_bio_free", mono_btls_bio_free) diff --git a/mono/metadata/icall.c b/mono/metadata/icall.c index 4debd7bf102..116a44fa837 100644 --- a/mono/metadata/icall.c +++ b/mono/metadata/icall.c @@ -105,7 +105,7 @@ #include <sys/utsname.h> #endif -#if HAVE_BTLS +#if defined(HAVE_BTLS) && !defined(HAVE_DYNAMIC_BTLS) #include <btls/btls-ssl.h> #include <btls/btls-bio.h> #include <btls/btls-error.h> diff --git a/runtime/Makefile.am b/runtime/Makefile.am index 068bb1d3dc0..9ca31834655 100644 --- a/runtime/Makefile.am +++ b/runtime/Makefile.am @@ -165,10 +165,13 @@ CLEANFILES = etc/mono/config etc/mono/config: ../data/config Makefile $(symlinks) d=`cd ../support && pwd`; \ sed 's,target="$$mono_libdir/libMonoPosixHelper$(libsuffix)",target="'$$d'/libMonoPosixHelper.la",' ../data/config > $@t + d=`cd ../mono/btls/build-shared && pwd`; \ + sed 's,target="$$mono_libdir/libmono-btls-shared$(libsuffix)",target="'$$d'/libmono-btls-shared$(libsuffix)",' $@t > $@tt if test -z "$(libgdiplus_loc)"; then :; else \ - sed 's,target="$(libgdiplus_install_loc)",target="$(libgdiplus_loc)",' $@t > $@tt; \ - mv -f $@tt $@t; fi - mv -f $@t $@ + sed 's,target="$(libgdiplus_install_loc)",target="$(libgdiplus_loc)",' $@tt > $@ttt; \ + mv -f $@ttt $@tt; fi + mv -f $@tt $@ + rm -f $@t $(tmpinst)/bin/mono: mono-wrapper etc/mono/config $(mkinstalldirs) $(tmpinst)/bin |