2 /* Copyright Gerhard Rieger and contributors (see file CHANGES) */
3 /* Published under the GNU General Public License V.2, see file COPYING */
5 #ifndef __sslcls_h_included
6 #define __sslcls_h_included 1
11 #if HAVE_OPENSSL_INIT_SSL
12 int sycOPENSSL_init_ssl(uint64_t opts
, const void *settings
);
14 void sycSSL_load_error_strings(void);
15 int sycSSL_library_init(void);
16 const SSL_METHOD
*sycTLS_client_method(void);
17 const SSL_METHOD
*sycTLS_server_method(void);
18 const SSL_METHOD
*sycSSLv2_client_method(void);
19 const SSL_METHOD
*sycSSLv2_server_method(void);
20 const SSL_METHOD
*sycSSLv3_client_method(void);
21 const SSL_METHOD
*sycSSLv3_server_method(void);
22 const SSL_METHOD
*sycSSLv23_client_method(void);
23 const SSL_METHOD
*sycSSLv23_server_method(void);
24 const SSL_METHOD
*sycTLSv1_client_method(void);
25 const SSL_METHOD
*sycTLSv1_server_method(void);
26 const SSL_METHOD
*sycTLSv1_1_client_method(void);
27 const SSL_METHOD
*sycTLSv1_1_server_method(void);
28 const SSL_METHOD
*sycTLSv1_2_client_method(void);
29 const SSL_METHOD
*sycTLSv1_2_server_method(void);
30 const SSL_METHOD
*sycDTLS_client_method(void);
31 const SSL_METHOD
*sycDTLS_server_method(void);
32 const SSL_METHOD
*sycDTLSv1_client_method(void);
33 const SSL_METHOD
*sycDTLSv1_server_method(void);
34 const SSL_METHOD
*sycDTLSv1_2_client_method(void);
35 const SSL_METHOD
*sycDTLSv1_2_server_method(void);
36 SSL_CTX
*sycSSL_CTX_new(const SSL_METHOD
*method
);
37 SSL
*sycSSL_new(SSL_CTX
*ctx
);
38 int sycSSL_CTX_load_verify_locations(SSL_CTX
*ctx
, const char *CAfile
,
40 int sycSSL_CTX_use_certificate_file(SSL_CTX
*ctx
, const char *file
, int type
);
41 int sycSSL_CTX_use_certificate_chain_file(SSL_CTX
*ctx
, const char *file
);
42 int sycSSL_CTX_use_PrivateKey_file(SSL_CTX
*ctx
, const char *file
, int type
);
43 void sycSSL_CTX_set_verify(SSL_CTX
*ctx
, int mode
,
44 int (*verify_callback
)(int, X509_STORE_CTX
*));
45 int sycSSL_CTX_set_tmp_dh(SSL_CTX
*ctx
, DH
*dh
);
46 int sycSSL_CTX_set_cipher_list(SSL_CTX
*ctx
, const char *str
);
47 #if HAVE_SSL_CTX_set_tlsext_max_fragment_length || defined(SSL_CTX_set_tlsext_max_fragment_length)
48 int sycSSL_CTX_set_tlsext_max_fragment_length(SSL_CTX
*ctx
, uint8_t mode
);
50 #if HAVE_SSL_CTX_set_max_send_fragment || defined(SSL_CTX_set_max_send_fragment)
51 int sycSSL_CTX_set_max_send_fragment(SSL_CTX
*ctx
, long msf
);
53 int sycSSL_set_cipher_list(SSL
*ssl
, const char *str
);
54 long sycSSL_get_verify_result(SSL
*ssl
);
55 int sycSSL_set_fd(SSL
*ssl
, int fd
);
56 int sycSSL_connect(SSL
*ssl
);
57 int sycSSL_accept(SSL
*ssl
);
58 int sycSSL_read(SSL
*ssl
, void *buf
, int num
);
59 int sycSSL_pending(SSL
*ssl
);
60 int sycSSL_write(SSL
*ssl
, const void *buf
, int num
);
61 X509
*sycSSL_get_peer_certificate(SSL
*ssl
);
62 int sycSSL_shutdown(SSL
*ssl
);
63 void sycSSL_CTX_free(SSL_CTX
*ctx
);
64 void sycSSL_free(SSL
*ssl
);
65 int sycRAND_egd(const char *path
);
67 DH
*sycPEM_read_bio_DHparams(BIO
*bp
, DH
**x
, pem_password_cb
*cb
, void *u
);
69 BIO
*sycBIO_new_file(const char *filename
, const char *mode
);
71 int sycFIPS_mode_set(int onoff
);
73 #if OPENSSL_VERSION_NUMBER >= 0x00908000L && !defined(OPENSSL_NO_COMP)
74 const COMP_METHOD
*sycSSL_get_current_compression(SSL
*ssl
);
75 const COMP_METHOD
*sycSSL_get_current_expansion(SSL
*ssl
);
76 const char *sycSSL_COMP_get_name(const COMP_METHOD
*comp
);
79 #endif /* WITH_OPENSSL */
81 #else /* !WITH_SYCLS */
85 #define sycOPENSSL_init_ssl(o,s) OPENSSL_init_ssl(o,s)
86 #define sycSSL_load_error_strings() SSL_load_error_strings()
87 #define sycSSL_library_init() SSL_library_init()
88 #define sycTLS_client_method() TLS_client_method()
89 #define sycTLS_server_method() TLS_server_method()
90 #define sycSSLv2_client_method() SSLv2_client_method()
91 #define sycSSLv2_server_method() SSLv2_server_method()
92 #define sycSSLv3_client_method() SSLv3_client_method()
93 #define sycSSLv3_server_method() SSLv3_server_method()
94 #define sycSSLv23_client_method() SSLv23_client_method()
95 #define sycSSLv23_server_method() SSLv23_server_method()
96 #define sycTLSv1_client_method() TLSv1_client_method()
97 #define sycTLSv1_server_method() TLSv1_server_method()
98 #define sycTLSv1_1_client_method() TLSv1_1_client_method()
99 #define sycTLSv1_1_server_method() TLSv1_1_server_method()
100 #define sycTLSv1_2_client_method() TLSv1_2_client_method()
101 #define sycTLSv1_2_server_method() TLSv1_2_server_method()
102 #define sycDTLS_client_method() DTLS_client_method()
103 #define sycDTLS_server_method() DTLS_server_method()
104 #define sycDTLSv1_client_method() DTLSv1_client_method()
105 #define sycDTLSv1_server_method() DTLSv1_server_method()
106 #define sycDTLSv1_2_client_method() DTLSv1_2_client_method()
107 #define sycDTLSv1_2_server_method() DTLSv1_2_server_method()
108 #define sycSSL_CTX_new(m) SSL_CTX_new(m)
109 #define sycSSL_new(c) SSL_new(c)
110 #define sycSSL_CTX_load_verify_locations(c,f,p) SSL_CTX_load_verify_locations(c,f,p)
111 #define sycSSL_CTX_use_certificate_file(c,f,t) SSL_CTX_use_certificate_file(c,f,t)
112 #define sycSSL_CTX_use_certificate_chain_file(c,f) SSL_CTX_use_certificate_chain_file(c,f)
113 #define sycSSL_CTX_use_PrivateKey_file(c,f,t) SSL_CTX_use_PrivateKey_file(c,f,t)
114 #define sycSSL_CTX_set_verify(c,m,v) SSL_CTX_set_verify(c,m,v)
115 #define sycSSL_CTX_set_tmp_dh(c,d) SSL_CTX_set_tmp_dh(c,d)
116 #define sycSSL_CTX_set_cipher_list(c,s) SSL_CTX_set_cipher_list(c,s)
117 #if HAVE_SSL_CTX_set_tlsext_max_fragment_length || defined(SSL_CTX_set_tlsext_max_fragment_length)
118 #define sycSSL_CTX_set_tlsext_max_fragment_length(c,m) SSL_CTX_set_tlsext_max_fragment_length(c, m)
120 #if HAVE_SSL_CTX_set_max_send_fragment || defined(SSL_CTX_set_max_send_fragment)
121 #define sycSSL_CTX_set_max_send_fragment(c,m) SSL_CTX_set_max_send_fragment(c, m)
123 #define sycSSL_set_cipher_list(s,t) SSL_set_cipher_list(s,t)
124 #define sycSSL_get_verify_result(s) SSL_get_verify_result(s)
125 #define sycSSL_set_fd(s,f) SSL_set_fd(s,f)
126 #define sycSSL_connect(s) SSL_connect(s)
127 #define sycSSL_accept(s) SSL_accept(s)
128 #define sycSSL_read(s,b,n) SSL_read(s,b,n)
129 #define sycSSL_pending(s) SSL_pending(s)
130 #define sycSSL_write(s,b,n) SSL_write(s,b,n)
131 #define sycSSL_get_peer_certificate(s) SSL_get_peer_certificate(s)
132 #define sycSSL_shutdown(s) SSL_shutdown(s)
133 #define sycSSL_CTX_free(c) SSL_CTX_free(c)
134 #define sycSSL_free(s) SSL_free(s)
135 #define sycRAND_egd(p) RAND_egd(p)
137 #define sycPEM_read_bio_DHparams(b,x,p,u) PEM_read_bio_DHparams(b,x,p,u)
139 #define sycBIO_new_file(f,m) BIO_new_file(f,m)
141 #define sycSSL_get_current_compression(s) SSL_get_current_compression(s)
142 #define sycSSL_get_current_expansion(s) SSL_get_current_expansion(s)
143 #define sycSSL_COMP_get_name(c) SSL_COMP_get_name(c)
145 #endif /* WITH_OPENSSL */
147 #define sycFIPS_mode_set(o) FIPS_mode_set(o)
149 #endif /* !WITH_SYCLS */
151 #endif /* !defined(__sslcls_h_included) */