version 1.7.3.0
[socat.git] / xio-openssl.h
blob9cad8f46b8ea42677d0a7f558f38a937520e245a
1 /* source: xio-openssl.h */
2 /* Copyright Gerhard Rieger */
3 /* Published under the GNU General Public License V.2, see file COPYING */
5 #ifndef __xio_openssl_included
6 #define __xio_openssl_included 1
8 #if WITH_OPENSSL /* make this address configure dependend */
10 #define SSLIO_BASE 0x53530000 /* "SSxx" */
11 #define SSLIO_MASK 0xffff0000
13 extern const struct addrdesc addr_openssl;
14 extern const struct addrdesc addr_openssl_listen;
16 extern const struct optdesc opt_openssl_cipherlist;
17 extern const struct optdesc opt_openssl_method;
18 extern const struct optdesc opt_openssl_verify;
19 extern const struct optdesc opt_openssl_certificate;
20 extern const struct optdesc opt_openssl_key;
21 extern const struct optdesc opt_openssl_dhparam;
22 extern const struct optdesc opt_openssl_cafile;
23 extern const struct optdesc opt_openssl_capath;
24 extern const struct optdesc opt_openssl_egd;
25 extern const struct optdesc opt_openssl_pseudo;
26 #if OPENSSL_VERSION_NUMBER >= 0x00908000L
27 extern const struct optdesc opt_openssl_compress;
28 #endif
29 #if WITH_FIPS
30 extern const struct optdesc opt_openssl_fips;
31 #endif
32 extern const struct optdesc opt_openssl_commonname;
34 extern int
35 _xioopen_openssl_prepare(struct opt *opts, struct single *xfd,
36 bool server, bool *opt_ver, const char *opt_cert,
37 SSL_CTX **ctx);
38 extern int
39 _xioopen_openssl_connect(struct single *xfd, bool opt_ver,
40 const char *opt_commonname,
41 SSL_CTX *ctx, int level);
42 extern int
43 _xioopen_openssl_listen(struct single *xfd, bool opt_ver,
44 const char *opt_commonname,
45 SSL_CTX *ctx, int level);
46 extern int xioclose_openssl(xiofile_t *xfd);
47 extern int xioshutdown_openssl(xiofile_t *xfd, int how);
48 extern ssize_t xioread_openssl(struct single *file, void *buff, size_t bufsiz);
49 extern ssize_t xiopending_openssl(struct single *pipe);
50 extern ssize_t xiowrite_openssl(struct single *file, const void *buff, size_t bufsiz);
52 #if WITH_FIPS
53 extern int xio_reset_fips_mode(void);
54 #endif /* WITH_FIPS */
56 #endif /* WITH_OPENSSL */
58 #endif /* !defined(__xio_openssl_included) */