home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
kermit.columbia.edu
/
kermit.columbia.edu.tar
/
kermit.columbia.edu
/
tmp9
/
ckossl.c
< prev
next >
Wrap
C/C++ Source or Header
|
2011-07-19
|
66KB
|
2,053 lines
/*
C K O S S L . C -- OpenSSL Interface for Kermit 95
Copyright (C) 2000, 2004 Trustees of Columbia University in the City of New
York.
Copyright (C) 2006, 2007 Secure Endpoints Inc.
Author: Jeffrey E Altman (jaltman@secure-endpoints.com)
Secure Endpoints Inc., New York City
*/
#include "ckcdeb.h"
#include "ck_ssl.h"
#ifdef NT
#include <windows.h>
#else /* NT */
#define INCL_DOSMODULEMGR
#define INCL_DOSSEMAPHORES
#include <os2.h>
#endif /* NT */
#include <stdarg.h>
#ifdef OS2
#ifdef CK_SSL
#ifdef SSLDLL
#ifdef NT
HINSTANCE hSSL = NULL;
#else /* NT */
HMODULE hSSL = NULL;
#endif /* NT */
int ssl_dll_loaded=0;
#ifdef NT
HINSTANCE hX5092UID=NULL;
#define SEM_INDEFINITE_WAIT INFINITE
#else /* NT */
HMODULE hX5092UID=NULL;
#endif /* NT */
#ifdef NOT_KERMIT
static int deblog = 0;
#ifdef debug
#undef debug
#endif
#define debug(x,a,b,c)
#ifdef printf
#undef printf
#endif
static int ssl_finished_messages = 0;
static unsigned long startflags = 0;
#endif /* NOT_KERMIT */
int (*p_SSL_get_error)(SSL *ssl,int num)=NULL;
int (*p_SSL_read)(SSL *ssl,char *buf,int num)=NULL;
int (*p_SSL_connect)(SSL *ssl)=NULL;
int (*p_SSL_set_fd)(SSL *s, int fd)=NULL;
void (*p_SSL_free)(SSL *ssl)=NULL;
int (*p_SSL_shutdown)(SSL *s)=NULL;
int (*p_SSL_write)(SSL *ssl,char *buf,int num)=NULL;
int (*p_SSL_pending)(SSL *ssl)=NULL;
int (*p_SSL_peek)(SSL *ssl,char * buf,int num)=NULL;
void (*p_SSL_load_error_strings)(void )=NULL;
X509 * (*p_SSL_get_peer_certificate)(SSL *s)=NULL;
const char * (*p_SSL_CIPHER_get_name)(SSL_CIPHER *c)=NULL;
int (*p_SSL_CIPHER_get_bits)(SSL_CIPHER *c,int *)=NULL;
char * (*p_SSL_CIPHER_get_version)(SSL_CIPHER *c)=NULL;
SSL_CIPHER * (*p_SSL_get_current_cipher)(SSL *s)=NULL;
char * (*p_SSL_get_shared_ciphers)(SSL *s, char *buf, int len)=NULL;
char * (*p_SSL_get_ciphers)(SSL *s)=NULL;
const char * (*p_SSL_get_cipher_list)(SSL *s, int i)=NULL;
int (*p_SSL_CTX_set_default_verify_paths)(SSL_CTX *ctx)=NULL;
int (*p_SSL_use_RSAPrivateKey_file)(SSL *ssl, char *file, int type)=NULL;
int (*p_SSL_use_DSAPrivateKey_file)(SSL *ssl, char *file, int type)=NULL;
int (*p_SSL_use_PrivateKey_file)(SSL *ssl, char *file, int type)=NULL;
int (*p_SSL_use_certificate_file)(SSL *ssl, char *file, int type)=NULL;
int (*p_SSL_CTX_use_PrivateKey_file)(SSL_CTX *ctx, char *file, int type)=NULL;
int (*p_SSL_CTX_use_certificate_file)(SSL_CTX *ctx, char *file, int type)=NULL;
int (*p_SSL_CTX_check_private_key)(SSL_CTX *ctx)=NULL;
int (*p_SSL_check_private_key)(SSL *ssl)=NULL;
void (*p_SSL_set_verify)(SSL *s, int mode, int (*callback) ())=NULL;
void (*p_SSL_CTX_set_verify)(SSL_CTX *ctx, int mode, int (*callback) ())=NULL;
SSL * (*p_SSL_new)(SSL_CTX *ctx)=NULL;
long (*p_SSL_CTX_ctrl)(SSL_CTX *ctx,int cmd, long larg, char *parg)=NULL;
SSL_CTX * (*p_SSL_CTX_new)(SSL_METHOD *meth)=NULL;
void (*p_SSL_CTX_free)(SSL_CTX *ctx)=NULL;
void (*p_SSL_CTX_set_default_passwd_cb)(SSL_CTX *ctx,int (*cb)())=NULL;
SSL_METHOD * (*p_SSLv23_method)(void)=NULL;
SSL_METHOD * (*p_SSLv3_method)(void)=NULL;
SSL_METHOD * (*p_TLSv1_method)(void)=NULL;
SSL_METHOD * (*p_SSLv23_client_method)(void)=NULL;
SSL_METHOD * (*p_SSLv3_client_method)(void)=NULL;
SSL_METHOD * (*p_TLSv1_client_method)(void)=NULL;
SSL_METHOD * (*p_SSLv23_server_method)(void)=NULL;
SSL_METHOD * (*p_SSLv3_server_method)(void)=NULL;
SSL_METHOD * (*p_TLSv1_server_method)(void)=NULL;
void (*p_SSL_library_init)(void)=NULL;
char * (*p_SSL_state_string)(const SSL *s)=NULL;
char * (*p_SSL_state_string_long)(const SSL *s)=NULL;
int (*p_SSL_accept)(SSL *ssl)=NULL;
int (*p_SSL_set_cipher_list)(SSL *ssl,char *s)=NULL;
void (*p_SSL_CTX_set_tmp_rsa_callback)(SSL_CTX *ctx,
RSA *(*cb)(SSL *ssl,int is_export, int keylength))=NULL;
void (*p_SSL_set_tmp_rsa_callback)(SSL *ssl,
RSA *(*cb)(SSL *ssl,int is_export,int keylength))=NULL;
void (*p_SSL_CTX_set_tmp_dh_callback)(SSL_CTX *ctx,
DH *(*dh)(SSL *ssl,int is_export,int keylength))=NULL;
void (*p_SSL_set_tmp_dh_callback)(SSL *ssl,
DH *(*dh)(SSL *ssl,int is_export, int keylength))=NULL;
int (*p_SSL_CTX_load_verify_locations)(SSL_CTX *,char *,char *)=NULL;
void (*p_SSL_CTX_set_default_passwd_cb_userdata)(SSL_CTX *, void *)=NULL;
int (*p_X509_to_user)(X509 *peer_cert, char *userid, int len)=NULL;
int (*p_X509_userok)(X509 *peer_cert, const char *userid)=NULL;
BIO *(*p_SSL_get_wbio)(SSL *)=NULL;
size_t (*p_SSL_get_finished)(SSL *,void *buf, size_t count)=NULL;
size_t (*p_SSL_get_peer_finished)(SSL *,void *buf, size_t count)=NULL;
void (*p_SSL_copy_session_id)(SSL *to,SSL *from)=NULL;
int (*p_SSL_renegotiate)(SSL * ssl)=NULL;
int (*p_SSL_set_session)(SSL *, SSL_SESSION *)=NULL;
SSL_SESSION * (*p_SSL_get_session)(SSL *)=NULL;
int (*p_SSL_CTX_set_session_id_context)(SSL_CTX *ctx,
const unsigned char *sid_ctx,unsigned int sid_ctx_len)=NULL;
EVP_PKEY * (*p_SSL_get_privatekey)(SSL *)=NULL;
X509 * (*p_SSL_get_certificate)(SSL *)=NULL;
int (*p_SSL_clear)(SSL *)=NULL;
void (*p_SSL_set_accept_state)(SSL *)=NULL;
char * (*p_SSL_CIPHER_description)(SSL_CIPHER *,char *buf,int size)=NULL;
void (*p_SSL_CTX_set_info_callback)(SSL_CTX *ctx, void (*cb)(const SSL *ssl,int type,int val))=NULL;
#ifdef SSL_KRB5
KSSL_CTX * (*p_kssl_ctx_new)(void)=NULL;
KSSL_CTX * (*p_kssl_ctx_free)(KSSL_CTX *kssl_ctx)=NULL;
krb5_error_code (*p_kssl_ctx_setstring)(KSSL_CTX *kssl_ctx, int which, char *text)=NULL;
krb5_error_code (*p_kssl_ctx_setprinc)(KSSL_CTX *kssl_ctx, int which,
krb5_data *realm, krb5_data *entity)=NULL;
#endif /* SSL_KRB5 */
int (*p_SSL_COMP_add_compression_method)(int id,COMP_METHOD *cm)=NULL;
int (*p_SSL_CTX_use_certificate_chain_file)(SSL_CTX *ctx, const char *file)=NULL;
static int ssl_shutdown_in_progress = 0;
int
ck_SSL_get_error(SSL *ssl,int num)
{
if ( p_SSL_get_error ) {
int rc;
#ifdef SSL_MUTEX
if (RequestSSLMutex(20000))
return(0);
rc = p_SSL_get_error(ssl,num);
ReleaseSSLMutex();
#else
rc = p_SSL_get_error(ssl,num);
#endif
return(rc);
}
return(0);
}
int
ck_SSL_read(SSL *ssl,char *buf,int num)
{
if ( ssl && !ssl_shutdown_in_progress && p_SSL_read ) {
int rc;
#ifdef SSL_MUTEX
if (RequestSSLMutex(20000))
return(0);
rc = p_SSL_read(ssl,buf,num);;
ReleaseSSLMutex();
#else
rc = p_SSL_read(ssl,buf,num);;
#endif
return(rc);
}
return(0);
}
int
ck_SSL_peek(SSL *ssl,char *buf,int num)
{
if ( ssl && !ssl_shutdown_in_progress && p_SSL_peek ) {
int rc;
#ifdef SSL_MUTEX
if (RequestSSLMutex(20000))
return(0);
rc = p_SSL_peek(ssl,buf,num);
ReleaseSSLMutex();
#else
rc = p_SSL_peek(ssl,buf,num);
#endif
return(rc);
}
return(0);
}
int
ck_SSL_connect(SSL *ssl)
{
if ( ssl && !ssl_shutdown_in_progress && p_SSL_connect ) {
int rc;
#ifdef SSL_MUTEX
if (RequestSSLMutex(20000))
return(0);
rc = p_SSL_connect(ssl);
ReleaseSSLMutex();
#else
rc = p_SSL_connect(ssl);
#endif
return(rc);
}
return(0);
}
int
ck_SSL_set_fd(SSL *ssl, int fd)
{
if ( ssl && !ssl_shutdown_in_progress && p_SSL_set_fd ) {
int rc;
#ifdef SSL_MUTEX
if (RequestSSLMutex(20000))
return(0);
rc = p_SSL_set_fd(ssl,fd);
ReleaseSSLMutex();
#else
rc = p_SSL_set_fd(ssl,fd);
#endif
return(rc);
}
return(0);
}
void
ck_SSL_free(SSL *ssl)
{
if ( p_SSL_free ) {
#ifdef SSL_MUTEX
if (RequestSSLMutex(20000))
return;
p_SSL_free(ssl);
ReleaseSSLMutex();
#else
p_SSL_free(ssl);
#endif
}
}
int
ck_SSL_shutdown(SSL *s)
{
int rc = 0;
if ( p_SSL_shutdown ) {
ssl_shutdown_in_progress = 1;
#ifdef SSL_MUTEX
if (RequestSSLMutex(20000))
return(0);
rc = p_SSL_shutdown(s);
ReleaseSSLMutex();
#else
rc = p_SSL_shutdown(s);
#endif
ssl_shutdown_in_progress = 0;
}
return(rc);
}
int
ck_SSL_write(SSL *ssl,char *buf,int num)
{
if ( ssl && !ssl_shutdown_in_progress && p_SSL_write ) {
int rc;
#ifdef SSL_MUTEX
if (RequestSSLMutex(20000))
return(0);
rc = p_SSL_write(ssl,buf,num);
ReleaseSSLMutex();
#else
rc = p_SSL_write(ssl,buf,num);
#endif
return(rc);
}
return(0);
}
int
ck_SSL_pending(SSL *ssl)
{
if ( ssl && !ssl_shutdown_in_progress && p_SSL_pending ) {
int rc;
#ifdef SSL_MUTEX
if (RequestSSLMutex(20000))
return(0);
rc = p_SSL_pending(ssl);
ReleaseSSLMutex();
#else
rc = p_SSL_pending(ssl);
#endif
return(rc);
}
return(0);
}
void
ck_SSL_load_error_strings(void )
{
if ( p_SSL_load_error_strings )
p_SSL_load_error_strings();
}
X509 *
ck_SSL_get_peer_certificate(SSL *s)
{
if ( p_SSL_get_peer_certificate )
return p_SSL_get_peer_certificate(s);
return(NULL);
}
const char *
ck_SSL_CIPHER_get_name(SSL_CIPHER *c)
{
if ( p_SSL_CIPHER_get_name )
return p_SSL_CIPHER_get_name(c);
return(NULL);
}
int
ck_SSL_CIPHER_get_bits(SSL_CIPHER *c, int * alg_bits)
{
if ( p_SSL_CIPHER_get_bits )
return p_SSL_CIPHER_get_bits(c,alg_bits);
return(0);
}
char *
ck_SSL_CIPHER_get_version(SSL_CIPHER *c)
{
if ( p_SSL_CIPHER_get_version )
return p_SSL_CIPHER_get_version(c);
return(NULL);
}
SSL_CIPHER *
ck_SSL_get_current_cipher(SSL *s)
{
if ( p_SSL_get_current_cipher )
return p_SSL_get_current_cipher(s);
return NULL;
}
char *
ck_SSL_get_shared_ciphers(SSL *s, char *buf, int len)
{
if ( p_SSL_get_shared_ciphers )
return(p_SSL_get_shared_ciphers(s,buf,len));
else
return(NULL);
}
char *
ck_SSL_get_ciphers(SSL *s)
{
if ( p_SSL_get_ciphers )
return(p_SSL_get_ciphers(s));
else
return(NULL);
}
const char *
ck_SSL_get_cipher_list(SSL *s, int i)
{
if ( p_SSL_get_cipher_list )
return(p_SSL_get_cipher_list(s,i));
else
return(NULL);
}
int
ck_SSL_CTX_set_default_verify_paths(SSL_CTX *ctx)
{
if ( p_SSL_CTX_set_default_verify_paths )
return p_SSL_CTX_set_default_verify_paths(ctx);
return 0;
}
int
ck_SSL_use_RSAPrivateKey_file(SSL *ssl, char *file, int type)
{
if ( p_SSL_use_RSAPrivateKey_file )
return p_SSL_use_RSAPrivateKey_file(ssl, file, type);
return(0);
}
int
ck_SSL_use_DSAPrivateKey_file(SSL *ssl, char *file, int type)
{
if ( p_SSL_use_DSAPrivateKey_file )
return p_SSL_use_DSAPrivateKey_file(ssl, file, type);
return(0);
}
int
ck_SSL_use_PrivateKey_file(SSL *ssl, char *file, int type)
{
if ( p_SSL_use_PrivateKey_file )
return p_SSL_use_PrivateKey_file(ssl, file, type);
return(0);
}
int
ck_SSL_use_certificate_file(SSL *ssl, char *file, int type)
{
if ( p_SSL_use_certificate_file )
return p_SSL_use_certificate_file(ssl,file,type);
return(0);
}
int
ck_SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file)
{
if ( p_SSL_CTX_use_certificate_chain_file )
return p_SSL_CTX_use_certificate_chain_file(ctx,file);
return(0);
}
int
ck_SSL_CTX_use_PrivateKey_file(SSL_CTX *ssl, char *file, int type)
{
if ( p_SSL_CTX_use_PrivateKey_file )
return p_SSL_CTX_use_PrivateKey_file(ssl, file, type);
return(0);
}
int
ck_SSL_CTX_use_certificate_file(SSL_CTX *ssl, char *file, int type)
{
if ( p_SSL_CTX_use_certificate_file )
return p_SSL_CTX_use_certificate_file(ssl,file,type);
return(0);
}
int
ck_SSL_CTX_check_private_key(SSL_CTX *ctx) {
if ( p_SSL_CTX_check_private_key )
return p_SSL_CTX_check_private_key(ctx);
return(0);
}
int
ck_SSL_check_private_key(SSL *ssl) {
if ( p_SSL_check_private_key )
return p_SSL_check_private_key(ssl);
return(0);
}
void
ck_SSL_set_verify(SSL *s, int mode, int (*callback) ())
{
if ( p_SSL_set_verify )
p_SSL_set_verify(s,mode,callback);
}
void
ck_SSL_CTX_set_verify(SSL_CTX *s, int mode, int (*callback) ())
{
if ( p_SSL_CTX_set_verify )
p_SSL_CTX_set_verify(s,mode,callback);
}
SSL *
ck_SSL_new(SSL_CTX *ctx)
{
if ( p_SSL_new )
return p_SSL_new(ctx);
return(NULL);
}
long
ck_SSL_CTX_ctrl(SSL_CTX *ctx,int cmd, long larg, char *parg)
{
if ( p_SSL_CTX_ctrl )
return p_SSL_CTX_ctrl(ctx,cmd,larg,parg);
return(0);
}
SSL_CTX *
ck_SSL_CTX_new(SSL_METHOD *meth)
{
if ( p_SSL_CTX_new )
return p_SSL_CTX_new(meth);
return(NULL);
}
void
ck_SSL_CTX_free(SSL_CTX * ctx)
{
if ( p_SSL_CTX_free )
p_SSL_CTX_free(ctx);
}
void
ck_SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx,int (*cb)())
{
if ( p_SSL_CTX_set_default_passwd_cb )
p_SSL_CTX_set_default_passwd_cb(ctx,cb);
}
SSL_METHOD *
ck_SSLv23_method(void)
{
if ( p_SSLv23_method )
return p_SSLv23_method();
return(NULL);
}
SSL_METHOD *
ck_SSLv3_method(void)
{
if ( p_SSLv3_method )
return p_SSLv3_method();
return(NULL);
}
SSL_METHOD *
ck_TLSv1_method(void)
{
if ( p_TLSv1_method )
return p_TLSv1_method();
return(NULL);
}
SSL_METHOD *
ck_SSLv23_client_method(void)
{
if ( p_SSLv23_client_method )
return p_SSLv23_client_method();
return(NULL);
}
SSL_METHOD *
ck_SSLv3_client_method(void)
{
if ( p_SSLv3_client_method )
return p_SSLv3_client_method();
return(NULL);
}
SSL_METHOD *
ck_TLSv1_client_method(void)
{
if ( p_TLSv1_client_method )
return p_TLSv1_client_method();
return(NULL);
}
SSL_METHOD *
ck_SSLv23_server_method(void)
{
if ( p_SSLv23_server_method )
return p_SSLv23_server_method();
return(NULL);
}
SSL_METHOD *
ck_SSLv3_server_method(void)
{
if ( p_SSLv3_server_method )
return p_SSLv3_server_method();
return(NULL);
}
SSL_METHOD *
ck_TLSv1_server_method(void)
{
if ( p_TLSv1_server_method )
return p_TLSv1_server_method();
return(NULL);
}
void
ck_SSL_library_init(void)
{
if ( p_SSL_library_init )
p_SSL_library_init();
}
char *
ck_SSL_state_string(const SSL *s)
{
if ( p_SSL_state_string )
return p_SSL_state_string(s);
return NULL;
}
char *
ck_SSL_state_string_long(const SSL *s)
{
if ( p_SSL_state_string_long )
return p_SSL_state_string_long(s);
return NULL;
}
int
ck_SSL_accept(SSL *ssl)
{
if ( p_SSL_accept )
return p_SSL_accept(ssl);
return(0);
}
int
ck_SSL_set_cipher_list(SSL *ssl,char *s)
{
if ( p_SSL_set_cipher_list )
return p_SSL_set_cipher_list(ssl,s);
return(0);
}
void
ck_SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx,
RSA *(*cb)(SSL *ssl,int is_export, int keylength))
{
if ( p_SSL_CTX_set_tmp_rsa_callback )
p_SSL_CTX_set_tmp_rsa_callback(ctx,cb);
}
void
ck_SSL_set_tmp_rsa_callback(SSL *ssl,
RSA *(*cb)(SSL *ssl,int is_export, int keylength))
{
if ( p_SSL_set_tmp_rsa_callback )
p_SSL_set_tmp_rsa_callback(ssl,cb);
}
void
ck_SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx,
DH *(*dh)(SSL *ssl,int is_export, int keylength))
{
if ( p_SSL_CTX_set_tmp_dh_callback )
p_SSL_CTX_set_tmp_dh_callback(ctx,dh);
}
void
ck_SSL_set_tmp_dh_callback(SSL *ssl,
DH *(*dh)(SSL *ssl,int is_export, int keylength))
{
if ( p_SSL_set_tmp_dh_callback )
p_SSL_set_tmp_dh_callback(ssl,dh);
}
int
ck_SSL_CTX_load_verify_locations(SSL_CTX * ctx,char *f,char *p)
{
if ( p_SSL_CTX_load_verify_locations )
return(p_SSL_CTX_load_verify_locations(ctx,f,p));
return(0);
}
void
ck_SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX * ctx, void * userdata)
{
if ( p_SSL_CTX_set_default_passwd_cb_userdata )
p_SSL_CTX_set_default_passwd_cb_userdata(ctx,userdata);
}
int
ck_X509_userok(X509 *peer_cert, const char *userid)
{
if ( p_X509_userok )
return(p_X509_userok(peer_cert,userid));
else
return(0);
}
int
ck_X509_to_user(X509 *peer_cert, char *userid, int len)
{
if ( p_X509_to_user )
return(p_X509_to_user(peer_cert,userid,len));
else
return(-1);
}
BIO *
ck_SSL_get_wbio(SSL * s)
{
if ( p_SSL_get_wbio )
return(p_SSL_get_wbio(s));
else
return(NULL);
}
size_t
ck_SSL_get_finished(SSL * s,void *buf, size_t count)
{
if ( p_SSL_get_finished )
return(p_SSL_get_finished(s,buf,count));
else
return(0);
}
size_t
ck_SSL_get_peer_finished(SSL * s,void *buf, size_t count)
{
if ( p_SSL_get_peer_finished )
return(p_SSL_get_peer_finished(s,buf,count));
else
return(0);
}
void
ck_SSL_copy_session_id(SSL *to,SSL *from)
{
if ( p_SSL_copy_session_id )
p_SSL_copy_session_id(to,from);
}
int
ck_SSL_renegotiate(SSL * ssl)
{
if ( p_SSL_renegotiate )
return(p_SSL_renegotiate(ssl));
else
return(-1);
}
int
ck_SSL_set_session(SSL *ssl, SSL_SESSION * session)
{
if ( p_SSL_set_session )
return(p_SSL_set_session(ssl,session));
else
return(-1);
}
SSL_SESSION *
ck_SSL_get_session(SSL * ssl)
{
if ( p_SSL_get_session )
return(p_SSL_get_session(ssl));
else
return(NULL);
}
int
ck_SSL_CTX_set_session_id_context(SSL_CTX *ctx,const unsigned char *sid_ctx,
unsigned int sid_ctx_len)
{
if ( p_SSL_CTX_set_session_id_context )
return(p_SSL_CTX_set_session_id_context(ctx,sid_ctx,sid_ctx_len));
else
return(-1);
}
EVP_PKEY *
ck_SSL_get_privatekey(SSL * s)
{
if ( p_SSL_get_privatekey )
return(p_SSL_get_privatekey(s));
else
return(NULL);
}
X509 *
ck_SSL_get_certificate(SSL * s)
{
if ( p_SSL_get_certificate )
return(p_SSL_get_certificate(s));
else
return(NULL);
}
int
ck_SSL_clear(SSL * s)
{
if ( p_SSL_clear )
return(p_SSL_clear(s));
else
return(-1);
}
void
ck_SSL_set_accept_state(SSL * s)
{
if ( p_SSL_set_accept_state )
p_SSL_set_accept_state(s);
}
char *
ck_SSL_CIPHER_description(SSL_CIPHER * c,char *buf,int size)
{
if (p_SSL_CIPHER_description)
return(p_SSL_CIPHER_description(c,buf,size));
else
return(NULL);
}
#ifdef SSL_KRB5
KSSL_CTX *
ck_kssl_ctx_new(void)
{
if ( p_kssl_ctx_new )
return(p_kssl_ctx_new());
else
return(NULL);
}
KSSL_CTX *
ck_kssl_ctx_free(KSSL_CTX *kssl_ctx)
{
if ( p_kssl_ctx_free )
return(p_kssl_ctx_free(kssl_ctx));
else
return(NULL);
}
krb5_error_code
ck_kssl_ctx_setstring(KSSL_CTX *kssl_ctx, int which, char *text)
{
if ( p_kssl_ctx_setstring )
return(p_kssl_ctx_setstring(kssl_ctx,which,text));
else
return(-1);
}
krb5_error_code
ck_kssl_ctx_setprinc(KSSL_CTX *kssl_ctx, int which,
krb5_data *realm, krb5_data *entity)
{
if ( p_kssl_ctx_setprinc )
return(p_kssl_ctx_setprinc(kssl_ctx, which, realm, entity));
else
return(-1);
}
#endif /* SSL_KRB5 */
int
ck_SSL_COMP_add_compression_method(int id,COMP_METHOD *cm)
{
if ( p_SSL_COMP_add_compression_method )
return(p_SSL_COMP_add_compression_method(id,cm));
else
return(-1);
}
void
ck_SSL_CTX_set_info_callback(SSL_CTX *ctx, void (*cb)(const SSL *ssl,int type,int val))
{
if ( p_SSL_CTX_set_info_callback )
p_SSL_CTX_set_info_callback(ctx,cb);
}
int
ck_ssl_loaddll_eh(void)
{
if ( hSSL ) {
#ifdef NT
FreeLibrary(hSSL);
hSSL = NULL;
#else /* NT */
DosFreeModule(hSSL);
hSSL = 0;
#endif /* NT */
}
if ( hX5092UID ) {
#ifdef NT
FreeLibrary(hX5092UID);
hX5092UID = NULL;
#else /* NT */
DosFreeModule(hX5092UID);
hX5092UID = 0;
#endif /* NT */
}
p_SSL_get_error=NULL;
p_SSL_read=NULL;
p_SSL_peek=NULL;
p_SSL_connect=NULL;
p_SSL_set_fd=NULL;
p_SSL_free=NULL;
p_SSL_shutdown=NULL;
p_SSL_write=NULL;
p_SSL_pending=NULL;
p_SSL_load_error_strings=NULL;
p_SSL_get_peer_certificate=NULL;
p_SSL_CIPHER_get_name=NULL;
p_SSL_CIPHER_get_bits=NULL;
p_SSL_CIPHER_get_version=NULL;
p_SSL_get_current_cipher=NULL;
p_SSL_get_shared_ciphers=NULL;
p_SSL_get_ciphers=NULL;
p_SSL_get_cipher_list=NULL;
p_SSL_CTX_set_default_verify_paths=NULL;
p_SSL_use_RSAPrivateKey_file=NULL;
p_SSL_use_DSAPrivateKey_file=NULL;
p_SSL_use_PrivateKey_file=NULL;
p_SSL_use_certificate_file=NULL;
p_SSL_check_private_key=NULL;
p_SSL_CTX_use_PrivateKey_file=NULL;
p_SSL_CTX_use_certificate_file=NULL;
p_SSL_CTX_use_certificate_chain_file=NULL;
p_SSL_CTX_check_private_key=NULL;
p_SSL_set_verify=NULL;
p_SSL_CTX_set_verify=NULL;
p_SSL_new=NULL;
p_SSL_CTX_ctrl=NULL;
p_SSL_CTX_new=NULL;
p_SSL_CTX_free=NULL;
p_SSL_CTX_set_default_passwd_cb=NULL;
p_SSLv23_method=NULL;
p_SSLv3_method=NULL;
p_TLSv1_method=NULL;
p_SSLv23_server_method=NULL;
p_SSLv3_server_method=NULL;
p_TLSv1_server_method=NULL;
p_SSLv23_client_method=NULL;
p_SSLv3_client_method=NULL;
p_TLSv1_client_method=NULL;
p_SSL_library_init=NULL;
p_SSL_state_string=NULL;
p_SSL_state_string_long=NULL;
p_SSL_accept=NULL;
p_SSL_set_cipher_list=NULL;
p_SSL_CTX_set_tmp_rsa_callback=NULL;
p_SSL_set_tmp_rsa_callback=NULL;
p_SSL_CTX_set_tmp_dh_callback=NULL;
p_SSL_set_tmp_dh_callback=NULL;
p_SSL_CTX_load_verify_locations=NULL;
p_SSL_CTX_set_default_passwd_cb_userdata=NULL;
p_X509_to_user=NULL;
p_X509_userok=NULL;
p_SSL_get_wbio=NULL;
p_SSL_get_finished=NULL;
p_SSL_get_peer_finished=NULL;
p_SSL_copy_session_id=NULL;
p_SSL_renegotiate=NULL;
p_SSL_get_session=NULL;
p_SSL_set_session=NULL;
p_SSL_CTX_set_session_id_context=NULL;
p_SSL_get_privatekey=NULL;
p_SSL_get_certificate=NULL;
p_SSL_clear=NULL;
p_SSL_set_accept_state=NULL;
p_SSL_CIPHER_description=NULL;
#ifdef SSL_KRB5
p_kssl_ctx_new = NULL;
p_kssl_ctx_free = NULL;
p_kssl_ctx_setstring = NULL;
p_kssl_ctx_setprinc = NULL;
#endif /* SSL_KRB5 */
p_SSL_COMP_add_compression_method=NULL;
p_SSL_CTX_set_info_callback = NULL;
return(1);
}
int
ck_ssl_loaddll( void )
{
ULONG rc = 0 ;
extern unsigned long startflags;
int load_error = 0;
#ifdef OS2ONLY
CHAR *exe_path;
CHAR path[256];
CHAR * dllname = "SSLEAY2";
CHAR errbuf[256];
#endif /* OS2ONLY */
if ( ssl_dll_loaded )
return(1);
if ( startflags & 8 ) /* do not load if we are not supposed to */
return(0);
#ifdef NT
hSSL = LoadLibrary("SSLEAY32");
if ( !hSSL ) {
rc = GetLastError() ;
debug(F111, "OpenSSL LoadLibrary failed","SSLEAY32",rc) ;
return(0);
} else {
if (((FARPROC) p_SSL_get_error =
GetProcAddress( hSSL, "SSL_get_error" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_get_error",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_read =
GetProcAddress( hSSL, "SSL_read" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_read",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_peek =
GetProcAddress( hSSL, "SSL_peek" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_peek",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_connect =
GetProcAddress( hSSL, "SSL_connect" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_connect",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_set_fd =
GetProcAddress( hSSL, "SSL_set_fd" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_set_fd",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_free =
GetProcAddress( hSSL, "SSL_free" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_free",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_shutdown =
GetProcAddress( hSSL, "SSL_shutdown" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_shutdown",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_write =
GetProcAddress( hSSL, "SSL_write" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_write",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_pending =
GetProcAddress( hSSL, "SSL_pending" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_pending",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_load_error_strings =
GetProcAddress( hSSL, "SSL_load_error_strings" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_load_error_strings",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_get_peer_certificate =
GetProcAddress( hSSL, "SSL_get_peer_certificate" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_get_peer_certificate",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_CIPHER_get_name =
GetProcAddress( hSSL, "SSL_CIPHER_get_name" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_CIPHER_get_name",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_CIPHER_get_bits =
GetProcAddress( hSSL, "SSL_CIPHER_get_bits" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_CIPHER_get_bits",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_CIPHER_get_version =
GetProcAddress( hSSL, "SSL_CIPHER_get_version" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_CIPHER_get_version",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_get_current_cipher =
GetProcAddress( hSSL, "SSL_get_current_cipher" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_get_current_cipher",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_get_shared_ciphers =
GetProcAddress( hSSL, "SSL_get_shared_ciphers" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_get_shared_ciphers",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_get_ciphers =
GetProcAddress( hSSL, "SSL_get_ciphers" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_get_ciphers",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_get_cipher_list =
GetProcAddress( hSSL, "SSL_get_cipher_list" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_get_cipher_list",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_CTX_set_default_verify_paths =
GetProcAddress( hSSL, "SSL_CTX_set_default_verify_paths" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_CTX_set_default_verify_paths",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_use_RSAPrivateKey_file =
GetProcAddress( hSSL, "SSL_use_RSAPrivateKey_file" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_use_RSAPrivateKey_file",rc);
}
if (((FARPROC) p_SSL_use_PrivateKey_file =
GetProcAddress( hSSL, "SSL_use_PrivateKey_file" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_use_PrivateKey_file",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_use_certificate_file =
GetProcAddress( hSSL, "SSL_use_certificate_file" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_use_certificate_file",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_CTX_use_PrivateKey_file =
GetProcAddress( hSSL, "SSL_CTX_use_PrivateKey_file" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_CTX_use_PrivateKey_file",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_CTX_use_certificate_file =
GetProcAddress( hSSL, "SSL_CTX_use_certificate_file" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_CTX_use_certificate_file",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_CTX_use_certificate_chain_file =
GetProcAddress( hSSL, "SSL_CTX_use_certificate_chain_file" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_CTX_use_certificate_chain_file",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_CTX_check_private_key =
GetProcAddress( hSSL, "SSL_CTX_check_private_key" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_CTX_check_private_key",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_check_private_key =
GetProcAddress( hSSL, "SSL_check_private_key" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_check_private_key",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_set_verify =
GetProcAddress( hSSL, "SSL_set_verify" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_set_verify",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_CTX_set_verify =
GetProcAddress( hSSL, "SSL_CTX_set_verify" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_CTX_set_verify",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_new =
GetProcAddress( hSSL, "SSL_new" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_new",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_CTX_ctrl =
GetProcAddress( hSSL, "SSL_CTX_ctrl" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_CTX_ctrl",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_CTX_new =
GetProcAddress( hSSL, "SSL_CTX_new" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_CTX_new",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_CTX_free =
GetProcAddress( hSSL, "SSL_CTX_free" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_CTX_free",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_CTX_set_default_passwd_cb =
GetProcAddress( hSSL, "SSL_CTX_set_default_passwd_cb" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_CTX_set_default_passwd_cb",rc);
load_error = 1;
}
if (((FARPROC) p_SSLv23_method =
GetProcAddress( hSSL, "SSLv23_method" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSLv23_method",rc);
}
if (((FARPROC) p_SSLv3_method =
GetProcAddress( hSSL, "SSLv3_method" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSLv3_method",rc);
}
if (((FARPROC) p_TLSv1_method =
GetProcAddress( hSSL, "TLSv1_method" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","TLSv1_method",rc);
load_error = 1;
}
if (((FARPROC) p_SSLv23_client_method =
GetProcAddress( hSSL, "SSLv23_client_method" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSLv23_client_method",rc);
}
if (((FARPROC) p_SSLv3_client_method =
GetProcAddress( hSSL, "SSLv3_client_method" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSLv3_client_method",rc);
}
if (((FARPROC) p_TLSv1_client_method =
GetProcAddress( hSSL, "TLSv1_client_method" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","TLSv1_client_method",rc);
load_error = 1;
}
if (((FARPROC) p_SSLv23_server_method =
GetProcAddress( hSSL, "SSLv23_server_method" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSLv23_server_method",rc);
}
if (((FARPROC) p_SSLv3_server_method =
GetProcAddress( hSSL, "SSLv3_server_method" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSLv3_server_method",rc);
}
if (((FARPROC) p_TLSv1_server_method =
GetProcAddress( hSSL, "TLSv1_server_method" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","TLSv1_server_method",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_library_init =
GetProcAddress( hSSL, "SSL_library_init" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_library_init",rc);
if (((FARPROC) p_SSL_library_init =
GetProcAddress( hSSL, "OpenSSL_add_ssl_algorithms" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"OpenSSL_add_ssl_algorithms",rc);
load_error = 1;
}
}
if (((FARPROC) p_SSL_state_string =
GetProcAddress( hSSL, "SSL_state_string" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_state_string",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_state_string_long =
GetProcAddress( hSSL, "SSL_state_string_long" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_state_string_long",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_accept =
GetProcAddress( hSSL, "SSL_accept" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_accept",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_set_cipher_list =
GetProcAddress( hSSL, "SSL_set_cipher_list" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_set_cipher_list",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_CTX_set_tmp_rsa_callback =
GetProcAddress( hSSL, "SSL_CTX_set_tmp_rsa_callback" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_CTX_set_tmp_rsa_callback",rc);
}
if (((FARPROC) p_SSL_set_tmp_rsa_callback =
GetProcAddress( hSSL, "SSL_set_tmp_rsa_callback" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_set_tmp_rsa_callback",rc);
}
if (((FARPROC) p_SSL_CTX_set_tmp_dh_callback =
GetProcAddress( hSSL, "SSL_CTX_set_tmp_dh_callback" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_CTX_set_tmp_dh_callback",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_set_tmp_dh_callback =
GetProcAddress( hSSL, "SSL_set_tmp_dh_callback" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_set_tmp_dh_callback",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_CTX_load_verify_locations =
GetProcAddress( hSSL, "SSL_CTX_load_verify_locations" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_CTX_load_verify_locations",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_CTX_set_default_passwd_cb_userdata =
GetProcAddress( hSSL,
"SSL_CTX_set_default_passwd_cb_userdata" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_CTX_set_default_passwd_cb_userdata",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_get_wbio =
GetProcAddress( hSSL, "SSL_get_wbio" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_get_wbio",rc);
load_error = 1;
}
if (((FARPROC) p_SSL_get_finished =
GetProcAddress( hSSL, "SSL_get_finished" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_get_finished",rc);
}
if (((FARPROC) p_SSL_get_peer_finished =
GetProcAddress( hSSL, "SSL_get_peer_finished" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_get_peer_finished",rc);
}
if (((FARPROC) p_SSL_copy_session_id =
GetProcAddress( hSSL, "SSL_copy_session_id" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_copy_session_id",rc);
}
if (((FARPROC) p_SSL_renegotiate =
GetProcAddress( hSSL, "SSL_renegotiate" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_renegotiate",rc);
}
if (((FARPROC) p_SSL_get_session =
GetProcAddress( hSSL, "SSL_get_session" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_get_session",rc);
}
if (((FARPROC) p_SSL_set_session =
GetProcAddress( hSSL, "SSL_set_session" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_set_session",rc);
}
if (((FARPROC) p_SSL_CTX_set_session_id_context =
GetProcAddress( hSSL, "SSL_CTX_set_session_id_context" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_CTX_set_session_id_context",rc);
}
if (((FARPROC) p_SSL_get_privatekey =
GetProcAddress( hSSL, "SSL_get_priavatekey" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_get_privatekey",rc);
}
if (((FARPROC) p_SSL_get_certificate =
GetProcAddress( hSSL, "SSL_get_certificate" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_get_certificate",rc);
}
if (((FARPROC) p_SSL_clear =
GetProcAddress( hSSL, "SSL_clear" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_clear",rc);
}
if (((FARPROC) p_SSL_set_accept_state =
GetProcAddress( hSSL, "SSL_set_accept_state" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_set_accept_state",rc);
}
if (((FARPROC) p_SSL_CIPHER_description =
GetProcAddress( hSSL, "SSL_CIPHER_description" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_CIPHER_description",rc);
}
if (((FARPROC) p_SSL_CTX_set_info_callback =
GetProcAddress( hSSL, "SSL_CTX_set_info_callback" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_CTX_set_info_callback",rc);
}
#ifdef SSL_KRB5
if (((FARPROC) p_kssl_ctx_new =
GetProcAddress( hSSL, "kssl_ctx_new" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"kssl_ctx_new",rc);
}
if (((FARPROC) p_kssl_ctx_free =
GetProcAddress( hSSL, "kssl_ctx_free" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"kssl_ctx_free",rc);
}
if (((FARPROC) p_kssl_ctx_setstring =
GetProcAddress( hSSL, "kssl_ctx_setstring" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"kssl_ctx_setstring",rc);
}
if (((FARPROC) p_kssl_ctx_setprinc =
GetProcAddress( hSSL, "kssl_ctx_setprinc" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"kssl_ctx_setprinc",rc);
}
#endif /* SSL_KRB5 */
if (((FARPROC) p_SSL_COMP_add_compression_method =
GetProcAddress( hSSL, "SSL_COMP_add_compression_method" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_COMP_add_compression_method",rc);
}
if ( load_error ) {
ck_ssl_loaddll_eh();
return 0;
}
}
#else /* NT */
exe_path = GetLoadPath();
sprintf(path, "%.*s%s.DLL", (int)get_dir_len(exe_path), exe_path,dllname);
rc = DosLoadModule(errbuf, 256, path, &hSSL);
if (rc) {
debug(F111, "OpenSSL LoadLibrary failed",path,rc) ;
rc = DosLoadModule(errbuf, 256, dllname, &hSSL);
}
if ( rc ) {
debug(F111, "OpenSSL LoadLibrary failed",errbuf,rc) ;
return(0);
} else {
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_get_error",
(PFN*) &p_SSL_get_error))
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_get_error",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_read",
(PFN*) &p_SSL_read))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_read",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_peek",
(PFN*) &p_SSL_peek))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_peek",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_connect",
(PFN*) &p_SSL_connect))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_connect",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_set_fd",
(PFN*) &p_SSL_set_fd))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_set_fd",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_free",
(PFN*) &p_SSL_free))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_free",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_shutdown",
(PFN*) &p_SSL_shutdown))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_shutdown",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_write",
(PFN*) &p_SSL_write))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_write",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_pending",
(PFN*) &p_SSL_pending))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_pending",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_load_error_strings",
(PFN*) &p_SSL_load_error_strings ))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_load_error_strings",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_get_peer_certificate",
(PFN*) &p_SSL_get_peer_certificate))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_get_peer_certificate",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_CIPHER_get_name",
(PFN*) &p_SSL_CIPHER_get_name))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_CIPHER_get_name",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_CIPHER_get_bits",
(PFN*) &p_SSL_CIPHER_get_bits))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_CIPHER_get_bits",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_CIPHER_get_version",
(PFN*) &p_SSL_CIPHER_get_version))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_CIPHER_get_version",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_get_current_cipher",
(PFN*) &p_SSL_get_current_cipher))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_get_current_cipher",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_get_shared_ciphers",
(PFN*) &p_SSL_get_shared_ciphers))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_get_shared_ciphers",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_get_ciphers",
(PFN*) &p_SSL_get_ciphers))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_get_ciphers",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_get_cipher_list",
(PFN*) &p_SSL_get_cipher_list))
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_get_cipher_list",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_CTX_set_default_verify_paths",
(PFN*) &p_SSL_CTX_set_default_verify_paths))
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_CTX_set_default_verify_paths",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_use_RSAPrivateKey_file",
(PFN*) &p_SSL_use_RSAPrivateKey_file))
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_use_RSAPrivateKey_file",rc);
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_use_PrivateKey_file",
(PFN*) &p_SSL_use_PrivateKey_file))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_use_PrivateKey_file",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_use_certificate_file",
(PFN*) &p_SSL_use_certificate_file))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_use_certificate_file",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_CTX_use_PrivateKey_file",
(PFN*) &p_SSL_CTX_use_PrivateKey_file))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_CTX_use_PrivateKey_file",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_CTX_use_certificate_file",
(PFN*) &p_SSL_CTX_use_certificate_file))
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_CTX_use_certificate_file",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_CTX_use_certificate_chain_file",
(PFN*) &p_SSL_CTX_use_certificate_chain_file))
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_CTX_use_certificate_chain_file",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_CTX_check_private_key",
(PFN*) &p_SSL_CTX_check_private_key))
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_CTX_check_private_key",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_check_private_key",
(PFN*) &p_SSL_check_private_key))
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_check_private_key",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_set_verify",
(PFN*) &p_SSL_set_verify))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_set_verify",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_CTX_set_verify",
(PFN*) &p_SSL_CTX_set_verify))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_CTX_set_verify",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_new",
(PFN*) &p_SSL_new))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_new",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_CTX_ctrl",
(PFN*) &p_SSL_CTX_ctrl))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_CTX_ctrl",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_CTX_new",
(PFN*) &p_SSL_CTX_new))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_CTX_new",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_CTX_free",
(PFN*) &p_SSL_CTX_free))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_CTX_free",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_CTX_set_default_passwd_cb",
(PFN*) &p_SSL_CTX_set_default_passwd_cb))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_CTX_set_default_passwd_cb",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSLv23_method",
(PFN*) &p_SSLv23_method))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSLv23_method",rc);
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSLv3_method",
(PFN*) &p_SSLv3_method))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSLv3_method",rc);
}
if (rc = DosQueryProcAddr( hSSL, 0, "TLSv1_method",
(PFN*) &p_TLSv1_method))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","TLSv1_method",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSLv23_client_method",
(PFN*) &p_SSLv23_client_method))
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSLv23_client_method",rc);
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSLv3_client_method",
(PFN*) &p_SSLv3_client_method) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSLv3_client_method",rc);
}
if (rc = DosQueryProcAddr( hSSL, 0, "TLSv1_client_method",
(PFN*) &p_TLSv1_client_method) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed","TLSv1_client_method",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSLv23_server_method",
(PFN*) &p_SSLv23_server_method) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSLv23_server_method",rc);
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSLv3_server_method",
(PFN*) &p_SSLv3_server_method) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSLv3_server_method",rc);
}
if (rc = DosQueryProcAddr( hSSL, 0, "TLSv1_server_method",
(PFN*) &p_TLSv1_server_method) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed","TLSv1_server_method",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_library_init",
(PFN*) &p_SSL_library_init) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_library_init",rc);
if (rc = DosQueryProcAddr( hSSL, 0, "OpenSSL_add_ssl_algorithms",
(PFN*) &p_SSL_library_init) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"OpenSSL_add_ssl_algorithms",rc);
load_error = 1;
}
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_state_string",
(PFN*) &p_SSL_state_string) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_state_string",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_state_string_long",
(PFN*) &p_SSL_state_string_long) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_state_string_long",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_accept",
(PFN*) &p_SSL_accept) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_accept",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_set_cipher_list",
(PFN*) &p_SSL_set_cipher_list) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed","SSL_set_cipher_list",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_CTX_set_tmp_rsa_callback",
(PFN*) &p_SSL_CTX_set_tmp_rsa_callback) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_CTX_set_tmp_rsa_callback",rc);
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_set_tmp_rsa_callback",
(PFN*) &p_SSL_set_tmp_rsa_callback) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_set_tmp_rsa_callback",rc);
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_CTX_set_tmp_dh_callback",
(PFN*) &p_SSL_CTX_set_tmp_dh_callback) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_CTX_set_tmp_dh_callback",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_set_tmp_dh_callback",
(PFN*) &p_SSL_set_tmp_dh_callback) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_set_tmp_dh_callback",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0, "SSL_CTX_load_verify_locations",
(PFN*) &p_SSL_CTX_load_verify_locations) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_CTX_load_verify_locations",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0,
"SSL_CTX_set_default_passwd_cb_userdata",
(PFN*) &p_SSL_CTX_set_default_passwd_cb_userdata) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_CTX_set_default_passwd_cb_userdata",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0,
"SSL_get_wbio",
(PFN*) &p_SSL_get_wbio) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_get_wbio",rc);
load_error = 1;
}
if (rc = DosQueryProcAddr( hSSL, 0,
"SSL_get_finished",
(PFN*) &p_SSL_get_finished) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_get_finished",rc);
}
if (rc = DosQueryProcAddr( hSSL, 0,
"SSL_get_peer_finished",
(PFN*) &p_SSL_get_peer_finished) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_get_peer_finished",rc);
}
if (rc = DosQueryProcAddr( hSSL, 0,
"SSL_copy_session_id",
(PFN*) &p_SSL_copy_session_id) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_copy_session_id",rc);
}
if (rc = DosQueryProcAddr( hSSL, 0,
"SSL_renegotiate",
(PFN*) &p_SSL_renegotiate) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_renegotiate",rc);
}
if (rc = DosQueryProcAddr( hSSL, 0,
"SSL_get_session",
(PFN*) &p_SSL_get_session) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_get_session",rc);
}
if (rc = DosQueryProcAddr( hSSL, 0,
"SSL_set_session",
(PFN*) &p_SSL_set_session) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_set_session",rc);
}
if (rc = DosQueryProcAddr( hSSL, 0,
"SSL_CTX_set_session_id_context",
(PFN*) &p_SSL_CTX_set_session_id_context) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_CTX_set_session_id_context",rc);
}
if (rc = DosQueryProcAddr( hSSL, 0,
"SSL_get_privatekey",
(PFN*) &p_SSL_get_privatekey) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_get_privatekey",rc);
}
if (rc = DosQueryProcAddr( hSSL, 0,
"SSL_get_certificate",
(PFN*) &p_SSL_get_certificate) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_get_certificate",rc);
}
if (rc = DosQueryProcAddr( hSSL, 0,
"SSL_clear",
(PFN*) &p_SSL_clear) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_clear",rc);
}
if (rc = DosQueryProcAddr( hSSL, 0,
"SSL_set_accept_state",
(PFN*) &p_SSL_set_accept_state) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_set_accept_state",rc);
}
if (rc = DosQueryProcAddr( hSSL, 0,
"SSL_CIPHER_description",
(PFN*) &p_SSL_CIPHER_description) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_CIPHER_description",rc);
}
if (rc = DosQueryProcAddr( hSSL, 0,
"SSL_COMP_add_compression_method",
(PFN*) &p_SSL_COMP_add_compression_method) )
{
debug(F111,"OpenSSL SSL GetProcAddress failed",
"SSL_COMP_add_compression_method",rc);
}
if ( load_error ) {
ck_ssl_loaddll_eh();
return 0;
}
}
#endif /* NT */
ssl_dll_loaded = 1;
if ( deblog ) {
printf("OpenSSL DLLs Loaded\n");
debug(F100,"OpenSSL DLLs Loaded","",0);
}
if ( p_SSL_get_finished &&
p_SSL_get_peer_finished) {
ssl_finished_messages = 1;
if ( deblog ) {
printf("OpenSSL Finished Messages available\n");
debug(F100,"OpenSSL Finished Messages available","",0);
}
}
/* Attempt to load a X509_to_user() function */
#ifdef NT
hX5092UID = LoadLibrary("X5092UID");
if ( hX5092UID ) {
if (((FARPROC) p_X509_to_user =
GetProcAddress( hX5092UID, "X509_to_user" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"X5092UID GetProcAddress failed","X509_to_user",rc);
}
if (((FARPROC) p_X509_userok =
GetProcAddress( hX5092UID, "X509_userok" )) == NULL )
{
rc = GetLastError() ;
debug(F111,"X5092UID GetProcAddress failed","X509_userok",rc);
}
}
#else /* NT */
dllname = "X5092UID";
sprintf(path, "%.*s%s.DLL", (int)get_dir_len(exe_path), exe_path,dllname);
rc = DosLoadModule(errbuf, 256, path, &hX5092UID);
if (rc) {
debug(F111, "X5092UID LoadLibrary failed",path,rc) ;
rc = DosLoadModule(errbuf, 256, dllname, &hX5092UID);
}
if ( !rc ) {
if (rc = DosQueryProcAddr( hX5092UID, 0, "X509_to_user",
(PFN*) &p_X509_to_user))
{
debug(F111,"X5092UID GetProcAddress failed",
"X509_to_user",rc);
}
if (rc = DosQueryProcAddr( hX5092UID, 0, "X509_userok",
(PFN*) &p_X509_userok))
{
debug(F111,"X5092UID GetProcAddress failed",
"X509_userok",rc);
}
}
#endif /* NT */
return(1);
}
int
ck_ssl_unloaddll( void )
{
if ( !ssl_dll_loaded )
return(1);
/* unload dlls */
ck_ssl_loaddll_eh();
/* success */
ssl_dll_loaded = 0;
ssl_finished_messages = 0;
return(1);
}
#endif /* SSLDLL */
#endif /* CK_SSL */
#endif /* OS2 */