--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ssl/libssl/inc/libssl_wsd.h Tue Feb 02 02:01:42 2010 +0200
@@ -0,0 +1,197 @@
+/*
+Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+* Neither the name of Nokia Corporation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Description:
+*/
+
+
+#ifndef _LIBSSL_WSD_H_
+#define _LIBSSL_WSD_H_
+
+
+#include <openssl/bio.h>
+#include <openssl/ssl.h>
+#include "libssl_wsd_defs.h"
+
+#ifdef EMULATOR
+
+
+#define SSL_MD_NUM_IDX 2
+#define SSL_ENC_NUM_IDX 9
+
+#define SSL_STR_FUNCTS_NUM 172
+#define SSL_STR_REASONS_NUM 238
+
+#define SSL3_MAX_NUM_CIPHERS 87 /* Must be updated once new ciphers are added. */
+#define SSL2_MAX_NUM_CIPHERS 10 /* Must be updated once new ciphers are added. */
+
+#define SSL3_NUM_CIPHERS (sizeof(temp_ssl3_ciphers)/sizeof(SSL_CIPHER))
+#define SSL2_NUM_CIPHERS (sizeof(temp_ssl2_ciphers)/sizeof(SSL_CIPHER))
+
+/* This is for the SSLv3/TLSv1.0 differences in crypto/hash stuff
+ * It is a bit of a mess of functions, but hell, think of it as
+ * an opaque structure :-) */
+typedef struct ssl3_enc_method
+ {
+ int (*enc)(SSL *, int);
+ int (*mac)(SSL *, unsigned char *, int);
+ int (*setup_key_block)(SSL *);
+ int (*generate_master_secret)(SSL *, unsigned char *, unsigned char *, int);
+ int (*change_cipher_state)(SSL *, int);
+ int (*final_finish_mac)(SSL *, EVP_MD_CTX *, EVP_MD_CTX *, const char *, int, unsigned char *);
+ int finish_mac_length;
+ int (*cert_verify_mac)(SSL *, EVP_MD_CTX *, unsigned char *);
+ const char *client_finished_label;
+ int client_finished_label_len;
+ const char *server_finished_label;
+ int server_finished_label_len;
+ int (*alert_value)(int);
+ } SSL3_ENC_METHOD;
+
+typedef struct{
+
+ /* bio_ssl.c */
+ VARIABLE_DECL(methods_sslp,s,bio_ssl,BIO_METHOD) //static
+
+ /* d1_meth.c */
+ VARIABLE_DECL(DTLSv1_method_data,s,d1_meth,SSL_METHOD) //static
+
+ /* d1_clnt.c */
+ VARIABLE_DECL(DTLSv1_client_method_data,s,d1_clnt,SSL_METHOD) //static
+
+ /* d1_lib.c */
+ VARIABLE_DECL(dtlsv1_base_method_data,s,d1_lib,SSL_METHOD) //static
+
+ /* d1_srvr.c */
+ VARIABLE_DECL(DTLSv1_server_method_data,s,d1_srvr,SSL_METHOD) //static
+
+ /* s23_clnt.c */
+ VARIABLE_DECL(SSLv23_client_method_data,s,s23_clnt,SSL_METHOD) //static
+
+ /* s23_lib.c */
+ VARIABLE_DECL(sslv23_base_method_data,s,s23_lib,SSL_METHOD) //static
+
+ /* s23_meth.c */
+ VARIABLE_DECL(SSLv23_method_data,s,s23_meth,SSL_METHOD) //static
+
+ /* s23_srvr.c */
+ VARIABLE_DECL(SSLv23_server_method_data,s,s23_srvr,SSL_METHOD) //static
+
+ /* s2_clnt.c */
+ VARIABLE_DECL(SSLv2_client_method_data,s,s2_clnt,SSL_METHOD) //static
+
+ /* s2_lib.c */
+ VARIABLE_DECL(sslv2_base_method_data,s,s2_lib,SSL_METHOD) //static
+
+ /* s2_meth.c */
+ VARIABLE_DECL(SSLv2_method_data,s,s2_meth,SSL_METHOD) //static
+
+ /* s2_srvr.c */
+ VARIABLE_DECL(SSLv2_server_method_data,s,s2_srvr,SSL_METHOD) //static
+
+ /* s3_clnt.c */
+ VARIABLE_DECL(SSLv3_client_method_data,s,s3_clnt,SSL_METHOD) //static
+
+ /* s3_lib.c */
+ VARIABLE_DECL(sslv3_base_method_data,s,s3_lib,SSL_METHOD) //static
+
+ /* s3_meth.c */
+ VARIABLE_DECL(SSLv3_method_data,s,s3_meth,SSL_METHOD) //static
+
+ /* s3_srvr.c */
+ VARIABLE_DECL(SSLv3_server_method_data,s,s3_srvr,SSL_METHOD) //static
+
+ /* t1_clnt.c */
+ VARIABLE_DECL(TLSv1_client_method_data,s,t1_clnt,SSL_METHOD) //static
+
+ /* t1_lib.c */
+ VARIABLE_DECL(tlsv1_base_method_data,s,t1_lib,SSL_METHOD) //static
+
+ /* t1_srvr.c */
+ VARIABLE_DECL(TLSv1_server_method_data,s,t1_srvr,SSL_METHOD) //static
+
+ /* t1_meth.c */
+ VARIABLE_DECL(TLSv1_method_data,s,t1_meth,SSL_METHOD) //static
+
+ /* ssl_cert.c */
+ VARIABLE_DECL(ssl_x509_store_ctx_idx,s,ssl_cert,volatile int) //static
+
+ /* ssl_ciph.c */
+ VARIABLE_DECL(ssl_comp_methods,s,ssl_ciph,STACK_OF(SSL_COMP) *) //static
+
+ /* ssl_ciph.c */
+ VARIABLE_DECL_ARRAY(ssl_cipher_methods,s,ssl_ciph,const EVP_CIPHER *,SSL_ENC_NUM_IDX) //static
+
+ /* ssl_ciph.c */
+ VARIABLE_DECL_ARRAY(ssl_digest_methods,s,ssl_ciph,const EVP_MD *,SSL_MD_NUM_IDX) //static
+
+
+ /* ssl_err.c */
+ VARIABLE_DECL_ARRAY(SSL_str_functs,s,ssl_err,ERR_STRING_DATA,SSL_STR_FUNCTS_NUM) //static
+
+ /* ssl_err.c */
+ VARIABLE_DECL_ARRAY(SSL_str_reasons,s,ssl_err,ERR_STRING_DATA,SSL_STR_REASONS_NUM) //static
+
+ /* s3_lib.c */
+ VARIABLE_DECL_ARRAY(ssl3_ciphers,g,s3_lib,SSL_CIPHER,SSL3_MAX_NUM_CIPHERS) //global
+
+ /* s3_lib.c */
+ VARIABLE_DECL_ARRAY(ssl2_ciphers,g,s2_lib,SSL_CIPHER,SSL2_MAX_NUM_CIPHERS) //global
+
+ /* ssl_lib.c */
+ VARIABLE_DECL(ssl3_undef_enc_method,g,ssl_lib,SSL3_ENC_METHOD) //static
+
+ /* d1_lib.c */
+ VARIABLE_DECL(DTLSv1_enc_data,g,d1_lib,SSL3_ENC_METHOD) //static
+
+ /* s3_lib.c */
+ VARIABLE_DECL(SSLv3_enc_data,g,s3_lib,SSL3_ENC_METHOD) //static
+
+ /* t1_lib.c */
+ VARIABLE_DECL(TLSv1_enc_data,g,t1_lib,SSL3_ENC_METHOD) //static
+
+
+}_libssl_wsd;
+
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+void InitSSLWsdVar(struct _libssl_wsd *p);
+
+//void Init_methods_sslp(/*_libssl_wsd *ptr*/);
+
+_libssl_wsd* Libssl_ImpurePtr();
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* EMULATOR */
+#endif /* _LIBSSL_WSD_H_ */