Uptodate wolfssl works with lighttpd-1.4.x (one warning), working on making lighttpd-1.4.35 work.

This commit is contained in:
Ada Lovelace
2015-07-08 16:39:52 -06:00
parent d68eb12ee6
commit 1383a0f1b5
4 changed files with 234 additions and 3 deletions

145
src/ssl.c
View File

@@ -15133,3 +15133,148 @@ void* wolfSSL_GetRsaDecCtx(WOLFSSL* ssl)
void wolfSSL_cert_service(void) {}
#endif
#ifdef OPENSSL_EXTRA /*Lighttp compatibility*/
#ifdef HAVE_LIGHTY
unsigned char *wolfSSL_SHA1(const unsigned char *d, size_t n, unsigned char *md)
{
(void) *d; (void) n; (void) *md;
return NULL;
}
char WOLFSSL_CTX_use_certificate(WOLFSSL_CTX *ctx, WOLFSSL_X509 *x) {
(void)ctx;
(void)x;
return 0;
}
int WOLFSSL_CTX_use_PrivateKey(WOLFSSL_CTX *ctx, WOLFSSL_EVP_PKEY *pkey) {
(void)ctx;
(void)pkey;
return 0;
}
WOLFSSL_BIO *wolfSSL_BIO_new_file(const char *filename, const char *mode) {
(void)filename;
(void)mode;
return NULL;
}
int wolfSSL_BIO_read_filename(WOLFSSL_BIO *b, const char *name) {
(void)b;
(void)name;
return 0;
}
WOLFSSL_BIO_METHOD* WOLFSSL_BIO_s_file(void) {
return NULL;
}
const char * wolf_OBJ_nid2sn(int n) {
(void)n;
return 0;
}
int wolf_OBJ_obj2nid(const WOLFSSL_ASN1_OBJECT *o) {
(void)o;
return 0;
}
int wolf_OBJ_sn2nid(const char *sn) {
(void)sn;
return 0;
}
WOLFSSL_DH *PEM_read_bio_DHparams(WOLFSSL_BIO *bp, WOLFSSL_DH **x, pem_password_cb *cb, void *u) {
(void)bp;
(void)x;
(void)cb;
(void)u;
return NULL;
}
WOLFSSL_X509 *PEM_read_bio_WOLFSSL_X509(WOLFSSL_BIO *bp, WOLFSSL_X509 **x, pem_password_cb *cb, void *u) {
(void)bp;
(void)x;
(void)cb;
(void)u;
return NULL;
}
int PEM_write_bio_WOLFSSL_X509(WOLFSSL_BIO *bp, WOLFSSL_X509 *x) {
(void)bp;
(void)x;
return 0;
}
long WOLFSSL_CTX_set_tmp_dh(WOLFSSL_CTX *ctx, WOLFSSL_DH *dh) {
(void)ctx;
(void)dh;
return 0;
}
void wolfSSL_CTX_set_verify_depth(WOLFSSL_CTX *ctx,int depth) {
(void)ctx;
(void)depth;
}
void* WOLFSSL_get_app_data( const WOLFSSL *ssl) {
//checkout exdata stuff...
(void)ssl;
return 0;
}
void WOLFSSL_set_app_data(WOLFSSL *ssl, void *arg) {
(void)ssl;
(void)arg;
}
WOLFSSL_ASN1_OBJECT * WOLFSSL_X509_NAME_ENTRY_get_object(WOLFSSL_X509_NAME_ENTRY *ne) {
(void)ne;
return NULL;
}
WOLFSSL_X509_NAME_ENTRY *WOLFSSL_X509_NAME_get_entry(WOLFSSL_X509_NAME *name, int loc) {
(void)name;
(void)loc;
return NULL;
}
void WOLFSSL_X509_NAME_free(WOLFSSL_X509_NAME *name){
FreeX509Name(name);
}
void wolfSSL_sk_X509_NAME_pop_free(STACK_OF(WOLFSSL_X509_NAME)* sk, void f (WOLFSSL_X509_NAME*)){
(void) sk;
(void) f;
}
int wolfSSL_X509_check_private_key(WOLFSSL_X509 *x509, WOLFSSL_EVP_PKEY *key){
(void) x509;
(void) key;
return 0;
}
STACK_OF(WOLFSSL_X509_NAME) *wolfSSL_dup_CA_list( STACK_OF(WOLFSSL_X509_NAME) *sk ){
(void) sk;
return NULL;
}
#endif
#endif

