5 // Created by Martin Baulig on 14/11/15.
6 // Copyright (c) 2015 Xamarin. All rights reserved.
9 #ifndef __btls__btls_ssl__
10 #define __btls__btls_ssl__
12 #include <btls-ssl-ctx.h>
15 mono_btls_ssl_new (MonoBtlsSslCtx *ctx);
18 mono_btls_ssl_use_certificate (MonoBtlsSsl *ptr, X509 *x509);
21 mono_btls_ssl_use_private_key (MonoBtlsSsl *ptr, EVP_PKEY *key);
24 mono_btls_ssl_add_chain_certificate (MonoBtlsSsl *ptr, X509 *x509);
27 mono_btls_ssl_accept (MonoBtlsSsl *ptr);
30 mono_btls_ssl_connect (MonoBtlsSsl *ptr);
33 mono_btls_ssl_handshake (MonoBtlsSsl *ptr);
36 mono_btls_ssl_print_errors_cb (ERR_print_errors_callback_t callback, void *ctx);
39 mono_btls_ssl_set_bio (MonoBtlsSsl *ptr, BIO *bio);
42 mono_btls_ssl_read (MonoBtlsSsl *ptr, void *buf, int count);
45 mono_btls_ssl_write (MonoBtlsSsl *ptr, void *buf, int count);
48 mono_btls_ssl_get_version (MonoBtlsSsl *ptr);
51 mono_btls_ssl_set_min_version (MonoBtlsSsl *ptr, int version);
54 mono_btls_ssl_set_max_version (MonoBtlsSsl *ptr, int version);
57 mono_btls_ssl_get_cipher (MonoBtlsSsl *ptr);
60 mono_btls_ssl_set_cipher_list (MonoBtlsSsl *ptr, const char *str);
63 mono_btls_ssl_get_ciphers (MonoBtlsSsl *ptr, uint16_t **data);
66 mono_btls_ssl_get_peer_certificate (MonoBtlsSsl *ptr);
69 mono_btls_ssl_close (MonoBtlsSsl *ptr);
72 mono_btls_ssl_get_error (MonoBtlsSsl *ptr, int ret_code);
75 mono_btls_ssl_set_verify_param (MonoBtlsSsl *ptr, const MonoBtlsX509VerifyParam *param);
78 mono_btls_ssl_set_server_name (MonoBtlsSsl *ptr, const char *name);
81 mono_btls_ssl_get_server_name (MonoBtlsSsl *ptr);
84 mono_btls_ssl_destroy (MonoBtlsSsl *ptr);
86 #endif /* defined(__btls__btls_ssl__) */