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
;
30 extern const struct optdesc opt_openssl_fips
;
32 extern const struct optdesc opt_openssl_commonname
;
35 _xioopen_openssl_prepare(struct opt
*opts
, struct single
*xfd
,
36 bool server
, bool *opt_ver
, const char *opt_cert
,
39 _xioopen_openssl_connect(struct single
*xfd
, bool opt_ver
,
40 const char *opt_commonname
,
41 SSL_CTX
*ctx
, int level
);
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
);
53 extern int xio_reset_fips_mode(void);
54 #endif /* WITH_FIPS */
56 #endif /* WITH_OPENSSL */
58 #endif /* !defined(__xio_openssl_included) */