diff --git a/src/ssl.c b/src/ssl.c index 5049e21e6..242325089 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -14288,6 +14288,11 @@ WOLFSSL_COMP_METHOD* wolfSSL_COMP_rle(void) return 0; } +int sk_SSL_COMP_zero(WOLFSSL* st) +{ + wolfSSL_set_options(st, SSL_OP_NO_COMPRESSION); + return 0; +} int wolfSSL_COMP_add_compression_method(int method, void* data) { @@ -15392,6 +15397,14 @@ long wolfSSL_set_tlsext_debug_arg(WOLFSSL* ssl, void *arg) } #endif /* HAVE_PK_CALLBACKS */ +#ifdef WOLFSSL_HAPROXY +const unsigned char *SSL_SESSION_get0_id_context(const SSL_SESSION *sess, unsigned int *sid_ctx_length) +{ + const byte *c = wolfSSL_SESSION_get_id((SSL_SESSION *)sess, sid_ctx_length); + return c; +} +#endif + /*** TBD ***/ WOLFSSL_API long wolfSSL_set_tlsext_status_type(WOLFSSL *s, int type) { @@ -15432,6 +15445,169 @@ WOLFSSL_API long wolfSSL_set_tlsext_status_ids(WOLFSSL *s, void *arg) return 0; } +/*** TBD ***/ +int SSL_SESSION_set1_id(WOLFSSL_SESSION *s, const unsigned char *sid, unsigned int sid_len) +{ + (void)s; + (void)sid; + (void)sid_len; + return 1; +} + +/*** TBD ***/ +int SSL_SESSION_set1_id_context(SSL_SESSION *s, const unsigned char *sid_ctx, unsigned int sid_ctx_len) +{ + (void)s; + (void)sid_ctx; + (void)sid_ctx_len; + return 1; +} + +/*** TBD ***/ +void *X509_get0_tbs_sigalg(const X509 *x) +{ + (void)x; + return NULL; +} + +/*** TBD ***/ +void X509_ALGOR_get0(ASN1_OBJECT **paobj, int *pptype, const void **ppval, const void *algor) +{ + (void)paobj; + (void)pptype; + (void)ppval; + (void)algor; +} + +/*** TBD ***/ +void *X509_get_X509_PUBKEY(void * x) +{ + (void)x; + return NULL; +} + +/*** TBD ***/ +int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg, const unsigned char **pk, int *ppklen, void **pa, WOLFSSL_EVP_PKEY *pub) +{ + (void)ppkalg; + (void)pk; + (void)ppklen; + (void)pa; + (void)pub; + return 1; +} + +/*** TBD ***/ +struct evp_pkey_st *SSL_get_privatekey(const SSL *ssl) +{ + (void)ssl; + return NULL; +} + +/*** TBD ***/ +int EVP_PKEY_bits(EVP_PKEY *pkey) +{ + (void)pkey; + return -1; +} + +/*** TBD ***/ +int i2d_X509(X509 *x, unsigned char **out) +{ + (void)x; + (void)out; + return -1; +} + +/*** TBD ***/ +int i2t_ASN1_OBJECT(char *buf, int buf_len, ASN1_OBJECT *a) +{ + (void)buf; + (void)buf_len; + (void)a; + return -1; +} + +/*** TBD ***/ +size_t SSL_get_finished(const SSL *s, void *buf, size_t count) +{ + (void)s; + (void)buf; + (void)count; + return 0; +} + +/*** TBD ***/ +size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count) +{ + (void)s; + (void)buf; + (void)count; + return 0; +} + +/*** TBD ***/ +void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx, DH *(*dh) (SSL *ssl, int is_export, int keylength)) +{ + (void)ctx; + (void)dh; +} + +/*** TBD ***/ +STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void) +{ + return NULL; +} + +/*** TBD ***/ +int sk_SSL_CIPHER_num(const void * p) +{ + (void)p; + return -1; +} + +/*** TBD ***/ +X509 *PEM_read_X509(FILE *fp, X509 **x, pem_password_cb *cb, void *u) +{ + (void)fp; + (void)x; + (void)cb; + (void)u; + return NULL; +} + +/*** TBD ***/ +EVP_PKEY *PEM_read_PrivateKey(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, void *u) +{ + (void)fp; + (void)x; + (void)cb; + (void)u; + return NULL; +} + +/*** TBD ***/ +int X509_STORE_load_locations(X509_STORE *ctx, const char *file, const char *dir) +{ + (void)ctx; + (void)file; + (void)dir; + return -1; +} + +/*** TBD ***/ +int sk_SSL_CIPHER_value(void *ciphers, int idx) +{ + (void)ciphers; + (void)idx; + return 0; +} + +void ERR_load_SSL_strings(void) +{ + +} + WOLFSSL_API long wolfSSL_get_tlsext_status_ocsp_resp(WOLFSSL *s, unsigned char **resp) { if (s == NULL || resp == NULL) @@ -22657,6 +22833,13 @@ const char * wolfSSL_get_servername(WOLFSSL* ssl, byte type) #endif /* HAVE_SNI */ +#if defined(WOLFSSL_HAPROXY) + + + +#endif + + WOLFSSL_CTX* wolfSSL_set_SSL_CTX(WOLFSSL* ssl, WOLFSSL_CTX* ctx) { if (ssl && ctx && SetSSL_CTX(ssl, ctx) == SSL_SUCCESS) diff --git a/wolfssl/openssl/ssl.h b/wolfssl/openssl/ssl.h index a19cf52bb..43b53c094 100644 --- a/wolfssl/openssl/ssl.h +++ b/wolfssl/openssl/ssl.h @@ -518,6 +518,17 @@ typedef WOLFSSL_X509_NAME_ENTRY X509_NAME_ENTRY; #define PEM_write_bio_X509 wolfSSL_PEM_write_bio_X509 #endif /* HAVE_STUNNEL || HAVE_LIGHTY || WOLFSSL_MYSQL_COMPATIBLE || WOLFSSL_NGINX || WOLFSSL_HAPROXY */ + +#ifdef WOLFSSL_HAPROXY +#define SSL_get_rbio wolfSSL_SSL_get_rbio +#define SSL_get_wbio wolfSSL_SSL_get_wbio +#define SSL_do_handshake wolfSSL_SSL_do_handshake +#define SSL_get_ciphers(x) wolfSSL_get_ciphers(x, sizeof(x)) +#define SSL_SESSION_get_id wolfSSL_SESSION_get_id +#define ASN1_STRING_get0_data wolfSSL_ASN1_STRING_data +#define SSL_get_cipher_bits(s,np) wolfSSL_CIPHER_get_bits(SSL_get_current_cipher(s),np) +#endif + #define SSL_CTX_set_tmp_dh wolfSSL_CTX_set_tmp_dh #define BIO_new_file wolfSSL_BIO_new_file diff --git a/wolfssl/ssl.h b/wolfssl/ssl.h index 258b58e3d..dccc2fb29 100644 --- a/wolfssl/ssl.h +++ b/wolfssl/ssl.h @@ -2293,6 +2293,37 @@ WOLFSSL_API void wolfSSL_CTX_set_alpn_select_cb(WOLFSSL_CTX *ctx, unsigned int inlen, void *arg), void *arg); + + +WOLFSSL_API int sk_SSL_COMP_zero(WOLFSSL* st); + +#ifdef WOLFSSL_HAPROXY +WOLFSSL_API const unsigned char *SSL_SESSION_get0_id_context( + const WOLFSSL_SESSION *sess, unsigned int *sid_ctx_length); +#endif + +int SSL_SESSION_set1_id(WOLFSSL_SESSION *s, const unsigned char *sid, unsigned int sid_len); +int SSL_SESSION_set1_id_context(WOLFSSL_SESSION *s, const unsigned char *sid_ctx, unsigned int sid_ctx_len); +void *X509_get0_tbs_sigalg(const WOLFSSL_X509 *x); +void X509_ALGOR_get0(WOLFSSL_ASN1_OBJECT **paobj, int *pptype, const void **ppval, const void *algor); +void *X509_get_X509_PUBKEY(void * x); +int X509_PUBKEY_get0_param(WOLFSSL_ASN1_OBJECT **ppkalg, const unsigned char **pk, int *ppklen, void **pa, WOLFSSL_EVP_PKEY *pub); +struct evp_pkey_st *SSL_get_privatekey(const WOLFSSL *ssl); +int EVP_PKEY_bits(WOLFSSL_EVP_PKEY *pkey); +int i2d_X509(WOLFSSL_X509 *x, unsigned char **out); +int i2t_ASN1_OBJECT(char *buf, int buf_len, WOLFSSL_ASN1_OBJECT *a); +size_t SSL_get_finished(const WOLFSSL *s, void *buf, size_t count); +size_t SSL_get_peer_finished(const WOLFSSL *s, void *buf, size_t count); +void SSL_CTX_set_tmp_dh_callback(WOLFSSL_CTX *ctx, WOLFSSL_DH *(*dh) (WOLFSSL *ssl, int is_export, int keylength)); +STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void); +int sk_SSL_CIPHER_num(const void * p); +int X509_STORE_load_locations(WOLFSSL_X509_STORE *ctx, const char *file, const char *dir); +int sk_SSL_CIPHER_value(void *ciphers, int idx); +void ERR_load_SSL_strings(void); + +WOLFSSL_X509 *PEM_read_X509(FILE *fp, WOLFSSL_X509 **x, pem_password_cb *cb, void *u); +WOLFSSL_EVP_PKEY *PEM_read_PrivateKey(FILE *fp, WOLFSSL_EVP_PKEY **x, pem_password_cb *cb, void *u); + #ifdef __cplusplus } /* extern "C" */ #endif