forked from wolfSSL/wolfssl
Uptodate wolfssl works with lighttpd-1.4.x (one warning), working on making lighttpd-1.4.35 work.
This commit is contained in:
145
src/ssl.c
145
src/ssl.c
@@ -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
|
||||
|
||||
|
@@ -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;
|
||||
|
||||
|
||||
|
@@ -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" */
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user