mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-08-01 19:54:40 +02:00
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) {}
|
void wolfSSL_cert_service(void) {}
|
||||||
#endif
|
#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 */
|
void* internal; /* our DH */
|
||||||
char inSet; /* internal set from external ? */
|
char inSet; /* internal set from external ? */
|
||||||
char exSet; /* external set from internal ? */
|
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;
|
} WOLFSSL_DH;
|
||||||
|
|
||||||
|
|
||||||
|
@@ -49,6 +49,7 @@ typedef WOLFSSL_CTX SSL_CTX;
|
|||||||
typedef WOLFSSL_X509 X509;
|
typedef WOLFSSL_X509 X509;
|
||||||
typedef WOLFSSL_X509_NAME X509_NAME;
|
typedef WOLFSSL_X509_NAME X509_NAME;
|
||||||
typedef WOLFSSL_X509_CHAIN X509_CHAIN;
|
typedef WOLFSSL_X509_CHAIN X509_CHAIN;
|
||||||
|
typedef WOLFSSL_ASN1_STRING ASN1_STRING;
|
||||||
|
|
||||||
|
|
||||||
/* redeclare guard */
|
/* redeclare guard */
|
||||||
@@ -72,7 +73,6 @@ typedef WOLFSSL_X509_EXTENSION X509_EXTENSION;
|
|||||||
typedef WOLFSSL_ASN1_TIME ASN1_TIME;
|
typedef WOLFSSL_ASN1_TIME ASN1_TIME;
|
||||||
typedef WOLFSSL_ASN1_INTEGER ASN1_INTEGER;
|
typedef WOLFSSL_ASN1_INTEGER ASN1_INTEGER;
|
||||||
typedef WOLFSSL_ASN1_OBJECT ASN1_OBJECT;
|
typedef WOLFSSL_ASN1_OBJECT ASN1_OBJECT;
|
||||||
typedef WOLFSSL_ASN1_STRING ASN1_STRING;
|
|
||||||
typedef WOLFSSL_dynlock_value CRYPTO_dynlock_value;
|
typedef WOLFSSL_dynlock_value CRYPTO_dynlock_value;
|
||||||
|
|
||||||
#define ASN1_UTCTIME WOLFSSL_ASN1_TIME
|
#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 */
|
/* yassl had set the default to be 500 */
|
||||||
#define SSL_get_default_timeout(ctx) 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
|
#ifdef __cplusplus
|
||||||
} /* extern "C" */
|
} /* 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_TIME WOLFSSL_ASN1_TIME;
|
||||||
typedef struct WOLFSSL_ASN1_INTEGER WOLFSSL_ASN1_INTEGER;
|
typedef struct WOLFSSL_ASN1_INTEGER WOLFSSL_ASN1_INTEGER;
|
||||||
typedef struct WOLFSSL_ASN1_OBJECT WOLFSSL_ASN1_OBJECT;
|
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;
|
typedef struct WOLFSSL_dynlock_value WOLFSSL_dynlock_value;
|
||||||
|
|
||||||
#define WOLFSSL_ASN1_UTCTIME WOLFSSL_ASN1_TIME
|
#define WOLFSSL_ASN1_UTCTIME WOLFSSL_ASN1_TIME
|
||||||
@@ -144,7 +150,6 @@ typedef struct WOLFSSL_X509_OBJECT {
|
|||||||
} data;
|
} data;
|
||||||
} WOLFSSL_X509_OBJECT;
|
} WOLFSSL_X509_OBJECT;
|
||||||
|
|
||||||
|
|
||||||
typedef struct WOLFSSL_X509_STORE_CTX {
|
typedef struct WOLFSSL_X509_STORE_CTX {
|
||||||
WOLFSSL_X509_STORE* store; /* Store full of a CA cert chain */
|
WOLFSSL_X509_STORE* store; /* Store full of a CA cert chain */
|
||||||
WOLFSSL_X509* current_cert; /* stunnel dereference */
|
WOLFSSL_X509* current_cert; /* stunnel dereference */
|
||||||
@@ -1492,6 +1497,52 @@ WOLFSSL_API int wolfSSL_accept_ex(WOLFSSL*, HandShakeCallBack, TimeoutCallBack,
|
|||||||
#endif
|
#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
|
#ifdef __cplusplus
|
||||||
} /* extern "C" */
|
} /* extern "C" */
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user