1 /* $OpenBSD: ssl.h,v 1.1 2013/01/26 09:37:24 gilles Exp $ */ 2 /* 3 * Copyright (c) 2013 Gilles Chehade <gilles@poolp.org> 4 * 5 * Permission to use, copy, modify, and distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 */ 17 18 #define SSL_CIPHERS "HIGH" 19 #define SSL_SESSION_TIMEOUT 300 20 21 struct ssl { 22 char ssl_name[PATH_MAX]; 23 char *ssl_ca; 24 off_t ssl_ca_len; 25 char *ssl_cert; 26 off_t ssl_cert_len; 27 char *ssl_key; 28 off_t ssl_key_len; 29 char *ssl_dhparams; 30 off_t ssl_dhparams_len; 31 uint8_t flags; 32 }; 33 34 /* ssl.c */ 35 void ssl_init(void); 36 int ssl_setup(SSL_CTX **, struct ssl *); 37 SSL_CTX *ssl_ctx_create(void); 38 int ssl_load_certfile(struct ssl **, const char *, const char *, uint8_t); 39 void *ssl_mta_init(char *, off_t, char *, off_t); 40 void *ssl_smtp_init(void *, char *, off_t, char *, off_t); 41 int ssl_cmp(struct ssl *, struct ssl *); 42 DH *get_dh1024(void); 43 DH *get_dh_from_memory(char *, size_t); 44 void ssl_set_ephemeral_key_exchange(SSL_CTX *, DH *); 45 extern int ssl_ctx_load_verify_memory(SSL_CTX *, char *, off_t); 46 char *ssl_load_file(const char *, off_t *, mode_t); 47 char *ssl_load_key(const char *, off_t *, char *); 48 49 const char *ssl_to_text(const SSL *); 50 void ssl_error(const char *); 51 52 53 /* ssl_privsep.c */ 54 int ssl_ctx_use_private_key(SSL_CTX *, char *, off_t); 55 int ssl_ctx_use_certificate_chain(SSL_CTX *, char *, off_t); 56 int ssl_ctx_load_verify_memory(SSL_CTX *, char *, off_t); 57 int ssl_by_mem_ctrl(X509_LOOKUP *, int, const char *, long, char **); 58