More disambiguation of Python in makefiles (#18284)
[mono-project.git] / mono / btls / btls-ssl.h
blobd3c1060df9940dad9a02df344ef4ca097ab6676e
1 //
2 // btls-ssl.h
3 // MonoBtls
4 //
5 // Created by Martin Baulig on 14/11/15.
6 // Copyright (c) 2015 Xamarin. All rights reserved.
7 //
9 #ifndef __btls__btls_ssl__
10 #define __btls__btls_ssl__
12 #include "btls-ssl-ctx.h"
14 MONO_API MonoBtlsSsl *
15 mono_btls_ssl_new (MonoBtlsSslCtx *ctx);
17 MONO_API int
18 mono_btls_ssl_use_certificate (MonoBtlsSsl *ptr, X509 *x509);
20 MONO_API int
21 mono_btls_ssl_use_private_key (MonoBtlsSsl *ptr, EVP_PKEY *key);
23 MONO_API int
24 mono_btls_ssl_add_chain_certificate (MonoBtlsSsl *ptr, X509 *x509);
26 MONO_API int
27 mono_btls_ssl_accept (MonoBtlsSsl *ptr);
29 MONO_API int
30 mono_btls_ssl_connect (MonoBtlsSsl *ptr);
32 MONO_API int
33 mono_btls_ssl_handshake (MonoBtlsSsl *ptr);
35 MONO_API void
36 mono_btls_ssl_print_errors_cb (ERR_print_errors_callback_t callback, void *ctx);
38 MONO_API void
39 mono_btls_ssl_set_bio (MonoBtlsSsl *ptr, BIO *bio);
41 MONO_API int
42 mono_btls_ssl_read (MonoBtlsSsl *ptr, void *buf, int count);
44 MONO_API int
45 mono_btls_ssl_write (MonoBtlsSsl *ptr, void *buf, int count);
47 MONO_API int
48 mono_btls_ssl_get_version (MonoBtlsSsl *ptr);
50 MONO_API void
51 mono_btls_ssl_set_min_version (MonoBtlsSsl *ptr, int version);
53 MONO_API void
54 mono_btls_ssl_set_max_version (MonoBtlsSsl *ptr, int version);
56 MONO_API int
57 mono_btls_ssl_get_cipher (MonoBtlsSsl *ptr);
59 MONO_API int
60 mono_btls_ssl_set_cipher_list (MonoBtlsSsl *ptr, const char *str);
62 MONO_API int
63 mono_btls_ssl_get_ciphers (MonoBtlsSsl *ptr, uint16_t **data);
65 MONO_API X509 *
66 mono_btls_ssl_get_peer_certificate (MonoBtlsSsl *ptr);
68 MONO_API void
69 mono_btls_ssl_close (MonoBtlsSsl *ptr);
71 MONO_API int
72 mono_btls_ssl_shutdown (MonoBtlsSsl *ptr);
74 MONO_API void
75 mono_btls_ssl_set_quiet_shutdown (MonoBtlsSsl *ptr, int mode);
77 MONO_API int
78 mono_btls_ssl_get_error (MonoBtlsSsl *ptr, int ret_code);
80 MONO_API int
81 mono_btls_ssl_set_verify_param (MonoBtlsSsl *ptr, const MonoBtlsX509VerifyParam *param);
83 MONO_API int
84 mono_btls_ssl_set_server_name (MonoBtlsSsl *ptr, const char *name);
86 MONO_API const char *
87 mono_btls_ssl_get_server_name (MonoBtlsSsl *ptr);
89 typedef enum {
90 MONO_BTLS_SSL_RENEGOTIATE_NEVER = 0,
91 MONO_BTLS_SSL_RENEGOTIATE_ONCE,
92 MONO_BTLS_SSL_RENEGOTIATE_FREELY,
93 MONO_BTLS_SSL_RENEGOTIATE_IGNORE
94 } MonoBtlsSslRenegotiateMode;
96 MONO_API void
97 mono_btls_ssl_set_renegotiate_mode (MonoBtlsSsl *ptr, MonoBtlsSslRenegotiateMode mode);
99 MONO_API int
100 mono_btls_ssl_renegotiate_pending (MonoBtlsSsl *ptr);
102 MONO_API void
103 mono_btls_ssl_destroy (MonoBtlsSsl *ptr);
105 #endif /* defined(__btls__btls_ssl__) */