|
From: Bob T. <bt...@us...> - 2001-08-12 22:40:37
|
Update of /cvsroot/benson/benson3/src
In directory usw-pr-cvs1:/tmp/cvs-serv25091
Modified Files:
Makefile.am Makefile.in benson.h
Added Files:
ssl.c ssl.h
Log Message:
Added some of the SSL code
--- NEW FILE: ssl.c ---
#include "benson.h"
BIO *bio_err=0;
static void sigpipe_handle(int x);
static void sigpipe_handle(int x) {
}
int berr_exit(char *string)
{
BIO_printf(bio_err,"%s\n",string);
ERR_print_errors(bio_err);
exit(0);
}
int password_cb(char *buf, int size, int rwflag, void *password)
{
strncpy(buf, (char *)(password), size);
buf[size - 1] = '\0';
return(strlen(buf));
}
SSL_CTX *initialize_ctx(char *keyfile,char *password)
{
SSL_METHOD *meth;
SSL_CTX *ctx;
struct ssl_password *ssl_pw = malloc(sizeof(struct ssl_password));
if(!bio_err) {
SSL_library_init();
SSL_load_error_strings();
bio_err=BIO_new_fp(stderr,BIO_NOCLOSE);
}
signal(SIGPIPE,sigpipe_handle);
meth=SSLv3_method();
ctx=SSL_CTX_new(meth);
if(!(SSL_CTX_use_certificate_file(ctx,keyfile,SSL_FILETYPE_PEM)))
berr_exit("Couldn't read certificate file");
ssl_pw->password=password;
ssl_pw->length=length(password);
SSL_CTX_set_default_password_cb(ctx, password_cb);
if(!(SSL_CTX_use_PrivateKey_file(ctx,keyfile,SSL_FILETYPE_PEM)))
berr_exit("Couldn't read key file");
if(!(SSL_CTX_load_verify_locations(ctx,CA_LIST,0)))
berr_exit("Couldn't read CA list");
SSL_CTX_set_verify_depth(ctx,1);
if(!(RAND_load_file(RANDOM,1024*1024)))
berr_exit("Couldn't load randomness");
return ctx;
}
void destroy_ctx(SSL_CTX *ctx)
{
SSL_CTX_free(ctx);
}
--- NEW FILE: ssl.h ---
#ifndef __benson_ssl_h
#define __benson_ssl_h
#include <openssl/ssl.h>
struct ssl_password {
char *password;
int length;
};
extern BIO *bio_err;
SSL_CTX *initialize_ctx(char *keyfile, char *password);
void destroy_ctx(SSL_CTX *ctx);
#endif
Index: Makefile.am
===================================================================
RCS file: /cvsroot/benson/benson3/src/Makefile.am,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -r1.1.1.1 -r1.2
*** Makefile.am 2001/08/12 21:20:41 1.1.1.1
--- Makefile.am 2001/08/12 22:40:34 1.2
***************
*** 1,3 ****
lib_LTLIBRARIES = libbenson.la
libbenson_la_LDFLAGS = -no-undefined -version-info 3:0:0
! libbenson_la_SOURCES = shm_wrapper.c
--- 1,3 ----
lib_LTLIBRARIES = libbenson.la
libbenson_la_LDFLAGS = -no-undefined -version-info 3:0:0
! libbenson_la_SOURCES = shm_wrapper.c ssl.c
Index: Makefile.in
===================================================================
RCS file: /cvsroot/benson/benson3/src/Makefile.in,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -r1.1.1.1 -r1.2
*** Makefile.in 2001/08/12 21:20:41 1.1.1.1
--- Makefile.in 2001/08/12 22:40:34 1.2
***************
*** 84,88 ****
lib_LTLIBRARIES = libbenson.la
libbenson_la_LDFLAGS = -no-undefined -version-info 3:0:0
! libbenson_la_SOURCES = shm_wrapper.c
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_CLEAN_FILES =
--- 84,88 ----
lib_LTLIBRARIES = libbenson.la
libbenson_la_LDFLAGS = -no-undefined -version-info 3:0:0
! libbenson_la_SOURCES = shm_wrapper.c ssl.c
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_CLEAN_FILES =
***************
*** 99,103 ****
X_PRE_LIBS = @X_PRE_LIBS@
libbenson_la_LIBADD =
! libbenson_la_OBJECTS = shm_wrapper.lo
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
--- 99,103 ----
X_PRE_LIBS = @X_PRE_LIBS@
libbenson_la_LIBADD =
! libbenson_la_OBJECTS = shm_wrapper.lo ssl.lo
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
***************
*** 112,116 ****
TAR = tar
GZIP_ENV = --best
! DEP_FILES = .deps/shm_wrapper.P
SOURCES = $(libbenson_la_SOURCES)
OBJECTS = $(libbenson_la_OBJECTS)
--- 112,116 ----
TAR = tar
GZIP_ENV = --best
! DEP_FILES = .deps/shm_wrapper.P .deps/ssl.P
SOURCES = $(libbenson_la_SOURCES)
OBJECTS = $(libbenson_la_OBJECTS)
Index: benson.h
===================================================================
RCS file: /cvsroot/benson/benson3/src/benson.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -r1.1.1.1 -r1.2
*** benson.h 2001/08/12 21:20:41 1.1.1.1
--- benson.h 2001/08/12 22:40:34 1.2
***************
*** 2,6 ****
--- 2,12 ----
#define __benson_h
+ #include <signal.h>
#include "shm_wrapper.h"
+ #include "ssl.h"
+
+ #define CA_LIST "root.pem"
+ #define RANDOM "random.pem"
+ #define KEYFILE "key.pem"
#endif /* __benson_h */
|