View File

@@ -19,6 +19,10 @@ typedef struct WOLFSSL_DH {
void* internal; /* our DH */
char inSet; /* internal set from external ? */
char exSet; /* external set from internal ? */
/*added for lighttpd openssl compatability, go back and add a getter in
* lighttpd src code.
*/
int length;
} WOLFSSL_DH;

View File

@@ -49,6 +49,7 @@ typedef WOLFSSL_CTX SSL_CTX;
typedef WOLFSSL_X509 X509;
typedef WOLFSSL_X509_NAME X509_NAME;
typedef WOLFSSL_X509_CHAIN X509_CHAIN;
typedef WOLFSSL_ASN1_STRING ASN1_STRING;
/* redeclare guard */
@@ -72,7 +73,6 @@ typedef WOLFSSL_X509_EXTENSION X509_EXTENSION;
typedef WOLFSSL_ASN1_TIME ASN1_TIME;
typedef WOLFSSL_ASN1_INTEGER ASN1_INTEGER;
typedef WOLFSSL_ASN1_OBJECT ASN1_OBJECT;
typedef WOLFSSL_ASN1_STRING ASN1_STRING;
typedef WOLFSSL_dynlock_value CRYPTO_dynlock_value;
#define ASN1_UTCTIME WOLFSSL_ASN1_TIME
@@ -401,6 +401,37 @@ typedef WOLFSSL_X509_STORE_CTX X509_STORE_CTX;
/* yassl had set the default to be 500 */
#define SSL_get_default_timeout(ctx) 500
/* Lighthttp compatability */
#ifdef HAVE_LIGHTY
typedef WOLFSSL_X509_NAME_ENTRY X509_NAME_ENTRY;
#define SSL_CB_HANDSHAKE_START 0x10
#define X509_NAME_free WOLFSSL_X509_NAME_free
#define SSL_CTX_use_certificate WOLFSSL_CTX_use_certificate
#define SSL_CTX_use_PrivateKey WOLFSSL_CTX_use_PrivateKey
#define BIO_new_file wolfSSL_BIO_new_file
#define BIO_read_filename wolfSSL_BIO_read_filename
#define BIO_s_file WOLFSSL_BIO_s_file
#define OBJ_nid2sn wolf_OBJ_nid2sn
#define OBJ_obj2nid wolf_OBJ_obj2nid
#define OBJ_sn2nid wolf_OBJ_sn2nid
#define PEM_read_bio_DHparams PEM_read_bio_DHparams
#define PEM_read_bio_X509 PEM_read_bio_WOLFSSL_X509
#define PEM_write_bio_X509 PEM_write_bio_WOLFSSL_X509
#define SSL_CTX_set_tmp_dh WOLFSSL_CTX_set_tmp_dh
#define SSL_CTX_set_verify_depth wolfSSL_CTX_set_verify_depth
#define SSL_get_app_data WOLFSSL_get_app_data
#define SSL_set_app_data WOLFSSL_set_app_data
#define X509_NAME_entry_count wolfSSL_X509_NAME_entry_count
#define X509_NAME_ENTRY_get_object WOLFSSL_X509_NAME_ENTRY_get_object
#define X509_NAME_get_entry WOLFSSL_X509_NAME_get_entry
#define sk_X509_NAME_pop_free wolfSSL_sk_X509_NAME_pop_free
#define SHA1 wolfSSL_SHA1
#define X509_check_private_key wolfSSL_X509_check_private_key
#define SSL_dup_CA_list wolfSSL_dup_CA_list
#endif
#ifdef __cplusplus
} /* extern "C" */

View File

