projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #5059 from lambdageek/tbt
[mono.git]
/
mono
/
btls
/
btls-ssl.c
diff --git
a/mono/btls/btls-ssl.c
b/mono/btls/btls-ssl.c
index fa3e53d4cdf86cfa6de30b1c15802ca3c4ce2105..17291b5c585e18cd0f11e2c2b4f8bb8c01766776 100644
(file)
--- 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);
STACK_OF(SSL_CIPHER) *ssl_bytes_to_cipher_list (SSL *s, const CBS *cbs);
-MonoBtlsSsl *
+M
ONO_API M
onoBtlsSsl *
mono_btls_ssl_new (MonoBtlsSslCtx *ctx)
{
MonoBtlsSsl *ptr;
mono_btls_ssl_new (MonoBtlsSslCtx *ctx)
{
MonoBtlsSsl *ptr;
@@
-36,12
+36,10
@@
mono_btls_ssl_new (MonoBtlsSslCtx *ctx)
ptr->ctx = mono_btls_ssl_ctx_up_ref (ctx);
ptr->ssl = SSL_new (mono_btls_ssl_ctx_get_ctx (ptr->ctx));
ptr->ctx = mono_btls_ssl_ctx_up_ref (ctx);
ptr->ssl = SSL_new (mono_btls_ssl_ctx_get_ctx (ptr->ctx));
- SSL_set_options (ptr->ssl, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3);
-
return ptr;
}
return ptr;
}
-void
+
MONO_API
void
mono_btls_ssl_destroy (MonoBtlsSsl *ptr)
{
mono_btls_ssl_close (ptr);
mono_btls_ssl_destroy (MonoBtlsSsl *ptr)
{
mono_btls_ssl_close (ptr);
@@
-56,92
+54,104
@@
mono_btls_ssl_destroy (MonoBtlsSsl *ptr)
free (ptr);
}
free (ptr);
}
-void
+
MONO_API
void
mono_btls_ssl_close (MonoBtlsSsl *ptr)
{
;
}
mono_btls_ssl_close (MonoBtlsSsl *ptr)
{
;
}
-void
+MONO_API int
+mono_btls_ssl_shutdown (MonoBtlsSsl *ptr)
+{
+ return SSL_shutdown (ptr->ssl);
+}
+
+MONO_API void
+mono_btls_ssl_set_quiet_shutdown (MonoBtlsSsl *ptr, int mode)
+{
+ SSL_set_quiet_shutdown (ptr->ssl, mode);
+}
+
+MONO_API void
mono_btls_ssl_set_bio (MonoBtlsSsl *ptr, BIO *bio)
{
BIO_up_ref (bio);
SSL_set_bio (ptr->ssl, bio, bio);
}
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}
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);
}
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;
mono_btls_ssl_get_cipher (MonoBtlsSsl *ptr)
{
const SSL_CIPHER *cipher;
@@
-152,13
+162,13
@@
mono_btls_ssl_get_cipher (MonoBtlsSsl *ptr)
return (uint16_t)SSL_CIPHER_get_id (cipher);
}
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);
}
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;
mono_btls_ssl_get_ciphers (MonoBtlsSsl *ptr, uint16_t **data)
{
STACK_OF(SSL_CIPHER) *ciphers;
@@
-184,26
+194,32
@@
mono_btls_ssl_get_ciphers (MonoBtlsSsl *ptr, uint16_t **data)
return count;
}
return count;
}
-X509 *
+
MONO_API
X509 *
mono_btls_ssl_get_peer_certificate (MonoBtlsSsl *ptr)
{
return SSL_get_peer_certificate (ptr->ssl);
}
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);
}
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));
}
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);
}
mono_btls_ssl_set_server_name (MonoBtlsSsl *ptr, const char *name)
{
return SSL_set_tlsext_host_name (ptr->ssl, name);
}
+
+MONO_API const char *
+mono_btls_ssl_get_server_name (MonoBtlsSsl *ptr)
+{
+ return SSL_get_servername (ptr->ssl, TLSEXT_NAMETYPE_host_name);
+}