2005-06-19 08:20:27 +04:00
/*
Unix SMB / CIFS implementation .
transport layer security handling code
Copyright ( C ) Andrew Tridgell 2005
This program is free software ; you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
2007-07-10 06:07:03 +04:00
the Free Software Foundation ; either version 3 of the License , or
2005-06-19 08:20:27 +04:00
( at your option ) any later version .
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
You should have received a copy of the GNU General Public License
2007-07-10 06:07:03 +04:00
along with this program . If not , see < http : //www.gnu.org/licenses/>.
2005-06-19 08:20:27 +04:00
*/
2005-11-09 11:13:41 +03:00
# ifndef _TLS_H_
# define _TLS_H_
2006-05-23 08:41:09 +04:00
# include "lib/socket/socket.h"
2007-12-03 02:28:22 +03:00
struct loadparm_context ;
2005-06-19 08:20:27 +04:00
/*
call tls_initialise ( ) once per task to startup the tls subsystem
*/
2007-12-03 02:28:22 +03:00
struct tls_params * tls_initialise ( TALLOC_CTX * mem_ctx , struct loadparm_context * lp_ctx ) ;
2005-06-19 08:20:27 +04:00
/*
call tls_init_server ( ) on each new server connection
the ' plain_chars ' parameter is a list of chars that when they occur
as the first character from the client on the connection tell the
tls code that this is a non - tls connection . This can be used to have
tls and non - tls servers on the same port . If this is NULL then only
tls connections will be allowed
*/
2006-05-03 00:15:47 +04:00
struct socket_context * tls_init_server ( struct tls_params * parms ,
2005-06-19 08:20:27 +04:00
struct socket_context * sock ,
2008-12-29 22:24:57 +03:00
struct tevent_fd * fde ,
2006-05-03 00:15:47 +04:00
const char * plain_chars ) ;
2005-06-19 08:20:27 +04:00
2005-06-20 05:15:47 +04:00
/*
call tls_init_client ( ) on each new client connection
*/
2006-05-03 00:15:47 +04:00
struct socket_context * tls_init_client ( struct socket_context * sock ,
2008-12-29 22:24:57 +03:00
struct tevent_fd * fde ,
2007-12-03 02:28:22 +03:00
const char * cafile ) ;
2005-06-19 08:20:27 +04:00
/*
return True if a connection used tls
*/
2007-08-27 22:10:19 +04:00
bool tls_enabled ( struct socket_context * tls ) ;
2005-06-19 08:20:27 +04:00
/*
true if tls support is compiled in
*/
2007-08-27 22:10:19 +04:00
bool tls_support ( struct tls_params * parms ) ;
2005-06-19 08:20:27 +04:00
2006-05-03 00:15:47 +04:00
const struct socket_ops * socket_tls_ops ( enum socket_type type ) ;
2005-06-19 13:31:34 +04:00
2005-11-09 11:13:41 +03:00
# endif