@@ -90,7 +90,13 @@ typedef struct WOLFSSL_X509_EXTENSION WOLFSSL_X509_EXTENSION;
typedef struct WOLFSSL_ASN1_TIME WOLFSSL_ASN1_TIME;
typedef struct WOLFSSL_ASN1_INTEGER WOLFSSL_ASN1_INTEGER;
typedef struct WOLFSSL_ASN1_OBJECT WOLFSSL_ASN1_OBJECT;
typedef struct WOLFSSL_ASN1_STRING WOLFSSL_ASN1_STRING;
typedef struct WOLFSSL_ASN1_STRING{
#ifdef HAVE_LIGHTY
char* data;
int length;
#endif
} WOLFSSL_ASN1_STRING;
typedef struct WOLFSSL_dynlock_value WOLFSSL_dynlock_value;
#define WOLFSSL_ASN1_UTCTIME WOLFSSL_ASN1_TIME
@@ -144,7 +150,6 @@ typedef struct WOLFSSL_X509_OBJECT {
} data;
} WOLFSSL_X509_OBJECT;
typedef struct WOLFSSL_X509_STORE_CTX {
WOLFSSL_X509_STORE* store; /* Store full of a CA cert chain */
WOLFSSL_X509* current_cert; /* stunnel dereference */
@@ -1492,6 +1497,52 @@ WOLFSSL_API int wolfSSL_accept_ex(WOLFSSL*, HandShakeCallBack, TimeoutCallBack,
#endif
//We also want this to be inside openssl extra, but clang throws an error
#ifdef HAVE_LIGHTY
typedef struct WOLFSSL_X509_NAME_ENTRY {
WOLFSSL_ASN1_OBJECT* object;
WOLFSSL_ASN1_STRING* value;
int set;
int size;
} WOLFSSL_X509_NAME_ENTRY;
#endif
#ifdef OPENSSL_EXTRA /*lighttp compatibility */
#ifdef HAVE_LIGHTY
#include <wolfssl/openssl/dh.h>
WOLFSSL_API void WOLFSSL_X509_NAME_free(WOLFSSL_X509_NAME *name);
WOLFSSL_API char WOLFSSL_CTX_use_certificate(WOLFSSL_CTX *ctx, WOLFSSL_X509 *x);
WOLFSSL_API int WOLFSSL_CTX_use_PrivateKey(WOLFSSL_CTX *ctx, WOLFSSL_EVP_PKEY *pkey);
WOLFSSL_API WOLFSSL_BIO* wolfSSL_BIO_new_file(const char *filename, const char *mode);
WOLFSSL_API int wolfSSL_BIO_read_filename(WOLFSSL_BIO *b, const char *name);
WOLFSSL_API WOLFSSL_BIO_METHOD* WOLFSSL_BIO_s_file(void);
/* These are to be merged shortly */
WOLFSSL_API const char * wolf_OBJ_nid2sn(int n);
WOLFSSL_API int wolf_OBJ_obj2nid(const WOLFSSL_ASN1_OBJECT *o);
WOLFSSL_API int wolf_OBJ_sn2nid(const char *sn);
WOLFSSL_API WOLFSSL_DH *PEM_read_bio_DHparams(WOLFSSL_BIO *bp, WOLFSSL_DH **x, pem_password_cb *cb, void *u);
WOLFSSL_API WOLFSSL_X509 *PEM_read_bio_WOLFSSL_X509(WOLFSSL_BIO *bp, WOLFSSL_X509 **x, pem_password_cb *cb, void *u);
WOLFSSL_API int PEM_write_bio_WOLFSSL_X509(WOLFSSL_BIO *bp, WOLFSSL_X509 *x);
WOLFSSL_API long WOLFSSL_CTX_set_tmp_dh(WOLFSSL_CTX *ctx, WOLFSSL_DH *dh);
WOLFSSL_API void wolfSSL_CTX_set_verify_depth(WOLFSSL_CTX *ctx,int depth);
WOLFSSL_API void* WOLFSSL_get_app_data( const WOLFSSL *ssl);
WOLFSSL_API void WOLFSSL_set_app_data(WOLFSSL *ssl, void *arg);
WOLFSSL_API WOLFSSL_ASN1_OBJECT * WOLFSSL_X509_NAME_ENTRY_get_object(WOLFSSL_X509_NAME_ENTRY *ne);
WOLFSSL_API WOLFSSL_X509_NAME_ENTRY *WOLFSSL_X509_NAME_get_entry(WOLFSSL_X509_NAME *name, int loc);
WOLFSSL_API void wolfSSL_sk_X509_NAME_pop_free(STACK_OF(WOLFSSL_X509_NAME)* sk, void f (WOLFSSL_X509_NAME*));
WOLFSSL_API unsigned char *wolfSSL_SHA1(const unsigned char *d, size_t n, unsigned char *md);
WOLFSSL_API int wolfSSL_X509_check_private_key(WOLFSSL_X509*, WOLFSSL_EVP_PKEY*);
WOLFSSL_API STACK_OF(WOLFSSL_X509_NAME) *wolfSSL_dup_CA_list( STACK_OF(WOLFSSL_X509_NAME) *sk );
/* end lighttpd*/
#endif
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif