/* $Cambridge: hermes/src/mailchk/ssl.h,v 1.1 2003/08/10 22:27:44 dpc22 Exp $ */

/* Error codes that we wont to export to clients */
#define SSL_MAILCHK_RETRY (-2)
#define SSL_MAILCHK_ERROR (-1)

/* Prototypes for ssl.c */

BOOL ssl_is_available();

void ssl_check_rsakey();

void ssl_freshen_rsakey();

void ssl_context_init();

void ssl_context_free(void);

void ssl_shutdown(void *ssl);

int ssl_get_error(void *ssl, int count);

void ssl_free(void *ssl);

void *ssl_start_server(int fd, unsigned long timeout);

void *ssl_start_client(int fd, unsigned long timeout);

int ssl_read(void *ssl, unsigned char *buffer, unsigned long blocksize);

int ssl_write(void *ssl, unsigned char *buffer, unsigned long bytes);

int ssl_pending(void *ssl);
