diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-02-04 20:39:35 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-02-04 20:39:35 +0100 |
| commit | 99694d67ca95d3fc531c5007a6906bfc66e9168d (patch) | |
| tree | 07d17657c3c86de7266a22154bc9a82959e3f3f3 /src | |
| parent | bde279f2fad7d48bb534d94573de53796982ff9c (diff) | |
| download | box64-99694d67ca95d3fc531c5007a6906bfc66e9168d.tar.gz box64-99694d67ca95d3fc531c5007a6906bfc66e9168d.zip | |
Added some more function to wrapped libcrypto.so.3 and libssl.so.3
Diffstat (limited to 'src')
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 13 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedcrypto3types.h | 5 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedlibssl3types.h | 5 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 8 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 3 | ||||
| -rw-r--r-- | src/wrapped/wrappedcrypto3.c | 47 | ||||
| -rw-r--r-- | src/wrapped/wrappedcrypto3_private.h | 75 | ||||
| -rw-r--r-- | src/wrapped/wrappedlibssl3.c | 81 | ||||
| -rw-r--r-- | src/wrapped/wrappedlibssl3_private.h | 57 |
9 files changed, 254 insertions, 40 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index b700c725..5973241f 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -1194,6 +1194,7 @@ #() pFipip #() pFippi #() pFippu +#() pFippL #() pFippp #() pFuuii #() pFuuip @@ -1767,6 +1768,7 @@ #() pFpppLi #() pFppppi #() pFppppu +#() pFppppL #() pFppppp #() pFbuWWW #() pFbuuWW @@ -2829,6 +2831,7 @@ #() iFpCuWCCCCup #() iFpuuLiuiiLL #() iFpLLpiiuuii +#() iFpLpLUUUUpL #() iFppuuiiiiii #() iFppuuiiuupi #() iFpppiiipipi @@ -3121,14 +3124,19 @@ wrappedcrypto3: - X509_STORE_CTX_set_verify_cb - pFpp: - OPENSSL_sk_pop_free +- vFppp: + - EVP_MD_do_all_provided - iFppp: - ASN1_i2d_bio +- iFppV: + - BIO_printf - vFiipV: - ERR_set_error - vFiipA: - ERR_vset_error - pFpppp: - ASN1_d2i_bio + - PEM_read_DHparams - PEM_read_bio_DSAPrivateKey - PEM_read_bio_DSA_PUBKEY - PEM_read_bio_ECPrivateKey @@ -4734,10 +4742,15 @@ wrappedlibssl: - SSL_get_ex_new_index wrappedlibssl3: - pFp: + - SSL_CTX_get_default_passwd_cb + - SSL_CTX_get_verify_callback - SSL_get_verify_callback - vFpp: - SSL_CTX_set_client_cert_cb - SSL_CTX_set_default_passwd_cb + - SSL_CTX_set_keylog_callback + - SSL_CTX_set_msg_callback + - SSL_set_msg_callback - SSL_set_psk_client_callback - vFpip: - SSL_CTX_set_verify diff --git a/src/wrapped/generated/wrappedcrypto3types.h b/src/wrapped/generated/wrappedcrypto3types.h index dd3b7001..21ef9265 100644 --- a/src/wrapped/generated/wrappedcrypto3types.h +++ b/src/wrapped/generated/wrappedcrypto3types.h @@ -14,7 +14,9 @@ typedef void (*vFp_t)(void*); typedef void (*vFpp_t)(void*, void*); typedef void* (*pFpp_t)(void*, void*); +typedef void (*vFppp_t)(void*, void*, void*); typedef int32_t (*iFppp_t)(void*, void*, void*); +typedef int32_t (*iFppV_t)(void*, void*, ...); typedef void (*vFiipV_t)(int32_t, int32_t, void*, ...); typedef void (*vFiipA_t)(int32_t, int32_t, void*, va_list); typedef void* (*pFpppp_t)(void*, void*, void*, void*); @@ -27,10 +29,13 @@ typedef int32_t (*iFppppipp_t)(void*, void*, void*, void*, int32_t, void*, void* GO(CRYPTO_set_locking_callback, vFp_t) \ GO(X509_STORE_CTX_set_verify_cb, vFpp_t) \ GO(OPENSSL_sk_pop_free, pFpp_t) \ + GO(EVP_MD_do_all_provided, vFppp_t) \ GO(ASN1_i2d_bio, iFppp_t) \ + GO(BIO_printf, iFppV_t) \ GO(ERR_set_error, vFiipV_t) \ GO(ERR_vset_error, vFiipA_t) \ GO(ASN1_d2i_bio, pFpppp_t) \ + GO(PEM_read_DHparams, pFpppp_t) \ GO(PEM_read_bio_DSAPrivateKey, pFpppp_t) \ GO(PEM_read_bio_DSA_PUBKEY, pFpppp_t) \ GO(PEM_read_bio_ECPrivateKey, pFpppp_t) \ diff --git a/src/wrapped/generated/wrappedlibssl3types.h b/src/wrapped/generated/wrappedlibssl3types.h index a4675e29..98872627 100644 --- a/src/wrapped/generated/wrappedlibssl3types.h +++ b/src/wrapped/generated/wrappedlibssl3types.h @@ -19,9 +19,14 @@ typedef intptr_t (*lFpip_t)(void*, int32_t, void*); typedef int32_t (*iFlpppp_t)(intptr_t, void*, void*, void*, void*); #define SUPER() ADDED_FUNCTIONS() \ + GO(SSL_CTX_get_default_passwd_cb, pFp_t) \ + GO(SSL_CTX_get_verify_callback, pFp_t) \ GO(SSL_get_verify_callback, pFp_t) \ GO(SSL_CTX_set_client_cert_cb, vFpp_t) \ GO(SSL_CTX_set_default_passwd_cb, vFpp_t) \ + GO(SSL_CTX_set_keylog_callback, vFpp_t) \ + GO(SSL_CTX_set_msg_callback, vFpp_t) \ + GO(SSL_set_msg_callback, vFpp_t) \ GO(SSL_set_psk_client_callback, vFpp_t) \ GO(SSL_CTX_set_verify, vFpip_t) \ GO(SSL_set_verify, vFpip_t) \ diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index 6079438f..43fac0a6 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -1232,6 +1232,7 @@ typedef void* (*pFipii_t)(int32_t, void*, int32_t, int32_t); typedef void* (*pFipip_t)(int32_t, void*, int32_t, void*); typedef void* (*pFippi_t)(int32_t, void*, void*, int32_t); typedef void* (*pFippu_t)(int32_t, void*, void*, uint32_t); +typedef void* (*pFippL_t)(int32_t, void*, void*, uintptr_t); typedef void* (*pFippp_t)(int32_t, void*, void*, void*); typedef void* (*pFuuii_t)(uint32_t, uint32_t, int32_t, int32_t); typedef void* (*pFuuip_t)(uint32_t, uint32_t, int32_t, void*); @@ -1805,6 +1806,7 @@ typedef void* (*pFpppli_t)(void*, void*, void*, intptr_t, int32_t); typedef void* (*pFpppLi_t)(void*, void*, void*, uintptr_t, int32_t); typedef void* (*pFppppi_t)(void*, void*, void*, void*, int32_t); typedef void* (*pFppppu_t)(void*, void*, void*, void*, uint32_t); +typedef void* (*pFppppL_t)(void*, void*, void*, void*, uintptr_t); typedef void* (*pFppppp_t)(void*, void*, void*, void*, void*); typedef void* (*pFbuWWW_t)(void*, uint32_t, uint16_t, uint16_t, uint16_t); typedef void* (*pFbuuWW_t)(void*, uint32_t, uint32_t, uint16_t, uint16_t); @@ -2867,6 +2869,7 @@ typedef int32_t (*iFpippddiidd_t)(void*, int32_t, void*, void*, double, double, typedef int32_t (*iFpCuWCCCCup_t)(void*, uint8_t, uint32_t, uint16_t, uint8_t, uint8_t, uint8_t, uint8_t, uint32_t, void*); typedef int32_t (*iFpuuLiuiiLL_t)(void*, uint32_t, uint32_t, uintptr_t, int32_t, uint32_t, int32_t, int32_t, uintptr_t, uintptr_t); typedef int32_t (*iFpLLpiiuuii_t)(void*, uintptr_t, uintptr_t, void*, int32_t, int32_t, uint32_t, uint32_t, int32_t, int32_t); +typedef int32_t (*iFpLpLUUUUpL_t)(void*, uintptr_t, void*, uintptr_t, uint64_t, uint64_t, uint64_t, uint64_t, void*, uintptr_t); typedef int32_t (*iFppuuiiiiii_t)(void*, void*, uint32_t, uint32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t); typedef int32_t (*iFppuuiiuupi_t)(void*, void*, uint32_t, uint32_t, int32_t, int32_t, uint32_t, uint32_t, void*, int32_t); typedef int32_t (*iFpppiiipipi_t)(void*, void*, void*, int32_t, int32_t, int32_t, void*, int32_t, void*, int32_t); @@ -4272,6 +4275,7 @@ void pFipii(x64emu_t *emu, uintptr_t fcn) { pFipii_t fn = (pFipii_t)fcn; R_RAX=( void pFipip(x64emu_t *emu, uintptr_t fcn) { pFipip_t fn = (pFipip_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX); } void pFippi(x64emu_t *emu, uintptr_t fcn) { pFippi_t fn = (pFippi_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX); } void pFippu(x64emu_t *emu, uintptr_t fcn) { pFippu_t fn = (pFippu_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX); } +void pFippL(x64emu_t *emu, uintptr_t fcn) { pFippL_t fn = (pFippL_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); } void pFippp(x64emu_t *emu, uintptr_t fcn) { pFippp_t fn = (pFippp_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); } void pFuuii(x64emu_t *emu, uintptr_t fcn) { pFuuii_t fn = (pFuuii_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX); } void pFuuip(x64emu_t *emu, uintptr_t fcn) { pFuuip_t fn = (pFuuip_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX); } @@ -4845,6 +4849,7 @@ void pFpppli(x64emu_t *emu, uintptr_t fcn) { pFpppli_t fn = (pFpppli_t)fcn; R_RA void pFpppLi(x64emu_t *emu, uintptr_t fcn) { pFpppLi_t fn = (pFpppLi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX, (int32_t)R_R8); } void pFppppi(x64emu_t *emu, uintptr_t fcn) { pFppppi_t fn = (pFppppi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8); } void pFppppu(x64emu_t *emu, uintptr_t fcn) { pFppppu_t fn = (pFppppu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (uint32_t)R_R8); } +void pFppppL(x64emu_t *emu, uintptr_t fcn) { pFppppL_t fn = (pFppppL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (uintptr_t)R_R8); } void pFppppp(x64emu_t *emu, uintptr_t fcn) { pFppppp_t fn = (pFppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); } void pFbuWWW(x64emu_t *emu, uintptr_t fcn) { pFbuWWW_t fn = (pFbuWWW_t)fcn; void *aligned_xcb = align_xcb_connection((void*)R_RDI); R_RAX=(uintptr_t)fn(aligned_xcb, (uint32_t)R_RSI, (uint16_t)R_RDX, (uint16_t)R_RCX, (uint16_t)R_R8); unalign_xcb_connection(aligned_xcb, (void*)R_RDI); } void pFbuuWW(x64emu_t *emu, uintptr_t fcn) { pFbuuWW_t fn = (pFbuuWW_t)fcn; void *aligned_xcb = align_xcb_connection((void*)R_RDI); R_RAX=(uintptr_t)fn(aligned_xcb, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint16_t)R_RCX, (uint16_t)R_R8); unalign_xcb_connection(aligned_xcb, (void*)R_RDI); } @@ -5907,6 +5912,7 @@ void iFpippddiidd(x64emu_t *emu, uintptr_t fcn) { iFpippddiidd_t fn = (iFpippddi void iFpCuWCCCCup(x64emu_t *emu, uintptr_t fcn) { iFpCuWCCCCup_t fn = (iFpCuWCCCCup_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint32_t)R_RDX, (uint16_t)R_RCX, (uint8_t)R_R8, (uint8_t)R_R9, *(uint8_t*)(R_RSP + 8), *(uint8_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24), *(void**)(R_RSP + 32)); } void iFpuuLiuiiLL(x64emu_t *emu, uintptr_t fcn) { iFpuuLiuiiLL_t fn = (iFpuuLiuiiLL_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uintptr_t)R_RCX, (int32_t)R_R8, (uint32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(uintptr_t*)(R_RSP + 24), *(uintptr_t*)(R_RSP + 32)); } void iFpLLpiiuuii(x64emu_t *emu, uintptr_t fcn) { iFpLLpiiuuii_t fn = (iFpLLpiiuuii_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32)); } +void iFpLpLUUUUpL(x64emu_t *emu, uintptr_t fcn) { iFpLpLUUUUpL_t fn = (iFpLpLUUUUpL_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX, (uint64_t)R_R8, (uint64_t)R_R9, *(uint64_t*)(R_RSP + 8), *(uint64_t*)(R_RSP + 16), *(void**)(R_RSP + 24), *(uintptr_t*)(R_RSP + 32)); } void iFppuuiiiiii(x64emu_t *emu, uintptr_t fcn) { iFppuuiiiiii_t fn = (iFppuuiiiiii_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32)); } void iFppuuiiuupi(x64emu_t *emu, uintptr_t fcn) { iFppuuiiuupi_t fn = (iFppuuiiuupi_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(void**)(R_RSP + 24), *(int32_t*)(R_RSP + 32)); } void iFpppiiipipi(x64emu_t *emu, uintptr_t fcn) { iFpppiiipipi_t fn = (iFpppiiipipi_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24), *(int32_t*)(R_RSP + 32)); } @@ -7094,6 +7100,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &pFipip) return 1; if (fun == &pFippi) return 1; if (fun == &pFippu) return 1; + if (fun == &pFippL) return 1; if (fun == &pFippp) return 1; if (fun == &pFuuii) return 1; if (fun == &pFuuip) return 1; @@ -7569,6 +7576,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &pFpppLi) return 1; if (fun == &pFppppi) return 1; if (fun == &pFppppu) return 1; + if (fun == &pFppppL) return 1; if (fun == &pFppppp) return 1; if (fun == &vFiiiiii) return 1; if (fun == &vFiiiuil) return 1; diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index 02a6ec31..df9a83ab 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -1232,6 +1232,7 @@ void pFipii(x64emu_t *emu, uintptr_t fnc); void pFipip(x64emu_t *emu, uintptr_t fnc); void pFippi(x64emu_t *emu, uintptr_t fnc); void pFippu(x64emu_t *emu, uintptr_t fnc); +void pFippL(x64emu_t *emu, uintptr_t fnc); void pFippp(x64emu_t *emu, uintptr_t fnc); void pFuuii(x64emu_t *emu, uintptr_t fnc); void pFuuip(x64emu_t *emu, uintptr_t fnc); @@ -1805,6 +1806,7 @@ void pFpppli(x64emu_t *emu, uintptr_t fnc); void pFpppLi(x64emu_t *emu, uintptr_t fnc); void pFppppi(x64emu_t *emu, uintptr_t fnc); void pFppppu(x64emu_t *emu, uintptr_t fnc); +void pFppppL(x64emu_t *emu, uintptr_t fnc); void pFppppp(x64emu_t *emu, uintptr_t fnc); void pFbuWWW(x64emu_t *emu, uintptr_t fnc); void pFbuuWW(x64emu_t *emu, uintptr_t fnc); @@ -2867,6 +2869,7 @@ void iFpippddiidd(x64emu_t *emu, uintptr_t fnc); void iFpCuWCCCCup(x64emu_t *emu, uintptr_t fnc); void iFpuuLiuiiLL(x64emu_t *emu, uintptr_t fnc); void iFpLLpiiuuii(x64emu_t *emu, uintptr_t fnc); +void iFpLpLUUUUpL(x64emu_t *emu, uintptr_t fnc); void iFppuuiiiiii(x64emu_t *emu, uintptr_t fnc); void iFppuuiiuupi(x64emu_t *emu, uintptr_t fnc); void iFpppiiipipi(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedcrypto3.c b/src/wrapped/wrappedcrypto3.c index a6317af8..730a23bb 100644 --- a/src/wrapped/wrappedcrypto3.c +++ b/src/wrapped/wrappedcrypto3.c @@ -1,7 +1,7 @@ +#define _GNU_SOURCE #include <stdio.h> #include <stdlib.h> #include <string.h> -#define _GNU_SOURCE /* See feature_test_macros(7) */ #include <dlfcn.h> #include "wrappedlibs.h" @@ -22,6 +22,11 @@ const char* crypto3Name = "libcrypto.so.3"; #define LIBNAME crypto3 +typedef int(*iFppA_t) (void*, void*, va_list); + +#define ADDED_FUNCTIONS() \ + GO(BIO_vprintf, iFppA_t); \ + #include "generated/wrappedcrypto3types.h" #include "wrappercallback.h" @@ -298,6 +303,30 @@ static void* find_verify_cb_Fct(void* fct) return NULL; } +// do_all_provided_cb +#define GO(A) \ +static uintptr_t my3_do_all_provided_cb_fct_##A = 0; \ +static void my3_do_all_provided_cb_##A(void* a, void* b) \ +{ \ + RunFunctionFmt(my3_do_all_provided_cb_fct_##A, "pp", a, b); \ +} +SUPER() +#undef GO +static void* find_do_all_provided_cb_Fct(void* fct) +{ + if(!fct) return NULL; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + #define GO(A) if(my3_do_all_provided_cb_fct_##A == (uintptr_t)fct) return my3_do_all_provided_cb_##A; + SUPER() + #undef GO + #define GO(A) if(my3_do_all_provided_cb_fct_##A == 0) {my3_do_all_provided_cb_fct_##A = (uintptr_t)fct; return my3_do_all_provided_cb_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libcrypto do_all_provided_cb callback\n"); + return NULL; +} + #undef SUPER EXPORT int32_t my3_ENGINE_ctrl(x64emu_t* emu, void* e, int32_t cmd, int32_t i, void* p, void* f) @@ -455,6 +484,22 @@ EXPORT void my3_ERR_vset_error(x64emu_t* emu, int lib, int reason, void* fmt, x6 my->ERR_vset_error(lib, reason, fmt, VARARGS); } +EXPORT int my3_BIO_printf(x64emu_t* emu, void* bio, void* fmt, uintptr_t* b) +{ + myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 2); + PREPARE_VALIST; + return my->BIO_vprintf(bio, fmt, VARARGS); +} + +EXPORT void* my3_PEM_read_DHparams(x64emu_t* emu, void* fp, void* x, void* cb, void* u) +{ + return my->PEM_read_DHparams(fp, x, find_pem_password_cb_Fct(cb), u); +} + +EXPORT void my3_EVP_MD_do_all_provided(x64emu_t* emu, void* ctx, void* cb, void* arg) +{ + my->EVP_MD_do_all_provided(ctx, find_do_all_provided_cb_Fct(cb), arg); +} #define CUSTOM_INIT \ SETALT(my3_); \ diff --git a/src/wrapped/wrappedcrypto3_private.h b/src/wrapped/wrappedcrypto3_private.h index 40a0c185..53bb3405 100644 --- a/src/wrapped/wrappedcrypto3_private.h +++ b/src/wrapped/wrappedcrypto3_private.h @@ -8,7 +8,7 @@ GO(a2i_ASN1_INTEGER, iFpppi) GO(a2i_ASN1_STRING, iFpppi) //GO(a2i_GENERAL_NAME, //GO(a2i_ipadd, -//GO(a2i_IPADDRESS, +GO(a2i_IPADDRESS, pFp) //GO(a2i_IPADDRESS_NC, //GO(ACCESS_DESCRIPTION_free, //GO(ACCESS_DESCRIPTION_new, @@ -171,6 +171,7 @@ GO(ASN1_STRING_copy, iFpp) GO(ASN1_STRING_data, pFp) GO(ASN1_STRING_dup, pFp) GO(ASN1_STRING_free, vFp) +GO(ASN1_STRING_get0_data, pFp) GO(ASN1_STRING_get_default_mask, LFv) GO(ASN1_STRING_length, iFp) GO(ASN1_STRING_length_set, vFpi) @@ -235,7 +236,7 @@ GO(ASN1_UTF8STRING_new, pFv) //GO(ASN1_verify, GO(ASN1_VISIBLESTRING_free, vFp) GO(ASN1_VISIBLESTRING_new, pFv) -//GO(AUTHORITY_INFO_ACCESS_free, +GO(AUTHORITY_INFO_ACCESS_free, vFp) //GO(AUTHORITY_INFO_ACCESS_new, GO(AUTHORITY_KEYID_free, vFp) GO(AUTHORITY_KEYID_new, pFv) @@ -260,7 +261,7 @@ GO(BIO_asn1_get_suffix, iFppp) //GO(BIO_asn1_set_prefix, //GO(BIO_asn1_set_suffix, //GO(BIO_callback_ctrl, -//GO(BIO_clear_flags, +GO(BIO_clear_flags, vFpi) //GO(BIO_CONNECT_free, //GO(BIO_CONNECT_new, GO(BIO_copy_next_retry, vFp) @@ -334,7 +335,7 @@ GO(BIO_nwrite, iFppi) GO(BIO_nwrite0, iFpp) GO(BIO_pending, iFp) //GO(BIO_pop, -//GO(BIO_printf, +GOM(BIO_printf, iFEppV) GO(BIO_ptr_ctrl, pFpil) GO(BIO_push, pFpp) GO(BIO_puts, iFpp) @@ -351,10 +352,10 @@ GO(BIO_set_callback_arg, vFpp) GO(BIO_set_close, iFpl) //GO(BIO_set_cipher, GO(BIO_set_ex_data, iFpip) -//GO(BIO_set_flags, +GO(BIO_set_flags, vFpi) GO(BIO_set_tcp_ndelay, iFii) //GO(BIO_s_fd, -//GO(BIO_s_file, +GO(BIO_s_file, pFv) //GO(BIO_s_log, GO(BIO_s_mem, pFv) //GO(BIO_snprintf, @@ -794,8 +795,9 @@ GO(CONF_modules_unload, vFi) //GO(CONF_parse_list, //GO(CONF_set_default_method, //GO(CONF_set_nconf, -//GO(CRL_DIST_POINTS_free, -//GO(CRL_DIST_POINTS_new, +GO(COMP_get_type, iFp) +GO(CRL_DIST_POINTS_free, vFp) +GO(CRL_DIST_POINTS_new, pFv) //GO(CRYPTO_128_unwrap, //GO(CRYPTO_128_wrap, GO(CRYPTO_add_lock, iFpiipi) @@ -1843,7 +1845,7 @@ GO(EVP_CIPHER_param_to_asn1, iFpp) GO(EVP_CIPHER_type, iFp) GO(EVP_CipherUpdate, iFppppi) GO(EVP_cleanup, vFv) -//GO(EVP_DecodeBlock, +GO(EVP_DecodeBlock, iFppi) //GO(EVP_DecodeFinal, //GO(EVP_DecodeInit, //GO(EVP_DecodeUpdate, @@ -1852,6 +1854,7 @@ GO(EVP_DecryptFinal_ex, iFppp) GO(EVP_DecryptInit, iFpppp) GO(EVP_DecryptInit_ex, iFppppp) GO(EVP_DecryptUpdate, iFppppi) +GO(EVP_default_properties_is_fips_enabled, iFp) GO(EVP_des_cbc, pFv) GO(EVP_des_cfb, pFv) GO(EVP_des_cfb1, pFv) @@ -1876,20 +1879,23 @@ GO(EVP_des_ede_ofb, pFv) //GO(EVP_des_ofb, //GO(EVP_desx_cbc, //GO(EVP_Digest, -//GO(EVP_DigestFinal, +GO(EVP_DigestFinal, iFppp) +GO(EVP_DigestFinalXOF, iFppL) GO(EVP_DigestFinal_ex, iFppp) GO(EVP_DigestInit, iFpp) GO(EVP_DigestInit_ex, iFppp) +GO(EVP_DigestSign, iFppppL) GO(EVP_DigestSignFinal, iFppp) -//GO(EVP_DigestSignInit, +GO(EVP_DigestSignInit, iFppppp) GO(EVP_DigestUpdate, iFppL) +GO(EVP_DigestVerify, iFppLpL) //GO(EVP_DigestVerifyFinal, -//GO(EVP_DigestVerifyInit, +GO(EVP_DigestVerifyInit, iFppppp) //GO(EVP_dss, //GO(EVP_dss1, //GO(EVP_ecdsa, //GO(EVP_enc_null, -//GO(EVP_EncodeBlock, +GO(EVP_EncodeBlock, iFppi) //GO(EVP_EncodeFinal, //GO(EVP_EncodeInit, //GO(EVP_EncodeUpdate, @@ -1906,6 +1912,13 @@ GO(EVP_get_digestbyname, pFp) //GO(EVP_idea_cfb64, //GO(EVP_idea_ecb, //GO(EVP_idea_ofb, +GO(EVP_MAC_CTX_free, vFp) +GO(EVP_MAC_CTX_new, pFp) +GO(EVP_MAC_fetch, pFppp) +GO(EVP_MAC_final, iFpppL) +GO(EVP_MAC_free, vFp) +GO(EVP_MAC_init, iFppLp) +GO(EVP_MAC_update, iFppL) GO(EVP_md4, pFv) GO(EVP_md5, pFv) GO(EVP_MD_block_size, iFp) @@ -1918,6 +1931,7 @@ GO(EVP_MD_CTX_create, pFv) GO(EVP_MD_CTX_ctrl, vFpiip) GO(EVP_MD_CTX_destroy, vFp) GO(EVP_MD_CTX_free, vFp) +GO(EVP_MD_CTX_get0_md, pFp) //GO(EVP_MD_CTX_init, GO(EVP_MD_CTX_md, pFp) GO(EVP_MD_CTX_new, pFv) @@ -1925,12 +1939,19 @@ GO(EVP_MD_CTX_reset, iFp) GO(EVP_MD_CTX_set_flags, vFpi) //GO(EVP_MD_CTX_test_flags, //GO(EVP_MD_do_all, +GOM(EVP_MD_do_all_provided, vFEppp) //GO(EVP_MD_do_all_sorted, +GO(EVP_MD_fetch, pFppp) //GO(EVP_MD_flags, +GO(EVP_MD_free, vFp) +GO(EVP_MD_get_block_size, iFp) +GO(EVP_MD_get_flags, LFp) GO(EVP_MD_get_size, iFp) +GO(EVP_MD_get_type, iFp) GO(EVP_md_null, pFv) GO(EVP_MD_pkey_type, iFp) GO(EVP_MD_type, iFp) +GO(EVP_MD_up_ref, iFp) //GO(EVP_OpenFinal, //GO(EVP_OpenInit, //GO(EVP_PBE_alg_add, @@ -1938,6 +1959,7 @@ GO(EVP_MD_type, iFp) //GO(EVP_PBE_CipherInit, //GO(EVP_PBE_cleanup, //GO(EVP_PBE_find, +GO(EVP_PBE_scrypt, iFpLpLUUUUpL) GO(EVP_PKCS82PKEY, pFp) GO(EVP_PKCS82PKEY_ex, pFppp) GO(EVP_PKEY2PKCS8, pFp) @@ -2015,6 +2037,10 @@ GO(EVP_PKEY_get1_RSA, pFp) //GO(EVP_PKEY_get_attr_count, GO(EVP_PKEY_get_base_id, iFp) //GO(EVP_PKEY_get_default_digest_nid, +GO(EVP_PKEY_get_raw_private_key, iFppp) +GO(EVP_PKEY_get_raw_public_key, iFppp) +GO(EVP_PKEY_new_raw_private_key, pFppppL) +GO(EVP_PKEY_new_raw_public_key, pFippL) GO(EVP_PKEY_get_size, iFp) //GO(EVP_PKEY_id, GO(EVP_PKEY_keygen, iFpp) @@ -2077,7 +2103,7 @@ GO(EVP_rc2_ofb, pFv) //GO(EVP_rc4_hmac_md5, //GO(EVP_read_pw_string, //GO(EVP_read_pw_string_min, -//GO(EVP_ripemd160, +GO(EVP_ripemd160, pFp) //GO(EVP_SealFinal, //GO(EVP_SealInit, //GO(EVP_seed_cbc, @@ -2117,7 +2143,7 @@ GO(GENERAL_NAME_free, vFp) //GO(GENERAL_NAME_get0_otherName, //GO(GENERAL_NAME_get0_value, GO(GENERAL_NAME_new, pFv) -//GO(GENERAL_NAME_print, +GO(GENERAL_NAME_print, iFpp) //GO(GENERAL_NAME_set0_othername, //GO(GENERAL_NAME_set0_value, GO(GENERAL_NAMES_free, vFp) @@ -2137,6 +2163,7 @@ GO(HMAC, pFppipLpp) GO(HMAC_CTX_cleanup, vFp) GO(HMAC_CTX_copy, iFpp) GO(HMAC_CTX_free, vFp) +GO(HMAC_CTX_get_md, pFp) GO(HMAC_CTX_init, vFp) GO(HMAC_CTX_new, pFv) GO(HMAC_CTX_set_flags, vFpL) @@ -2654,6 +2681,7 @@ GO(OPENSSL_init_crypto, iFLp) //GO(OPENSSL_memcmp, GO(OPENSSL_no_config, vFv) //GO(OPENSSL_rdtsc, +GO(OPENSSL_sk_find, iFpp) GO(OPENSSL_sk_free, vFp) //1.1+ GO(OPENSSL_sk_new_null, pFv) //1.1+ GO(OPENSSL_sk_num, iFp) //1.1+ @@ -2667,6 +2695,7 @@ GO(OPENSSL_strcasecmp, iFpp) GO(OPENSSL_strncasecmp, iFppL) //GO(OPENSSL_uni2asc, //GO(OPENSSL_wipe_cpu, +GO(OpenSSL_version, pFi) GO(OpenSSL_version_num, LFv) //GO(_ossl_096_des_random_seed, //GO(_ossl_old_crypt, @@ -2753,7 +2782,7 @@ GOM(PEM_read_bio_X509_CERT_PAIR, pFEpppp) GOM(PEM_read_bio_X509_CRL, pFEpppp) GOM(PEM_read_bio_X509_REQ, pFEpppp) //GO(PEM_read_CMS, -//GO(PEM_read_DHparams, +GOM(PEM_read_DHparams, pFEpppp) //GO(PEM_read_DSAparams, //GO(PEM_read_DSAPrivateKey, //GO(PEM_read_DSA_PUBKEY, @@ -3453,7 +3482,7 @@ GO(X509_add1_ext_i2d, iFpipiL) //GO(X509_chain_check_suiteb, //GO(X509_chain_up_ref, //GO(X509_check_akid, -//GO(X509_check_ca, +GO(X509_check_ca, iFp) //GO(X509_check_email, GO(X509_check_host, iFppLup) //GO(X509_check_ip, @@ -3597,6 +3626,7 @@ GO(X509_NAME_ENTRY_create_by_txt, pFppipi) GO(X509_NAME_ENTRY_get_data, pFp) GO(X509_NAME_ENTRY_get_object, pFp) //GO(X509_NAME_ENTRY_new, +GO(X509_NAME_ENTRY_set, iFp) GO(X509_NAME_ENTRY_set_data, iFpipi) GO(X509_NAME_ENTRY_set_object, iFpp) GO(X509_NAME_free, vFp) @@ -3616,6 +3646,8 @@ GO(X509_NAME_print_ex_fp, iFppiu) //GO(X509_NAME_set, GO(X509_new, pFv) //GO(X509_OBJECT_free_contents, +GO(X509_OBJECT_get_type, iFp) +GO(X509_OBJECT_get0_X509, pFp) //GO(X509_OBJECT_idx_by_subject, //GO(X509_OBJECT_retrieve_by_subject, //GO(X509_OBJECT_retrieve_match, @@ -3768,6 +3800,7 @@ GOM(X509_STORE_CTX_set_verify_cb, vFEpp) //GO(X509_STORE_CTX_trusted_stack, GO(X509_STORE_free, vFp) GO(X509_STORE_get0_param, pFp) +GO(X509_STORE_get0_objects, pFp) //GO(X509_STORE_get1_certs, //GO(X509_STORE_get1_crls, //GO(X509_STORE_get_by_subject, @@ -3875,14 +3908,14 @@ GO(X509_VERIFY_PARAM_get_flags, LFp) //GO(X509_VERIFY_PARAM_new, //GO(X509_VERIFY_PARAM_set1, //GO(X509_VERIFY_PARAM_set1_email, -//GO(X509_VERIFY_PARAM_set1_host, -//GO(X509_VERIFY_PARAM_set1_ip, +GO(X509_VERIFY_PARAM_set1_host, iFppL) +GO(X509_VERIFY_PARAM_set1_ip, iFppL) //GO(X509_VERIFY_PARAM_set1_ip_asc, //GO(X509_VERIFY_PARAM_set1_name, //GO(X509_VERIFY_PARAM_set1_policies, //GO(X509_VERIFY_PARAM_set_depth, -//GO(X509_VERIFY_PARAM_set_flags, -//GO(X509_VERIFY_PARAM_set_hostflags, +GO(X509_VERIFY_PARAM_set_flags, iFpL) +GO(X509_VERIFY_PARAM_set_hostflags, vFpu) //GO(X509_VERIFY_PARAM_set_purpose, GO(X509_VERIFY_PARAM_set_time, vFpl) //GO(X509_VERIFY_PARAM_set_trust, diff --git a/src/wrapped/wrappedlibssl3.c b/src/wrapped/wrappedlibssl3.c index 23d2e3b5..0460651c 100644 --- a/src/wrapped/wrappedlibssl3.c +++ b/src/wrapped/wrappedlibssl3.c @@ -55,6 +55,16 @@ static void* find_pem_passwd_cb_Fct(void* fct) printf_log(LOG_NONE, "Warning, no more slot for libSSL pem_passwd_cb callback\n"); return NULL; } +static void* reverse_pem_passwd_cb_Fct(void* fct) +{ + if(!fct) return fct; + if(CheckBridged(my_lib->w.bridge, fct)) + return (void*)CheckBridged(my_lib->w.bridge, fct); + #define GO(A) if(my3_pem_passwd_cb_##A == fct) return (void*)my3_pem_passwd_cb_fct_##A; + SUPER() + #undef GO + return (void*)AddBridge(my_lib->w.bridge, pFp, fct, 0, NULL); +} // anonymous #define GO(A) \ @@ -282,6 +292,52 @@ static void* find_alpn_select_cb_Fct(void* fct) printf_log(LOG_NONE, "Warning, no more slot for libSSL alpn_select_cb callback\n"); return NULL; } +// keylog_cb +#define GO(A) \ +static uintptr_t my3_keylog_cb_fct_##A = 0; \ +static void my3_keylog_cb_##A(void* ssl, void* line) \ +{ \ + RunFunctionFmt(my3_keylog_cb_fct_##A, "pp", ssl, line); \ +} +SUPER() +#undef GO +static void* find_keylog_cb_Fct(void* fct) +{ + if(!fct) return NULL; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + #define GO(A) if(my3_keylog_cb_fct_##A == (uintptr_t)fct) return my3_keylog_cb_##A; + SUPER() + #undef GO + #define GO(A) if(my3_keylog_cb_fct_##A == 0) {my3_keylog_cb_fct_##A = (uintptr_t)fct; return my3_keylog_cb_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libSSL keylog_cb callback\n"); + return NULL; +} +// msg_cb +#define GO(A) \ +static uintptr_t my3_msg_cb_fct_##A = 0; \ +static void my3_msg_cb_##A(int a, int b, int c, void* d, size_t e, void* f, void* g) \ +{ \ + RunFunctionFmt(my3_msg_cb_fct_##A, "iiipLpp", a, b, c, d, e, f, g); \ +} +SUPER() +#undef GO +static void* find_msg_cb_Fct(void* fct) +{ + if(!fct) return NULL; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + #define GO(A) if(my3_msg_cb_fct_##A == (uintptr_t)fct) return my3_msg_cb_##A; + SUPER() + #undef GO + #define GO(A) if(my3_msg_cb_fct_##A == 0) {my3_msg_cb_fct_##A = (uintptr_t)fct; return my3_msg_cb_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libSSL msg_cb callback\n"); + return NULL; +} #undef SUPER @@ -356,6 +412,31 @@ EXPORT void my3_SSL_CTX_set_alpn_select_cb(x64emu_t* emu, void* ctx, void* f, vo my->SSL_CTX_set_alpn_select_cb(ctx, find_alpn_select_cb_Fct(f), arg); } +EXPORT void* my3_SSL_CTX_get_default_passwd_cb(x64emu_t* emu, void* ctx) +{ + return reverse_pem_passwd_cb_Fct(my->SSL_CTX_get_default_passwd_cb(ctx)); +} + +EXPORT void* my3_SSL_CTX_get_verify_callback(x64emu_t* emu, void* ctx) +{ + return reverse_verify_Fct(my->SSL_CTX_get_verify_callback(ctx)); +} + +EXPORT void my3_SSL_CTX_set_keylog_callback(x64emu_t* emu, void* ctx, void* cb) +{ + my->SSL_CTX_set_keylog_callback(ctx, find_keylog_cb_Fct(cb)); +} + +EXPORT void my3_SSL_CTX_set_msg_callback(x64emu_t* emu, void* ctx, void* cb) +{ + my->SSL_CTX_set_msg_callback(ctx, find_msg_cb_Fct(cb)); +} + +EXPORT void my3_SSL_set_msg_callback(x64emu_t* emu, void* ctx, void* cb) +{ + my->SSL_set_msg_callback(ctx, find_msg_cb_Fct(cb)); +} + #define CUSTOM_INIT \ SETALT(my3_); \ getMy(lib); \ diff --git a/src/wrapped/wrappedlibssl3_private.h b/src/wrapped/wrappedlibssl3_private.h index e9ff941c..ef44cf78 100644 --- a/src/wrapped/wrappedlibssl3_private.h +++ b/src/wrapped/wrappedlibssl3_private.h @@ -225,13 +225,18 @@ GO(SSL_check_private_key, iFp) //GO(ssl_check_srvr_ecc_cert_and_alg, GO(SSL_CIPHER_description, pFppi) GO(SSL_CIPHER_find, pFpp) +GO(SSL_CIPHER_get_auth_nid, iFp) GO(SSL_CIPHER_get_bits, iFpp) //GO(ssl_cipher_get_cert_index, +GO(SSL_CIPHER_get_cipher_nid, iFp) +GO(SSL_CIPHER_get_digest_nid, iFp) //GO(ssl_cipher_get_evp, GO(SSL_CIPHER_get_id, uFp) +GO(SSL_CIPHER_get_kx_nid, iFp) GO(SSL_CIPHER_get_name, pFp) GO(SSL_CIPHER_get_version, pFp) //GO(ssl_cipher_id_cmp, +GO(SSL_CIPHER_is_aead, iFp) //GO(ssl_cipher_list_to_bytes, //GO(ssl_cipher_ptr_id_cmp, GO(SSL_clear, iFp) @@ -264,26 +269,31 @@ GO(SSL_CTX_add_client_CA, iFpp) //GO(SSL_CTX_add_session, GOM(SSL_CTX_callback_ctrl, lFEpip) GO(SSL_CTX_check_private_key, iFp) +GO(SSL_CTX_clear_options, UFpU) GO(SSL_CTX_config, iFpp) GO(SSL_CTX_ctrl, lFpilp) //GO(SSL_CTX_flush_sessions, GO(SSL_CTX_free, vFp) //GO(SSL_CTX_get0_certificate, -//GO(SSL_CTX_get0_param, +GO(SSL_CTX_get0_param, pFp) //GO(SSL_CTX_get0_privatekey, GO(SSL_CTX_get_cert_store, pFp) //GO(SSL_CTX_get_client_CA_list, //GO(SSL_CTX_get_client_cert_cb, +GOM(SSL_CTX_get_default_passwd_cb, pFEp) GO(SSL_CTX_get_default_passwd_cb_userdata, pFp) GO(SSL_CTX_get_ex_data, pFpi) //GO(SSL_CTX_get_ex_new_index, -//GO(SSL_CTX_get_info_callback, +//GO(SSL_CTX_get_info_callback, +GO(SSL_CTX_get_num_tickets, LFp) +GO(SSL_CTX_get_options, UFp) //GO(SSL_CTX_get_quiet_shutdown, +GO(SSL_CTX_get_security_level, iFp) //GO(SSL_CTX_get_ssl_method, //GO(SSL_CTX_get_timeout, -//GO(SSL_CTX_get_verify_callback, +GOM(SSL_CTX_get_verify_callback, pFEp) //GO(SSL_CTX_get_verify_depth, -//GO(SSL_CTX_get_verify_mode, +GO(SSL_CTX_get_verify_mode, iFp) GO(SSL_CTX_load_verify_locations, iFppp) GO(SSL_CTX_new, pFp) //GO(SSL_CTX_remove_session, @@ -313,16 +323,19 @@ GO(SSL_CTX_set_default_verify_paths, iFp) //GO(SSL_CTX_set_ex_data, //GO(SSL_CTX_set_generate_session_id, //GO(SSL_CTX_set_info_callback, -//GO(SSL_CTX_set_msg_callback, +GOM(SSL_CTX_set_keylog_callback, vFEpp) +GOM(SSL_CTX_set_msg_callback, vFEpp) //GO(SSL_CTX_set_next_protos_advertised_cb, GOM(SSL_CTX_set_next_proto_select_cb, vFEppp) +GO(SSL_CTX_set_num_tickets, iFpL) GO(SSL_CTX_set_options, lFpl) +GO(SSL_CTX_set_post_handshake_auth, vFpi) //GO(SSL_CTX_set_psk_client_callback, //GO(SSL_CTX_set_psk_server_callback, //GO(SSL_CTX_set_purpose, GO(SSL_CTX_set_quiet_shutdown, vFpi) GO(SSL_CTX_set_security_level, vFpi) -//GO(SSL_CTX_set_session_id_context, +GO(SSL_CTX_set_session_id_context, iFppu) //GO(SSL_CTX_set_srp_cb_arg, //GO(SSL_CTX_set_srp_client_pwd_callback, //GO(SSL_CTX_set_srp_password, @@ -365,9 +378,10 @@ GO(SSL_free, vFp) //GO(ssl_free_wbio_buffer, GO(SSL_get0_alpn_selected, iFppp) GO(SSL_get0_next_proto_negotiated, vFppp) -//GO(SSL_get0_param, +GO(SSL_get0_param, pFp) GO(SSL_get0_peer_certificate, pFp) GO(SSL_get0_session, pFp) +GO(SSL_get0_verified_chain, pFp) GO(SSL_get1_peer_certificate, pFp) GO(SSL_get1_session, pFp) //GO(ssl_get_algorithm2, @@ -377,8 +391,9 @@ GO(SSL_get_certificate, pFp) GO(SSL_get_ciphers, pFp) //GO(ssl_get_ciphers_by_id, GO(SSL_get_client_CA_list, pFp) +GO(SSL_get_client_ciphers, pFp) GO(SSL_get_current_cipher, pFp) -//GO(SSL_get_current_compression, +GO(SSL_get_current_compression, pFp) //GO(SSL_get_current_expansion, //GO(SSL_get_default_timeout, GO(SSL_get_error, iFpi) @@ -397,13 +412,13 @@ GO(SSL_get_privatekey, pFp) //GO(SSL_get_psk_identity, //GO(SSL_get_psk_identity_hint, //GO(SSL_get_quiet_shutdown, -//GO(SSL_get_rbio, +GO(SSL_get_rbio, pFp) //GO(SSL_get_read_ahead, //GO(SSL_get_rfd, //GO(SSL_get_selected_srtp_profile, //GO(ssl_get_server_cert_serverinfo, -//GO(SSL_get_servername, -//GO(SSL_get_servername_type, +GO(SSL_get_servername, pFpi) +GO(SSL_get_servername_type, iFp) //GO(ssl_get_server_send_pkey, GO(SSL_get_session, pFp) //GO(SSL_get_shared_ciphers, @@ -423,7 +438,7 @@ GO(SSL_get_verify_depth, iFp) GO(SSL_get_verify_mode, iFp) GO(SSL_get_verify_result, iFp) GO(SSL_get_version, pFp) -//GO(SSL_get_wbio, +GO(SSL_get_wbio, pFp) //GO(SSL_get_wfd, //GO(SSL_has_matching_session_id, //GO(ssl_init_wbio_buffer, @@ -446,6 +461,7 @@ GO(SSL_pending, iFp) //GO(ssl_prepare_clienthello_tlsext, //GO(ssl_prepare_serverhello_tlsext, GO(SSL_read, iFppi) +GO(SSL_read_ex, iFppLp) GO(SSL_renegotiate, iFp) GO(SSL_renegotiate_abbreviated, iFp) GO(SSL_renegotiate_pending, iFp) @@ -462,9 +478,11 @@ GO(SSL_SESSION_free, vFp) //GO(SSL_SESSION_get_compress_id, //GO(SSL_SESSION_get_ex_data, //GO(SSL_SESSION_get_ex_new_index, -//GO(SSL_SESSION_get_id, -//GO(SSL_SESSION_get_time, -//GO(SSL_SESSION_get_timeout, +GO(SSL_SESSION_get_id, pFpp) +GO(SSL_SESSION_get_ticket_lifetime_hint, LFp) +GO(SSL_SESSION_get_time, lFp) +GO(SSL_SESSION_get_timeout, lFp) +GO(SSL_SESSION_has_ticket, iFp) GO(SSL_SESSION_new, pFv) //GO(SSL_SESSION_print, //GO(SSL_SESSION_print_fp, @@ -489,14 +507,15 @@ GO(SSL_set_ex_data, iFpip) GO(SSL_set_fd, iFpi) //GO(SSL_set_generate_session_id, //GO(SSL_set_info_callback, -//GO(SSL_set_msg_callback, +GOM(SSL_set_msg_callback, vFEpp) GO(SSL_set_options, UFpU) //GO(ssl_set_peer_cert_type, +GO(SSL_set_post_handshake_auth, vFpi) GOM(SSL_set_psk_client_callback, vFEpp) //GO(SSL_set_psk_server_callback, //GO(SSL_set_purpose, GO(SSL_set_quiet_shutdown, vFpi) -//GO(SSL_set_read_ahead, +GO(SSL_set_read_ahead, vFpi) GO(SSL_set_rfd, iFpi) GO(SSL_set_session, iFpp) //GO(SSL_set_session_id_context, @@ -506,7 +525,7 @@ GO(SSL_set_session, iFpp) GO(SSL_set_shutdown, iFp) //GO(SSL_set_srp_server_param, //GO(SSL_set_srp_server_param_pw, -//GO(SSL_set_SSL_CTX, +GO(SSL_set_SSL_CTX, pFpp) //GO(SSL_set_ssl_method, //GO(SSL_set_state, //GO(SSL_set_tlsext_use_srtp, @@ -539,6 +558,7 @@ GO(SSL_use_PrivateKey_file, iFppi) GO(SSL_use_RSAPrivateKey, iFpp) GO(SSL_use_RSAPrivateKey_ASN1, iFppl) GO(SSL_use_RSAPrivateKey_file, iFppi) +GO(SSL_verify_client_post_handshake, iFp) GO(SSLv23_client_method, pFv) GO(SSLv23_method, pFv) GO(SSLv23_server_method, pFv) @@ -553,6 +573,7 @@ GO(SSLv3_server_method, pFv) GO(SSL_version, iFp) //GO(SSL_want, GO(SSL_write, iFppi) +GO(SSL_write_ex, iFppLp) //GO(tls12_check_peer_sigalg, //GO(tls12_get_hash, //GO(tls12_get_psigalgs, |