diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-07-27 13:52:21 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-07-27 13:52:21 +0200 |
| commit | fc4f0e3bae2ae8505e8eeaf3835e572311163ba0 (patch) | |
| tree | 50f96f572bd4fac80c64298bfe193c3194c0d55a /src | |
| parent | e00d35f5bf90fec1f67c196d10bed40dc32211f3 (diff) | |
| download | box64-fc4f0e3bae2ae8505e8eeaf3835e572311163ba0.tar.gz box64-fc4f0e3bae2ae8505e8eeaf3835e572311163ba0.zip | |
Added wrapped libkrb5 and libgss_krb5 (for Wiee64)
Diffstat (limited to 'src')
| -rwxr-xr-x | src/library_list.h | 4 | ||||
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 13 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedkrb5types.h | 19 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 24 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 10 | ||||
| -rwxr-xr-x | src/wrapped/wrappedgssapikrb5.c | 18 | ||||
| -rwxr-xr-x | src/wrapped/wrappedgssapikrb5_private.h | 165 | ||||
| -rwxr-xr-x | src/wrapped/wrappedkrb5.c | 98 | ||||
| -rwxr-xr-x | src/wrapped/wrappedkrb5_private.h | 652 |
9 files changed, 1001 insertions, 2 deletions
diff --git a/src/library_list.h b/src/library_list.h index 51ea173b..99d76d71 100755 --- a/src/library_list.h +++ b/src/library_list.h @@ -157,8 +157,8 @@ GO("libxml2.so.2", xml2) //GO("liblber-2.4.so.2", lber) //GO("libnsl.so.1", nsl) //GO("liblcms2.so.2", lcms2) -//GO("libkrb5.so.3", krb5) -//GO("libgssapi_krb5.so.2", gssapikrb5) +GO("libkrb5.so.3", krb5) +GO("libgssapi_krb5.so.2", gssapikrb5) //GO("libtiff.so.5", libtiff) GO("ld-linux-x86-64.so.2", ldlinux) diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index d3487023..bb214580 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -849,7 +849,9 @@ #() uFpuuuu #() uFppiip #() uFppipp +#() uFppupp #() uFpplip +#() uFppppu #() uFppppp #() UFuiiii #() lFipLli @@ -1035,6 +1037,8 @@ #() iFpppppL #() iFpppppp #() uFpippup +#() uFpuippp +#() uFpppppi #() uFpppppp #() UFpippup #() lFipipLu @@ -1153,6 +1157,7 @@ #() iFppiiuui #() iFppiipii #() iFppiipiL +#() iFppiuppi #() iFppipiip #() iFppipipi #() iFppippip @@ -1172,6 +1177,7 @@ #() iFpppppip #() iFppppppp #() uFuippppp +#() uFppiuppp #() pFEpLiiii #() pFEpLiiiI #() pFEppppip @@ -1243,6 +1249,7 @@ #() iFppppppii #() iFpppppppp #() uFuipppppp +#() uFppuppppp #() pFEppppppp #() pFuiiiuuuu #() pFuupupipp @@ -1329,6 +1336,7 @@ #() vFppdddddddd #() vFpppppppppp #() iFEpupppLppL +#() iFEppppppipp #() iFEppppppppp #() iFiiiiiiiiip #() iFpuupiuiipp @@ -1361,6 +1369,7 @@ #() iFEppppiiiiuu #() iFiiiiiiiiiip #() iFppppiiuuiiL +#() uFppppppppppp #() pFEppiiLpppip #() pFEppuiipuuii #() vFuiiiillliilp @@ -1389,6 +1398,7 @@ #() iFddddpppddpppp #() iFpippuuuiipppp #() iFpupiiiipppppp +#() uFppppuuupppppp #() pFpCuuwwWWWWuup #() pFpuupppwwwwWWC #() pFppppppppppppp @@ -1504,6 +1514,9 @@ wrappedgnutls: - vFpp: - gnutls_transport_set_pull_function - gnutls_transport_set_push_function +wrappedkrb5: +- iFppppppipp: + - krb5_get_init_creds_password wrappedldlinux: - pFp: - __tls_get_addr diff --git a/src/wrapped/generated/wrappedkrb5types.h b/src/wrapped/generated/wrappedkrb5types.h new file mode 100644 index 00000000..836c5476 --- /dev/null +++ b/src/wrapped/generated/wrappedkrb5types.h @@ -0,0 +1,19 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.0.1.14) * + *******************************************************************/ +#ifndef __wrappedkrb5TYPES_H_ +#define __wrappedkrb5TYPES_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + +typedef int64_t (*iFppppppipp_t)(void*, void*, void*, void*, void*, void*, int64_t, void*, void*); + +#define SUPER() ADDED_FUNCTIONS() \ + GO(krb5_get_init_creds_password, iFppppppipp_t) + +#endif // __wrappedkrb5TYPES_H_ diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index d470328a..5a66530f 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -883,7 +883,9 @@ typedef uint64_t (*uFpCCCC_t)(void*, uint8_t, uint8_t, uint8_t, uint8_t); typedef uint64_t (*uFpuuuu_t)(void*, uint64_t, uint64_t, uint64_t, uint64_t); typedef uint64_t (*uFppiip_t)(void*, void*, int64_t, int64_t, void*); typedef uint64_t (*uFppipp_t)(void*, void*, int64_t, void*, void*); +typedef uint64_t (*uFppupp_t)(void*, void*, uint64_t, void*, void*); typedef uint64_t (*uFpplip_t)(void*, void*, intptr_t, int64_t, void*); +typedef uint64_t (*uFppppu_t)(void*, void*, void*, void*, uint64_t); typedef uint64_t (*uFppppp_t)(void*, void*, void*, void*, void*); typedef uint64_t (*UFuiiii_t)(uint64_t, int64_t, int64_t, int64_t, int64_t); typedef intptr_t (*lFipLli_t)(int64_t, void*, uintptr_t, intptr_t, int64_t); @@ -1069,6 +1071,8 @@ typedef int64_t (*iFpppppi_t)(void*, void*, void*, void*, void*, int64_t); typedef int64_t (*iFpppppL_t)(void*, void*, void*, void*, void*, uintptr_t); typedef int64_t (*iFpppppp_t)(void*, void*, void*, void*, void*, void*); typedef uint64_t (*uFpippup_t)(void*, int64_t, void*, void*, uint64_t, void*); +typedef uint64_t (*uFpuippp_t)(void*, uint64_t, int64_t, void*, void*, void*); +typedef uint64_t (*uFpppppi_t)(void*, void*, void*, void*, void*, int64_t); typedef uint64_t (*uFpppppp_t)(void*, void*, void*, void*, void*, void*); typedef uint64_t (*UFpippup_t)(void*, int64_t, void*, void*, uint64_t, void*); typedef intptr_t (*lFipipLu_t)(int64_t, void*, int64_t, void*, uintptr_t, uint64_t); @@ -1187,6 +1191,7 @@ typedef int64_t (*iFppiiiip_t)(void*, void*, int64_t, int64_t, int64_t, int64_t, typedef int64_t (*iFppiiuui_t)(void*, void*, int64_t, int64_t, uint64_t, uint64_t, int64_t); typedef int64_t (*iFppiipii_t)(void*, void*, int64_t, int64_t, void*, int64_t, int64_t); typedef int64_t (*iFppiipiL_t)(void*, void*, int64_t, int64_t, void*, int64_t, uintptr_t); +typedef int64_t (*iFppiuppi_t)(void*, void*, int64_t, uint64_t, void*, void*, int64_t); typedef int64_t (*iFppipiip_t)(void*, void*, int64_t, void*, int64_t, int64_t, void*); typedef int64_t (*iFppipipi_t)(void*, void*, int64_t, void*, int64_t, void*, int64_t); typedef int64_t (*iFppippip_t)(void*, void*, int64_t, void*, void*, int64_t, void*); @@ -1206,6 +1211,7 @@ typedef int64_t (*iFppppdpi_t)(void*, void*, void*, void*, double, void*, int64_ typedef int64_t (*iFpppppip_t)(void*, void*, void*, void*, void*, int64_t, void*); typedef int64_t (*iFppppppp_t)(void*, void*, void*, void*, void*, void*, void*); typedef uint64_t (*uFuippppp_t)(uint64_t, int64_t, void*, void*, void*, void*, void*); +typedef uint64_t (*uFppiuppp_t)(void*, void*, int64_t, uint64_t, void*, void*, void*); typedef void* (*pFEpLiiii_t)(x64emu_t*, void*, uintptr_t, int64_t, int64_t, int64_t, int64_t); typedef void* (*pFEpLiiiI_t)(x64emu_t*, void*, uintptr_t, int64_t, int64_t, int64_t, int64_t); typedef void* (*pFEppppip_t)(x64emu_t*, void*, void*, void*, void*, int64_t, void*); @@ -1277,6 +1283,7 @@ typedef int64_t (*iFppppiipi_t)(void*, void*, void*, void*, int64_t, int64_t, vo typedef int64_t (*iFppppppii_t)(void*, void*, void*, void*, void*, void*, int64_t, int64_t); typedef int64_t (*iFpppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*); typedef uint64_t (*uFuipppppp_t)(uint64_t, int64_t, void*, void*, void*, void*, void*, void*); +typedef uint64_t (*uFppuppppp_t)(void*, void*, uint64_t, void*, void*, void*, void*, void*); typedef void* (*pFEppppppp_t)(x64emu_t*, void*, void*, void*, void*, void*, void*, void*); typedef void* (*pFuiiiuuuu_t)(uint64_t, int64_t, int64_t, int64_t, uint64_t, uint64_t, uint64_t, uint64_t); typedef void* (*pFuupupipp_t)(uint64_t, uint64_t, void*, uint64_t, void*, int64_t, void*, void*); @@ -1363,6 +1370,7 @@ typedef void (*vFffffffffff_t)(float, float, float, float, float, float, float, typedef void (*vFppdddddddd_t)(void*, void*, double, double, double, double, double, double, double, double); typedef void (*vFpppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*); typedef int64_t (*iFEpupppLppL_t)(x64emu_t*, void*, uint64_t, void*, void*, void*, uintptr_t, void*, void*, uintptr_t); +typedef int64_t (*iFEppppppipp_t)(x64emu_t*, void*, void*, void*, void*, void*, void*, int64_t, void*, void*); typedef int64_t (*iFEppppppppp_t)(x64emu_t*, void*, void*, void*, void*, void*, void*, void*, void*, void*); typedef int64_t (*iFiiiiiiiiip_t)(int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, void*); typedef int64_t (*iFpuupiuiipp_t)(void*, uint64_t, uint64_t, void*, int64_t, uint64_t, int64_t, int64_t, void*, void*); @@ -1395,6 +1403,7 @@ typedef void (*vFpipppiiiipi_t)(void*, int64_t, void*, void*, void*, int64_t, in typedef int64_t (*iFEppppiiiiuu_t)(x64emu_t*, void*, void*, void*, void*, int64_t, int64_t, int64_t, int64_t, uint64_t, uint64_t); typedef int64_t (*iFiiiiiiiiiip_t)(int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, int64_t, void*); typedef int64_t (*iFppppiiuuiiL_t)(void*, void*, void*, void*, int64_t, int64_t, uint64_t, uint64_t, int64_t, int64_t, uintptr_t); +typedef uint64_t (*uFppppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*); typedef void* (*pFEppiiLpppip_t)(x64emu_t*, void*, void*, int64_t, int64_t, uintptr_t, void*, void*, void*, int64_t, void*); typedef void* (*pFEppuiipuuii_t)(x64emu_t*, void*, void*, uint64_t, int64_t, int64_t, void*, uint64_t, uint64_t, int64_t, int64_t); typedef void (*vFuiiiillliilp_t)(uint64_t, int64_t, int64_t, int64_t, int64_t, intptr_t, intptr_t, intptr_t, int64_t, int64_t, intptr_t, void*); @@ -1423,6 +1432,7 @@ typedef void (*vFuffffffffffff_t)(uint64_t, float, float, float, float, float, f typedef int64_t (*iFddddpppddpppp_t)(double, double, double, double, void*, void*, void*, double, double, void*, void*, void*, void*); typedef int64_t (*iFpippuuuiipppp_t)(void*, int64_t, void*, void*, uint64_t, uint64_t, uint64_t, int64_t, int64_t, void*, void*, void*, void*); typedef int64_t (*iFpupiiiipppppp_t)(void*, uint64_t, void*, int64_t, int64_t, int64_t, int64_t, void*, void*, void*, void*, void*, void*); +typedef uint64_t (*uFppppuuupppppp_t)(void*, void*, void*, void*, uint64_t, uint64_t, uint64_t, void*, void*, void*, void*, void*, void*); typedef void* (*pFpCuuwwWWWWuup_t)(void*, uint8_t, uint64_t, uint64_t, int16_t, int16_t, uint16_t, uint16_t, uint16_t, uint16_t, uint64_t, uint64_t, void*); typedef void* (*pFpuupppwwwwWWC_t)(void*, uint64_t, uint64_t, void*, void*, void*, int16_t, int16_t, int16_t, int16_t, uint16_t, uint16_t, uint8_t); typedef void* (*pFppppppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*); @@ -2313,7 +2323,9 @@ void uFpCCCC(x64emu_t *emu, uintptr_t fcn) { uFpCCCC_t fn = (uFpCCCC_t)fcn; R_RA void uFpuuuu(x64emu_t *emu, uintptr_t fcn) { uFpuuuu_t fn = (uFpuuuu_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX, (uint64_t)R_RCX, (uint64_t)R_R8); } void uFppiip(x64emu_t *emu, uintptr_t fcn) { uFppiip_t fn = (uFppiip_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (void*)R_R8); } void uFppipp(x64emu_t *emu, uintptr_t fcn) { uFppipp_t fn = (uFppipp_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8); } +void uFppupp(x64emu_t *emu, uintptr_t fcn) { uFppupp_t fn = (uFppupp_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (void*)R_R8); } void uFpplip(x64emu_t *emu, uintptr_t fcn) { uFpplip_t fn = (uFpplip_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (void*)R_RSI, (intptr_t)R_RDX, (int64_t)R_RCX, (void*)R_R8); } +void uFppppu(x64emu_t *emu, uintptr_t fcn) { uFppppu_t fn = (uFppppu_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (uint64_t)R_R8); } void uFppppp(x64emu_t *emu, uintptr_t fcn) { uFppppp_t fn = (uFppppp_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); } void UFuiiii(x64emu_t *emu, uintptr_t fcn) { UFuiiii_t fn = (UFuiiii_t)fcn; R_RAX=fn((uint64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8); } void lFipLli(x64emu_t *emu, uintptr_t fcn) { lFipLli_t fn = (lFipLli_t)fcn; R_RAX=(intptr_t)fn((int64_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (intptr_t)R_RCX, (int64_t)R_R8); } @@ -2499,6 +2511,8 @@ void iFpppppi(x64emu_t *emu, uintptr_t fcn) { iFpppppi_t fn = (iFpppppi_t)fcn; R void iFpppppL(x64emu_t *emu, uintptr_t fcn) { iFpppppL_t fn = (iFpppppL_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uintptr_t)R_R9); } void iFpppppp(x64emu_t *emu, uintptr_t fcn) { iFpppppp_t fn = (iFpppppp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } void uFpippup(x64emu_t *emu, uintptr_t fcn) { uFpippup_t fn = (uFpippup_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (uint64_t)R_R8, (void*)R_R9); } +void uFpuippp(x64emu_t *emu, uintptr_t fcn) { uFpuippp_t fn = (uFpuippp_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (uint64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } +void uFpppppi(x64emu_t *emu, uintptr_t fcn) { uFpppppi_t fn = (uFpppppi_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int64_t)R_R9); } void uFpppppp(x64emu_t *emu, uintptr_t fcn) { uFpppppp_t fn = (uFpppppp_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } void UFpippup(x64emu_t *emu, uintptr_t fcn) { UFpippup_t fn = (UFpippup_t)fcn; R_RAX=fn((void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (uint64_t)R_R8, (void*)R_R9); } void lFipipLu(x64emu_t *emu, uintptr_t fcn) { lFipipLu_t fn = (lFipipLu_t)fcn; R_RAX=(intptr_t)fn((int64_t)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (uintptr_t)R_R8, (uint64_t)R_R9); } @@ -2617,6 +2631,7 @@ void iFppiiiip(x64emu_t *emu, uintptr_t fcn) { iFppiiiip_t fn = (iFppiiiip_t)fcn void iFppiiuui(x64emu_t *emu, uintptr_t fcn) { iFppiiuui_t fn = (iFppiiuui_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (uint64_t)R_R8, (uint64_t)R_R9, *(int64_t*)(R_RSP + 8)); } void iFppiipii(x64emu_t *emu, uintptr_t fcn) { iFppiipii_t fn = (iFppiipii_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (void*)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8)); } void iFppiipiL(x64emu_t *emu, uintptr_t fcn) { iFppiipiL_t fn = (iFppiipiL_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (void*)R_R8, (int64_t)R_R9, *(uintptr_t*)(R_RSP + 8)); } +void iFppiuppi(x64emu_t *emu, uintptr_t fcn) { iFppiuppi_t fn = (iFppiuppi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (uint64_t)R_RCX, (void*)R_R8, (void*)R_R9, *(int64_t*)(R_RSP + 8)); } void iFppipiip(x64emu_t *emu, uintptr_t fcn) { iFppipiip_t fn = (iFppipiip_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8)); } void iFppipipi(x64emu_t *emu, uintptr_t fcn) { iFppipipi_t fn = (iFppipipi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (int64_t)R_R8, (void*)R_R9, *(int64_t*)(R_RSP + 8)); } void iFppippip(x64emu_t *emu, uintptr_t fcn) { iFppippip_t fn = (iFppippip_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8)); } @@ -2636,6 +2651,7 @@ void iFppppdpi(x64emu_t *emu, uintptr_t fcn) { iFppppdpi_t fn = (iFppppdpi_t)fcn void iFpppppip(x64emu_t *emu, uintptr_t fcn) { iFpppppip_t fn = (iFpppppip_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8)); } void iFppppppp(x64emu_t *emu, uintptr_t fcn) { iFppppppp_t fn = (iFppppppp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void uFuippppp(x64emu_t *emu, uintptr_t fcn) { uFuippppp_t fn = (uFuippppp_t)fcn; R_RAX=(uint64_t)fn((uint64_t)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } +void uFppiuppp(x64emu_t *emu, uintptr_t fcn) { uFppiuppp_t fn = (uFppiuppp_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (uint64_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void pFEpLiiii(x64emu_t *emu, uintptr_t fcn) { pFEpLiiii_t fn = (pFEpLiiii_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (uintptr_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9); } void pFEpLiiiI(x64emu_t *emu, uintptr_t fcn) { pFEpLiiiI_t fn = (pFEpLiiiI_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (uintptr_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9); } void pFEppppip(x64emu_t *emu, uintptr_t fcn) { pFEppppip_t fn = (pFEppppip_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8, (void*)R_R9); } @@ -2707,6 +2723,7 @@ void iFppppiipi(x64emu_t *emu, uintptr_t fcn) { iFppppiipi_t fn = (iFppppiipi_t) void iFppppppii(x64emu_t *emu, uintptr_t fcn) { iFppppppii_t fn = (iFppppppii_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16)); } void iFpppppppp(x64emu_t *emu, uintptr_t fcn) { iFpppppppp_t fn = (iFpppppppp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); } void uFuipppppp(x64emu_t *emu, uintptr_t fcn) { uFuipppppp_t fn = (uFuipppppp_t)fcn; R_RAX=(uint64_t)fn((uint64_t)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); } +void uFppuppppp(x64emu_t *emu, uintptr_t fcn) { uFppuppppp_t fn = (uFppuppppp_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); } void pFEppppppp(x64emu_t *emu, uintptr_t fcn) { pFEppppppp_t fn = (pFEppppppp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void pFuiiiuuuu(x64emu_t *emu, uintptr_t fcn) { pFuiiiuuuu_t fn = (pFuiiiuuuu_t)fcn; R_RAX=(uintptr_t)fn((uint64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (uint64_t)R_R8, (uint64_t)R_R9, *(uint64_t*)(R_RSP + 8), *(uint64_t*)(R_RSP + 16)); } void pFuupupipp(x64emu_t *emu, uintptr_t fcn) { pFuupupipp_t fn = (pFuupupipp_t)fcn; R_RAX=(uintptr_t)fn((uint64_t)R_RDI, (uint64_t)R_RSI, (void*)R_RDX, (uint64_t)R_RCX, (void*)R_R8, (int64_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); } @@ -2793,6 +2810,7 @@ void vFffffffffff(x64emu_t *emu, uintptr_t fcn) { vFffffffffff_t fn = (vFfffffff void vFppdddddddd(x64emu_t *emu, uintptr_t fcn) { vFppdddddddd_t fn = (vFppdddddddd_t)fcn; fn((void*)R_RDI, (void*)R_RSI, emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], emu->xmm[3].d[0], emu->xmm[4].d[0], emu->xmm[5].d[0], emu->xmm[6].d[0], emu->xmm[7].d[0]); } void vFpppppppppp(x64emu_t *emu, uintptr_t fcn) { vFpppppppppp_t fn = (vFpppppppppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32)); } void iFEpupppLppL(x64emu_t *emu, uintptr_t fcn) { iFEpupppLppL_t fn = (iFEpupppLppL_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (uint64_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uintptr_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(uintptr_t*)(R_RSP + 24)); } +void iFEppppppipp(x64emu_t *emu, uintptr_t fcn) { iFEppppppipp_t fn = (iFEppppppipp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(int64_t*)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24)); } void iFEppppppppp(x64emu_t *emu, uintptr_t fcn) { iFEppppppppp_t fn = (iFEppppppppp_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24)); } void iFiiiiiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiiiiiip_t fn = (iFiiiiiiiiip_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24), *(void**)(R_RSP + 32)); } void iFpuupiuiipp(x64emu_t *emu, uintptr_t fcn) { iFpuupiuiipp_t fn = (iFpuupiuiipp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (int64_t)R_R8, (uint64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32)); } @@ -2825,6 +2843,7 @@ void vFpipppiiiipi(x64emu_t *emu, uintptr_t fcn) { vFpipppiiiipi_t fn = (vFpippp void iFEppppiiiiuu(x64emu_t *emu, uintptr_t fcn) { iFEppppiiiiuu_t fn = (iFEppppiiiiuu_t)fcn; R_RAX=(int64_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(uint64_t*)(R_RSP + 24), *(uint64_t*)(R_RSP + 32)); } void iFiiiiiiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiiiiiiip_t fn = (iFiiiiiiiiiip_t)fcn; R_RAX=(int64_t)fn((int64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24), *(int64_t*)(R_RSP + 32), *(void**)(R_RSP + 40)); } void iFppppiiuuiiL(x64emu_t *emu, uintptr_t fcn) { iFppppiiuuiiL_t fn = (iFppppiiuuiiL_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(uint64_t*)(R_RSP + 8), *(uint64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24), *(int64_t*)(R_RSP + 32), *(uintptr_t*)(R_RSP + 40)); } +void uFppppppppppp(x64emu_t *emu, uintptr_t fcn) { uFppppppppppp_t fn = (uFppppppppppp_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40)); } void pFEppiiLpppip(x64emu_t *emu, uintptr_t fcn) { pFEppiiLpppip_t fn = (pFEppiiLpppip_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (uintptr_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(int64_t*)(R_RSP + 24), *(void**)(R_RSP + 32)); } void pFEppuiipuuii(x64emu_t *emu, uintptr_t fcn) { pFEppuiipuuii_t fn = (pFEppuiipuuii_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (void*)R_R9, *(uint64_t*)(R_RSP + 8), *(uint64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24), *(int64_t*)(R_RSP + 32)); } void vFuiiiillliilp(x64emu_t *emu, uintptr_t fcn) { vFuiiiillliilp_t fn = (vFuiiiillliilp_t)fcn; fn((uint64_t)R_RDI, (int64_t)R_RSI, (int64_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (intptr_t)R_R9, *(intptr_t*)(R_RSP + 8), *(intptr_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24), *(int64_t*)(R_RSP + 32), *(intptr_t*)(R_RSP + 40), *(void**)(R_RSP + 48)); } @@ -2853,6 +2872,7 @@ void vFuffffffffffff(x64emu_t *emu, uintptr_t fcn) { vFuffffffffffff_t fn = (vFu void iFddddpppddpppp(x64emu_t *emu, uintptr_t fcn) { iFddddpppddpppp_t fn = (iFddddpppddpppp_t)fcn; R_RAX=(int64_t)fn(emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], emu->xmm[3].d[0], (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, emu->xmm[4].d[0], emu->xmm[5].d[0], (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void iFpippuuuiipppp(x64emu_t *emu, uintptr_t fcn) { iFpippuuuiipppp_t fn = (iFpippuuuiipppp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (uint64_t)R_R8, (uint64_t)R_R9, *(uint64_t*)(R_RSP + 8), *(int64_t*)(R_RSP + 16), *(int64_t*)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56)); } void iFpupiiiipppppp(x64emu_t *emu, uintptr_t fcn) { iFpupiiiipppppp_t fn = (iFpupiiiipppppp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uint64_t)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (int64_t)R_R9, *(int64_t*)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56)); } +void uFppppuuupppppp(x64emu_t *emu, uintptr_t fcn) { uFppppuuupppppp_t fn = (uFppppuuupppppp_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (uint64_t)R_R8, (uint64_t)R_R9, *(uint64_t*)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56)); } void pFpCuuwwWWWWuup(x64emu_t *emu, uintptr_t fcn) { pFpCuuwwWWWWuup_t fn = (pFpCuuwwWWWWuup_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint64_t)R_RDX, (uint64_t)R_RCX, (int16_t)R_R8, (int16_t)R_R9, *(uint16_t*)(R_RSP + 8), *(uint16_t*)(R_RSP + 16), *(uint16_t*)(R_RSP + 24), *(uint16_t*)(R_RSP + 32), *(uint64_t*)(R_RSP + 40), *(uint64_t*)(R_RSP + 48), *(void**)(R_RSP + 56)); } void pFpuupppwwwwWWC(x64emu_t *emu, uintptr_t fcn) { pFpuupppwwwwWWC_t fn = (pFpuupppwwwwWWC_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(int16_t*)(R_RSP + 8), *(int16_t*)(R_RSP + 16), *(int16_t*)(R_RSP + 24), *(int16_t*)(R_RSP + 32), *(uint16_t*)(R_RSP + 40), *(uint16_t*)(R_RSP + 48), *(uint8_t*)(R_RSP + 56)); } void pFppppppppppppp(x64emu_t *emu, uintptr_t fcn) { pFppppppppppppp_t fn = (pFppppppppppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40), *(void**)(R_RSP + 48), *(void**)(R_RSP + 56)); } @@ -3639,7 +3659,9 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &uFpuuuu) return 1; if (fun == &uFppiip) return 1; if (fun == &uFppipp) return 1; + if (fun == &uFppupp) return 1; if (fun == &uFpplip) return 1; + if (fun == &uFppppu) return 1; if (fun == &uFppppp) return 1; if (fun == &UFuiiii) return 1; if (fun == &lFipLli) return 1; @@ -3802,6 +3824,8 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &iFpppppL) return 1; if (fun == &iFpppppp) return 1; if (fun == &uFpippup) return 1; + if (fun == &uFpuippp) return 1; + if (fun == &uFpppppi) return 1; if (fun == &uFpppppp) return 1; if (fun == &UFpippup) return 1; if (fun == &lFipipLu) return 1; diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index 67d652f5..98a1df3d 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -879,7 +879,9 @@ void uFpCCCC(x64emu_t *emu, uintptr_t fnc); void uFpuuuu(x64emu_t *emu, uintptr_t fnc); void uFppiip(x64emu_t *emu, uintptr_t fnc); void uFppipp(x64emu_t *emu, uintptr_t fnc); +void uFppupp(x64emu_t *emu, uintptr_t fnc); void uFpplip(x64emu_t *emu, uintptr_t fnc); +void uFppppu(x64emu_t *emu, uintptr_t fnc); void uFppppp(x64emu_t *emu, uintptr_t fnc); void UFuiiii(x64emu_t *emu, uintptr_t fnc); void lFipLli(x64emu_t *emu, uintptr_t fnc); @@ -1065,6 +1067,8 @@ void iFpppppi(x64emu_t *emu, uintptr_t fnc); void iFpppppL(x64emu_t *emu, uintptr_t fnc); void iFpppppp(x64emu_t *emu, uintptr_t fnc); void uFpippup(x64emu_t *emu, uintptr_t fnc); +void uFpuippp(x64emu_t *emu, uintptr_t fnc); +void uFpppppi(x64emu_t *emu, uintptr_t fnc); void uFpppppp(x64emu_t *emu, uintptr_t fnc); void UFpippup(x64emu_t *emu, uintptr_t fnc); void lFipipLu(x64emu_t *emu, uintptr_t fnc); @@ -1183,6 +1187,7 @@ void iFppiiiip(x64emu_t *emu, uintptr_t fnc); void iFppiiuui(x64emu_t *emu, uintptr_t fnc); void iFppiipii(x64emu_t *emu, uintptr_t fnc); void iFppiipiL(x64emu_t *emu, uintptr_t fnc); +void iFppiuppi(x64emu_t *emu, uintptr_t fnc); void iFppipiip(x64emu_t *emu, uintptr_t fnc); void iFppipipi(x64emu_t *emu, uintptr_t fnc); void iFppippip(x64emu_t *emu, uintptr_t fnc); @@ -1202,6 +1207,7 @@ void iFppppdpi(x64emu_t *emu, uintptr_t fnc); void iFpppppip(x64emu_t *emu, uintptr_t fnc); void iFppppppp(x64emu_t *emu, uintptr_t fnc); void uFuippppp(x64emu_t *emu, uintptr_t fnc); +void uFppiuppp(x64emu_t *emu, uintptr_t fnc); void pFEpLiiii(x64emu_t *emu, uintptr_t fnc); void pFEpLiiiI(x64emu_t *emu, uintptr_t fnc); void pFEppppip(x64emu_t *emu, uintptr_t fnc); @@ -1273,6 +1279,7 @@ void iFppppiipi(x64emu_t *emu, uintptr_t fnc); void iFppppppii(x64emu_t *emu, uintptr_t fnc); void iFpppppppp(x64emu_t *emu, uintptr_t fnc); void uFuipppppp(x64emu_t *emu, uintptr_t fnc); +void uFppuppppp(x64emu_t *emu, uintptr_t fnc); void pFEppppppp(x64emu_t *emu, uintptr_t fnc); void pFuiiiuuuu(x64emu_t *emu, uintptr_t fnc); void pFuupupipp(x64emu_t *emu, uintptr_t fnc); @@ -1359,6 +1366,7 @@ void vFffffffffff(x64emu_t *emu, uintptr_t fnc); void vFppdddddddd(x64emu_t *emu, uintptr_t fnc); void vFpppppppppp(x64emu_t *emu, uintptr_t fnc); void iFEpupppLppL(x64emu_t *emu, uintptr_t fnc); +void iFEppppppipp(x64emu_t *emu, uintptr_t fnc); void iFEppppppppp(x64emu_t *emu, uintptr_t fnc); void iFiiiiiiiiip(x64emu_t *emu, uintptr_t fnc); void iFpuupiuiipp(x64emu_t *emu, uintptr_t fnc); @@ -1391,6 +1399,7 @@ void vFpipppiiiipi(x64emu_t *emu, uintptr_t fnc); void iFEppppiiiiuu(x64emu_t *emu, uintptr_t fnc); void iFiiiiiiiiiip(x64emu_t *emu, uintptr_t fnc); void iFppppiiuuiiL(x64emu_t *emu, uintptr_t fnc); +void uFppppppppppp(x64emu_t *emu, uintptr_t fnc); void pFEppiiLpppip(x64emu_t *emu, uintptr_t fnc); void pFEppuiipuuii(x64emu_t *emu, uintptr_t fnc); void vFuiiiillliilp(x64emu_t *emu, uintptr_t fnc); @@ -1419,6 +1428,7 @@ void vFuffffffffffff(x64emu_t *emu, uintptr_t fnc); void iFddddpppddpppp(x64emu_t *emu, uintptr_t fnc); void iFpippuuuiipppp(x64emu_t *emu, uintptr_t fnc); void iFpupiiiipppppp(x64emu_t *emu, uintptr_t fnc); +void uFppppuuupppppp(x64emu_t *emu, uintptr_t fnc); void pFpCuuwwWWWWuup(x64emu_t *emu, uintptr_t fnc); void pFpuupppwwwwWWC(x64emu_t *emu, uintptr_t fnc); void pFppppppppppppp(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedgssapikrb5.c b/src/wrapped/wrappedgssapikrb5.c new file mode 100755 index 00000000..b3befc37 --- /dev/null +++ b/src/wrapped/wrappedgssapikrb5.c @@ -0,0 +1,18 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" + +const char* gssapikrb5Name = "libgssapi_krb5.so.2"; +#define LIBNAME gssapikrb5 + +#include "wrappedlib_init.h" + diff --git a/src/wrapped/wrappedgssapikrb5_private.h b/src/wrapped/wrappedgssapikrb5_private.h new file mode 100755 index 00000000..5a8d683d --- /dev/null +++ b/src/wrapped/wrappedgssapikrb5_private.h @@ -0,0 +1,165 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error Meh.... +#endif + +GO(gss_accept_sec_context, uFppppppppppp) +GO(gss_acquire_cred, uFppuppppp) +//GO(gss_acquire_cred_from, +//GO(gss_acquire_cred_impersonate_name, +//GO(gss_acquire_cred_with_password, +//GO(gss_add_buffer_set_member, +//GO(gss_add_cred, +//GO(gss_add_cred_from, +//GO(gss_add_cred_impersonate_name, +//GO(gss_add_cred_with_password, +//GO(gss_add_oid_set_member, +//GO(gss_authorize_localname, +//GO(gss_canonicalize_name, +//DATA(GSS_C_ATTR_LOCAL_LOGIN_USER, +//DATA(GSS_C_INQ_SSPI_SESSION_KEY, +//DATA(GSS_C_MA_AUTH_INIT, +//DATA(GSS_C_MA_AUTH_INIT_ANON, +//DATA(GSS_C_MA_AUTH_INIT_INIT, +//DATA(GSS_C_MA_AUTH_TARG, +//DATA(GSS_C_MA_AUTH_TARG_ANON, +//DATA(GSS_C_MA_AUTH_TARG_INIT, +//DATA(GSS_C_MA_CBINDINGS, +//DATA(GSS_C_MA_COMPRESS, +//DATA(GSS_C_MA_CONF_PROT, +//DATA(GSS_C_MA_CTX_TRANS, +//DATA(GSS_C_MA_DELEG_CRED, +//DATA(GSS_C_MA_DEPRECATED, +//DATA(GSS_C_MA_INTEG_PROT, +//DATA(GSS_C_MA_ITOK_FRAMED, +//DATA(GSS_C_MA_MECH_COMPOSITE, +//DATA(GSS_C_MA_MECH_CONCRETE, +//DATA(GSS_C_MA_MECH_GLUE, +//DATA(GSS_C_MA_MECH_NEGO, +//DATA(GSS_C_MA_MECH_PSEUDO, +//DATA(GSS_C_MA_MIC, +//DATA(GSS_C_MA_NOT_DFLT_MECH, +//DATA(GSS_C_MA_NOT_MECH, +//DATA(GSS_C_MA_OOS_DET, +//DATA(GSS_C_MA_PFS, +//DATA(GSS_C_MA_PROT_READY, +//DATA(GSS_C_MA_REPLAY_DET, +//DATA(GSS_C_MA_WRAP, +//DATA(GSS_C_NT_ANONYMOUS, +//DATA(GSS_C_NT_COMPOSITE_EXPORT, +//DATA(GSS_C_NT_EXPORT_NAME, +//DATA(GSS_C_NT_HOSTBASED_SERVICE, +//DATA(GSS_C_NT_HOSTBASED_SERVICE_X, +//DATA(GSS_C_NT_MACHINE_UID_NAME, +//DATA(GSS_C_NT_STRING_UID_NAME, +//DATA(GSS_C_NT_USER_NAME, +//GO(gss_compare_name, +//GO(gss_complete_auth_token, +//GO(gss_context_time, +//GO(gss_create_empty_buffer_set, +//GO(gss_create_empty_oid_set, +//GO(gss_decapsulate_token, +//GO(gss_delete_name_attribute, +GO(gss_delete_sec_context, uFppp) +//GO(gss_display_mech_attr, +//GO(gss_display_name, +//GO(gss_display_name_ext, +GO(gss_display_status, uFpuippp) +//GO(gss_duplicate_name, +//GO(gss_encapsulate_token, +//GO(gss_export_cred, +//GO(gss_export_name, +//GO(gss_export_name_composite, +//GO(gss_export_sec_context, +GO(gss_get_mic, uFppupp) +//GO(gss_get_mic_iov, +//GO(gss_get_mic_iov_length, +//GO(gss_get_name_attribute, +//GO(gss_import_cred, +GO(gss_import_name, uFpppp) +//GO(gss_import_sec_context, +//GO(gss_indicate_mechs, +//GO(gss_indicate_mechs_by_attrs, +GO(gss_init_sec_context, uFppppuuupppppp) +//GO(gss_inquire_attrs_for_mech, +GO(gss_inquire_context, uFppppppppp) +//GO(gss_inquire_cred, +//GO(gss_inquire_cred_by_mech, +//GO(gss_inquire_cred_by_oid, +//GO(gss_inquire_mech_for_saslname, +//GO(gss_inquire_mechs_for_name, +//GO(gss_inquire_name, +//GO(gss_inquire_names_for_mech, +//GO(gss_inquire_saslname_for_mech, +//GO(gss_inquire_sec_context_by_oid, +//GO(gssint_g_seqstate_init, +//GO(gss_krb5_ccache_name, +//GO(gss_krb5_copy_ccache, +//GO(gss_krb5_export_lucid_sec_context, +//GO(gsskrb5_extract_authtime_from_sec_context, +//GO(gsskrb5_extract_authz_data_from_sec_context, +//GO(gss_krb5_free_lucid_sec_context, +//GO(gss_krb5_get_tkt_flags, +//GO(gss_krb5_import_cred, +//GO(gss_krb5int_make_seal_token_v3, +//GO(gss_krb5int_unseal_token_v3, +//DATA(GSS_KRB5_NT_PRINCIPAL_NAME, +//GO(gss_krb5_set_allowable_enctypes, +//GO(gss_krb5_set_cred_rcache, +//GO(gss_localname, +//GO(gss_map_name_to_any, +//DATA(gss_mech_iakerb, +//DATA(gss_mech_krb5, +//DATA(gss_mech_krb5_old, +//DATA(gss_mech_krb5_wrong, +//DATA(gss_mech_set_krb5, +//DATA(gss_mech_set_krb5_both, +//DATA(gss_mech_set_krb5_old, +//DATA(gss_nt_exported_name, +//DATA(gss_nt_krb5_name, +//DATA(gss_nt_krb5_principal, +//DATA(gss_nt_machine_uid_name, +//DATA(gss_nt_service_name, +//DATA(gss_nt_service_name_v2, +//DATA(gss_nt_string_uid_name, +//DATA(gss_nt_user_name, +//GO(gss_oid_equal, +//GO(gss_oid_to_str, +//GO(gss_pname_to_uid, +//GO(gss_process_context_token, +//GO(gss_pseudo_random, +//GO(gss_release_any_name_mapping, +GO(gss_release_buffer, uFpp) +//GO(gss_release_buffer_set, +GO(gss_release_cred, uFpp) +GO(gss_release_iov_buffer, uFppi) +GO(gss_release_name, uFpp) +//GO(gss_release_oid, +//GO(gss_release_oid_set, +//GO(gss_seal, +//GO(gss_set_cred_option, +//GO(gss_set_name_attribute, +//GO(gss_set_neg_mechs, +//GO(gss_set_sec_context_option, +//GO(gss_sign, +//GO(gssspi_mech_invoke, +//GO(gssspi_set_cred_option, +//GO(gss_store_cred, +//GO(gss_store_cred_into, +//GO(gss_str_to_oid, +//GO(gss_test_oid_set_member, +//GO(gss_unseal, +GO(gss_unwrap, uFpppppp) +//GO(gss_unwrap_aead, +GO(gss_unwrap_iov, uFpppppi) +//GO(gss_userok, +//GO(gss_verify, +GO(gss_verify_mic, uFppppu) +//GO(gss_verify_mic_iov, +GO(gss_wrap, uFppiuppp) +//GO(gss_wrap_aead, +GO(gss_wrap_iov, iFppiuppi) +//GO(gss_wrap_iov_length, +//GO(gss_wrap_size_limit, +//DATAB(krb5_gss_dbg_client_expcreds, +//GO(krb5_gss_register_acceptor_identity, +//GO(krb5_gss_use_kdc_context, \ No newline at end of file diff --git a/src/wrapped/wrappedkrb5.c b/src/wrapped/wrappedkrb5.c new file mode 100755 index 00000000..851097bc --- /dev/null +++ b/src/wrapped/wrappedkrb5.c @@ -0,0 +1,98 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "debug.h" +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" +#include "emu/x64emu_private.h" +#include "box64context.h" +#include "librarian.h" +#include "callback.h" + +const char* krb5Name = "libkrb5.so.3"; +#define LIBNAME krb5 +static library_t *my_lib = NULL; + +typedef int (*iFppppppipp_t) (void*, void*, void*, void*, void*, void*, int, void*, void*); + +#define SUPER() \ + GO(krb5_get_init_creds_password, iFppppppipp_t) \ + +typedef struct krb5_my_s { + // functions + #define GO(A, B) B A; + SUPER() + #undef GO +} krb5_my_t; + +void* getKrb5My(library_t* lib) +{ + krb5_my_t* my = (krb5_my_t*)calloc(1, sizeof(krb5_my_t)); + #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A); + SUPER() + #undef GO + return my; +} +#undef SUPER + +void freeKrb5My(void* lib) +{ + //krb5_my_t *my = (krb5_my_t *)lib; +} + +#define SUPER() \ +GO(0) \ +GO(1) \ +GO(2) \ +GO(3) \ +GO(4) + +// krb5_prompter ... +#define GO(A) \ +static uintptr_t my_krb5_prompter_fct_##A = 0; \ +static int my_krb5_prompter_##A(void* a, void* b, void* c, void* d, int e, void* f) \ +{ \ + return RunFunction(my_context, my_krb5_prompter_fct_##A, 6, a, b, c, d, e, f); \ +} +SUPER() +#undef GO +static void* find_krb5_prompter_Fct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_krb5_prompter_fct_##A == (uintptr_t)fct) return my_krb5_prompter_##A; + SUPER() + #undef GO + #define GO(A) if(my_krb5_prompter_fct_##A == 0) {my_krb5_prompter_fct_##A = (uintptr_t)fct; return my_krb5_prompter_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for libkrb5 krb5_prompter callback\n"); + return NULL; +} +#undef SUPER + +EXPORT int my_krb5_get_init_creds_password(x64emu_t* emu, void* context, void* creds, void* client, void* password, void* f, void* data, int delta, void* service, void* options) +{ + krb5_my_t* my = (krb5_my_t*)my_lib->priv.w.p2; + + return my->krb5_get_init_creds_password(context, creds, client, password, find_krb5_prompter_Fct(f), data, delta, service, options); +} + +#define CUSTOM_INIT \ + lib->priv.w.p2 = getKrb5My(lib); \ + my_lib = lib; + +#define CUSTOM_FINI \ + freeKrb5My(lib->priv.w.p2); \ + free(lib->priv.w.p2); \ + my_lib = NULL; + +#include "wrappedlib_init.h" + diff --git a/src/wrapped/wrappedkrb5_private.h b/src/wrapped/wrappedkrb5_private.h new file mode 100755 index 00000000..d06e984a --- /dev/null +++ b/src/wrapped/wrappedkrb5_private.h @@ -0,0 +1,652 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error Meh.... +#endif + +//GO(decode_krb5_ad_kdcissued, +//GO(decode_krb5_ad_signedpath, +//GO(decode_krb5_ap_rep, +//GO(decode_krb5_ap_rep_enc_part, +//GO(decode_krb5_ap_req, +//GO(decode_krb5_as_rep, +//GO(decode_krb5_as_req, +//GO(decode_krb5_authdata, +//GO(decode_krb5_authenticator, +//GO(decode_krb5_cred, +//GO(decode_krb5_enc_cred_part, +//GO(decode_krb5_enc_data, +//GO(decode_krb5_enc_kdc_rep_part, +//GO(decode_krb5_enc_priv_part, +//GO(decode_krb5_encryption_key, +//GO(decode_krb5_enc_sam_response_enc_2, +//GO(decode_krb5_enc_tkt_part, +//GO(decode_krb5_error, +//GO(decode_krb5_etype_info, +//GO(decode_krb5_etype_info2, +//GO(decode_krb5_fast_req, +//GO(decode_krb5_fast_response, +//GO(decode_krb5_iakerb_finished, +//GO(decode_krb5_iakerb_header, +//GO(decode_krb5_kdc_req_body, +//GO(decode_krb5_kkdcp_message, +//GO(decode_krb5_otp_tokeninfo, +//GO(decode_krb5_padata_sequence, +//GO(decode_krb5_pa_enc_ts, +//GO(decode_krb5_pa_for_user, +//GO(decode_krb5_pa_fx_fast_reply, +//GO(decode_krb5_pa_fx_fast_request, +//GO(decode_krb5_pa_otp_challenge, +//GO(decode_krb5_pa_otp_enc_req, +//GO(decode_krb5_pa_otp_req, +//GO(decode_krb5_pa_pac_req, +//GO(decode_krb5_pa_s4u_x509_user, +//GO(decode_krb5_priv, +//GO(decode_krb5_safe, +//GO(decode_krb5_sam_challenge_2, +//GO(decode_krb5_sam_challenge_2_body, +//GO(decode_krb5_sam_response_2, +//GO(decode_krb5_setpw_req, +//GO(decode_krb5_tgs_rep, +//GO(decode_krb5_tgs_req, +//GO(decode_krb5_ticket, +//GO(decode_krb5_typed_data, +//GO(encode_krb5_ad_kdcissued, +//GO(encode_krb5_ad_signedpath, +//GO(encode_krb5_ad_signedpath_data, +//GO(encode_krb5_ap_rep, +//GO(encode_krb5_ap_rep_enc_part, +//GO(encode_krb5_ap_req, +//GO(encode_krb5_as_rep, +//GO(encode_krb5_as_req, +//GO(encode_krb5_authdata, +//GO(encode_krb5_authenticator, +//GO(encode_krb5_checksum, +//GO(encode_krb5_cred, +//GO(encode_krb5_enc_cred_part, +//GO(encode_krb5_enc_data, +//GO(encode_krb5_enc_kdc_rep_part, +//GO(encode_krb5_enc_priv_part, +//GO(encode_krb5_encryption_key, +//GO(encode_krb5_enc_sam_response_enc_2, +//GO(encode_krb5_enc_tkt_part, +//GO(encode_krb5_error, +//GO(encode_krb5_etype_info, +//GO(encode_krb5_etype_info2, +//GO(encode_krb5_fast_response, +//GO(encode_krb5_iakerb_finished, +//GO(encode_krb5_iakerb_header, +//GO(encode_krb5_kdc_req_body, +//GO(encode_krb5_kkdcp_message, +//GO(encode_krb5_otp_tokeninfo, +//GO(encode_krb5_padata_sequence, +//GO(encode_krb5_pa_enc_ts, +//GO(encode_krb5_pa_for_user, +//GO(encode_krb5_pa_fx_fast_reply, +//GO(encode_krb5_pa_otp_challenge, +//GO(encode_krb5_pa_otp_enc_req, +//GO(encode_krb5_pa_otp_req, +//GO(encode_krb5_pa_s4u_x509_user, +//GO(encode_krb5_pkinit_supp_pub_info, +//GO(encode_krb5_priv, +//GO(encode_krb5_s4u_userid, +//GO(encode_krb5_safe, +//GO(encode_krb5_sam_challenge_2, +//GO(encode_krb5_sam_challenge_2_body, +//GO(encode_krb5_sam_response_2, +//GO(encode_krb5_sp80056a_other_info, +//GO(encode_krb5_tgs_rep, +//GO(encode_krb5_tgs_req, +//GO(encode_krb5_ticket, +//GO(encode_krb5_typed_data, +//DATA(et_asn1_error_table, +//DATA(et_k524_error_table, +//DATA(et_kdb5_error_table, +//DATA(et_krb5_error_table, +//DATA(et_kv5m_error_table, +//DATA(et_prof_error_table, +//GO(initialize_asn1_error_table, +//GO(initialize_k524_error_table, +//GO(initialize_k5e1_error_table, +//GO(initialize_kdb5_error_table, +//GO(initialize_krb5_error_table, +//GO(initialize_kv5m_error_table, +//GO(initialize_prof_error_table, +//GO(k5_build_conf_principals, +//GO(k5_ccselect_free_context, +//GO(k5_change_error_message_code, +//GO(k5_etypes_contains, +//GO(k5_expand_path_tokens, +//GO(k5_expand_path_tokens_extra, +//GO(k5_free_algorithm_identifier, +//GO(k5_free_kkdcp_message, +//GO(k5_free_otp_tokeninfo, +//GO(k5_free_pa_otp_challenge, +//GO(k5_free_pa_otp_req, +//GO(k5_free_serverlist, +//GO(k5_hostrealm_free_context, +//GO(k5_init_trace, +//GO(k5_kt_get_principal, +//GO(k5_localauth_free_context, +//GO(k5_locate_kdc, +//GO(k5_marshal_cred, +//GO(k5_marshal_princ, +//GO(k5_os_free_context, +//GO(k5_os_init_context, +//GO(k5_plugin_free_modules, +//GO(k5_plugin_load, +//GO(k5_plugin_load_all, +//GO(k5_plugin_register, +//GO(k5_plugin_register_dyn, +//GO(k5_unmarshal_cred, +//GO(k5_unmarshal_princ, +//GO(krb524_convert_creds_kdc, +//GO(krb524_init_ets, +//GO(krb5_425_conv_principal, +//GO(krb5_524_convert_creds, +//GO(krb5_524_conv_principal, +//GO(krb5_address_compare, +//GO(krb5_address_order, +//GO(krb5_address_search, +//GO(krb5_allow_weak_crypto, +//GO(krb5_aname_to_localname, +//GO(krb5_anonymous_principal, +//GO(krb5_anonymous_realm, +//GO(krb5_appdefault_boolean, +//GO(krb5_appdefault_string, +//GO(krb5_auth_con_free, +//GO(krb5_auth_con_genaddrs, +//GO(krb5_auth_con_getaddrs, +//GO(krb5_auth_con_get_authdata_context, +//GO(krb5_auth_con_getauthenticator, +//GO(krb5_auth_con_get_checksum_func, +//GO(krb5_auth_con_getflags, +//GO(krb5_auth_con_getivector, +//GO(krb5_auth_con_getkey, +//GO(krb5_auth_con_getkey_k, +//GO(krb5_auth_con_getlocalseqnumber, +//GO(krb5_auth_con_getlocalsubkey, +//GO(krb5_auth_con_getpermetypes, +//GO(krb5_auth_con_getrcache, +//GO(krb5_auth_con_getrecvsubkey, +//GO(krb5_auth_con_getrecvsubkey_k, +//GO(krb5_auth_con_getremoteseqnumber, +//GO(krb5_auth_con_getremotesubkey, +//GO(krb5_auth_con_getsendsubkey, +//GO(krb5_auth_con_getsendsubkey_k, +//GO(krb5_auth_con_init, +//GO(krb5_auth_con_initivector, +//GO(krb5_auth_con_setaddrs, +//GO(krb5_auth_con_set_authdata_context, +//GO(krb5_auth_con_set_checksum_func, +//GO(krb5_auth_con_setflags, +//GO(krb5_auth_con_setivector, +//GO(krb5_auth_con_setpermetypes, +//GO(krb5_auth_con_setports, +//GO(krb5_auth_con_setrcache, +//GO(krb5_auth_con_setrecvsubkey, +//GO(krb5_auth_con_setrecvsubkey_k, +//GO(krb5_auth_con_set_req_cksumtype, +//GO(krb5_auth_con_set_safe_cksumtype, +//GO(krb5_auth_con_setsendsubkey, +//GO(krb5_auth_con_setsendsubkey_k, +//GO(krb5_auth_con_setuseruserkey, +//GO(krb5_authdata_context_copy, +//GO(krb5_authdata_context_free, +//GO(krb5_authdata_context_init, +//GO(krb5_authdata_delete_attribute, +//GO(krb5_authdata_export_attributes, +//GO(krb5_authdata_export_authdata, +//GO(krb5_authdata_export_internal, +//GO(krb5_authdata_free_internal, +//GO(krb5_authdata_get_attribute, +//GO(krb5_authdata_get_attribute_types, +//GO(krb5_authdata_import_attributes, +//GO(krb5_authdata_set_attribute, +//GO(krb5_auth_to_rep, +//GO(krb5_build_principal, +//GO(krb5_build_principal_alloc_va, +//GO(krb5_build_principal_ext, +//GO(krb5_build_principal_va, +//GO(krb5_cc_cache_match, +GO(krb5_cc_close, iFpp) +GO(krb5_cccol_cursor_free, iFpp) +GO(krb5_cccol_cursor_new, iFpp) +GO(krb5_cccol_cursor_next, iFppp) +//GO(krb5_cccol_have_content, +//GO(krb5_cc_copy_creds, +GO(krb5_cc_default, iFpp) +//GO(krb5_cc_default_name, +//GO(krb5_cc_destroy, +//DATA(krb5_cc_dfl_ops, +//GO(krb5_cc_dup, +GO(krb5_cc_end_seq_get, iFppp) +//DATA(krb5_cc_file_ops, +//GO(krb5_cc_gen_new, +//GO(krb5_cc_get_config, +//GO(krb5_cc_get_full_name, +//GO(krb5_cc_get_name, +//GO(krb5_cc_get_principal, +//GO(krb5_cc_get_type, +GO(krb5_cc_initialize, iFppp) +//GO(krb5_cc_move, +//GO(krb5_cc_new_unique, +GO(krb5_cc_next_cred, iFpppp) +//GO(krb5_cc_register, +//GO(krb5_cc_remove_cred, +//GO(krb5_cc_resolve, +//GO(krb5_cc_retrieve_cred, +//GO(krb5_cc_select, +//GO(krb5_cc_set_config, +//GO(krb5_cc_set_default_name, +//GO(krb5_cc_set_flags, +GO(krb5_cc_start_seq_get, iFppp) +GO(krb5_cc_store_cred, iFppp) +//GO(krb5_cc_support_switch, +//GO(krb5_cc_switch, +//GO(krb5_change_cache, +//GO(krb5_change_password, +//GO(krb5_check_clockskew, +//GO(krb5_check_transited_list, +//GO(krb5_chpw_message, +//GO(krb5_chpw_result_code_string, +//GO(krb5_clear_error_message, +//GO(_krb5_conf_boolean, +//GO(krb5_copy_addr, +//GO(krb5_copy_addresses, +//GO(krb5_copy_authdata, +//GO(krb5_copy_authenticator, +//GO(krb5_copy_checksum, +//GO(krb5_copy_context, +//GO(krb5_copy_creds, +//GO(krb5_copy_data, +//GO(krb5_copy_error_message, +//GO(krb5_copy_keyblock, +//GO(krb5_copy_keyblock_contents, +//GO(krb5_copy_principal, +//GO(krb5_copy_ticket, +//GO(krb5_crypto_us_timeofday, +//GO(krb5_decode_authdata_container, +GO(krb5_decode_ticket, iFpp) +//GO(krb5_decrypt_tkt_part, +//GO(krb5_deltat_to_string, +//GO(krb5_encode_authdata_container, +//GO(krb5_encode_kdc_rep, +//GO(krb5_encrypt_helper, +//GO(krb5_encrypt_tkt_part, +//GO(krb5_externalize_data, +//GO(krb5_externalize_opaque, +//DATA(krb5_fcc_ops, +//GO(krb5_find_authdata, +//GO(krb5_find_serializer, +//GO(krb5_free_address, +//GO(krb5_free_addresses, +//GO(krb5_free_ad_kdcissued, +//GO(krb5_free_ad_signedpath, +//GO(krb5_free_ap_rep, +//GO(krb5_free_ap_rep_enc_part, +//GO(krb5_free_ap_req, +//GO(krb5_free_authdata, +//GO(krb5_free_authenticator, +//GO(krb5_free_authenticator_contents, +//GO(krb5_free_checksum, +//GO(krb5_free_checksum_contents, +//GO(krb5_free_config_files, +GO(krb5_free_context, vFp) +//GO(krb5_free_cred, +GO(krb5_free_cred_contents, vFpp) +//GO(krb5_free_cred_enc_part, +//GO(krb5_free_creds, +//GO(krb5_free_data, +//GO(krb5_free_data_contents, +//GO(krb5_free_default_realm, +//GO(krb5_free_enc_data, +//GO(krb5_free_enc_kdc_rep_part, +//GO(krb5_free_enc_sam_response_enc_2, +//GO(krb5_free_enc_sam_response_enc_2_contents, +//GO(krb5_free_enc_tkt_part, +//GO(krb5_free_enctypes, +//GO(krb5_free_error, +//GO(krb5_free_error_message, +//GO(krb5_free_etype_info, +//GO(krb5_free_fast_armored_req, +//GO(krb5_free_fast_req, +//GO(krb5_free_fast_response, +//GO(krb5_free_host_realm, +//GO(krb5_free_iakerb_finished, +//GO(krb5_free_iakerb_header, +//GO(krb5_free_kdc_rep, +//GO(krb5_free_kdc_req, +//GO(krb5_free_keyblock, +//GO(krb5_free_keyblock_contents, +//GO(krb5_free_keytab_entry_contents, +//GO(krb5_free_last_req, +//GO(krb5_free_octet_data, +//GO(krb5_free_pa_data, +//GO(krb5_free_pa_enc_ts, +//GO(krb5_free_pa_for_user, +//GO(krb5_free_pa_pac_req, +//GO(krb5_free_pa_s4u_x509_user, +GO(krb5_free_principal, vFpp) +//GO(krb5_free_priv, +//GO(krb5_free_priv_enc_part, +//GO(krb5_free_realm_tree, +//GO(krb5_free_safe, +//GO(krb5_free_sam_challenge_2, +//GO(krb5_free_sam_challenge_2_body, +//GO(krb5_free_sam_challenge_2_body_contents, +//GO(krb5_free_sam_challenge_2_contents, +//GO(krb5_free_sam_response_2, +//GO(krb5_free_sam_response_2_contents, +//GO(krb5_free_string, +//GO(krb5_free_tgt_creds, +GO(krb5_free_ticket, vFpp) +//GO(krb5_free_tickets, +//GO(krb5_free_tkt_authent, +GO(krb5_free_unparsed_name, vFpp) +//GO(krb5_fwd_tgt_creds, +//GO(krb5_generate_seq_number, +//GO(krb5_generate_subkey, +//GO(krb5_gen_portaddr, +//GO(krb5_gen_replay_name, +//GO(krb5_get_credentials, +//GO(krb5_get_credentials_for_proxy, +//GO(krb5_get_credentials_for_user, +//GO(krb5_get_credentials_renew, +//GO(krb5_get_credentials_validate, +//GO(krb5_get_cred_via_tkt, +//GO(krb5_get_default_config_files, +//GO(krb5_get_default_in_tkt_ktypes, +//GO(krb5_get_default_realm, +//GO(krb5_get_error_message, +//GO(krb5_get_fallback_host_realm, +//GO(krb5_get_host_realm, +//GO(krb5_get_init_creds_keytab, +GO(krb5_get_init_creds_opt_alloc, iFpp) +GO(krb5_get_init_creds_opt_free, vFpp) +//GO(krb5_get_init_creds_opt_free_pa, +//GO(krb5_get_init_creds_opt_get_fast_flags, +//GO(krb5_get_init_creds_opt_get_pa, +//GO(krb5_get_init_creds_opt_init, +//GO(krb5_get_init_creds_opt_set_address_list, +//GO(krb5_get_init_creds_opt_set_anonymous, +//GO(krb5_get_init_creds_opt_set_canonicalize, +//GO(krb5_get_init_creds_opt_set_change_password_prompt, +//GO(krb5_get_init_creds_opt_set_etype_list, +//GO(krb5_get_init_creds_opt_set_expire_callback, +//GO(krb5_get_init_creds_opt_set_fast_ccache, +//GO(krb5_get_init_creds_opt_set_fast_ccache_name, +//GO(krb5_get_init_creds_opt_set_fast_flags, +//GO(krb5_get_init_creds_opt_set_forwardable, +//GO(krb5_get_init_creds_opt_set_in_ccache, +GO(krb5_get_init_creds_opt_set_out_ccache, iFppp) +//GO(krb5_get_init_creds_opt_set_pa, +//GO(krb5_get_init_creds_opt_set_preauth_list, +//GO(krb5_get_init_creds_opt_set_proxiable, +//GO(krb5_get_init_creds_opt_set_renew_life, +//GO(krb5_get_init_creds_opt_set_responder, +//GO(krb5_get_init_creds_opt_set_salt, +//GO(krb5_get_init_creds_opt_set_tkt_life, +GOM(krb5_get_init_creds_password, iFEppppppipp) +//GO(krb5_get_in_tkt_with_keytab, +//GO(krb5_get_in_tkt_with_password, +//GO(krb5_get_in_tkt_with_skey, +//GO(krb5_get_notification_message, +//GO(krb5_get_permitted_enctypes, +//GO(krb5_get_profile, +//GO(krb5_get_prompt_types, +//GO(krb5_get_realm_domain, +//GO(krb5_get_renewed_creds, +//GO(krb5_get_server_rcache, +//GO(krb5_get_tgs_ktypes, +//GO(krb5_get_time_offsets, +//GO(krb5_get_validated_creds, +GO(krb5_init_context, iFp) +//GO(krb5_init_context_profile, +//GO(krb5_init_creds_free, +//GO(krb5_init_creds_get, +//GO(krb5_init_creds_get_creds, +//GO(krb5_init_creds_get_error, +//GO(krb5_init_creds_get_times, +//GO(krb5_init_creds_init, +//GO(krb5_init_creds_set_keytab, +//GO(krb5_init_creds_set_password, +//GO(krb5_init_creds_set_service, +//GO(krb5_init_creds_step, +//GO(krb5_init_keyblock, +//GO(krb5_init_secure_context, +//GO(krb5int_accessor, +//GO(krb5int_cc_default, +//GO(krb5int_cleanup_library, +//GO(krb5int_copy_data_contents, +//GO(krb5int_copy_data_contents_add0, +//GO(krb5_internalize_opaque, +//GO(krb5int_find_pa_data, +//GO(krb5int_foreach_localaddr, +//GO(krb5int_free_data_list, +//GO(krb5int_get_authdata_containee_types, +//GO(krb5int_init_context_kdc, +//GO(krb5int_initialize_library, +//GO(krb5int_parse_enctype_list, +//GO(krb5int_random_string, +//GO(krb5int_tgtname, +//GO(krb5int_trace, +GO(krb5_is_config_principal, uFpp) +//GO(krb5_is_permitted_enctype, +//GO(krb5_is_referral_realm, +//GO(krb5_is_thread_safe, +//GO(krb5_kdc_rep_decrypt_proc, +//GO(krb5_kt_add_entry, +//GO(krb5_kt_client_default, +//GO(krb5_kt_close, +//GO(krb5_kt_default, +//GO(krb5_kt_default_name, +//DATA(krb5_kt_dfl_ops, +//GO(krb5_kt_dup, +//GO(krb5_kt_end_seq_get, +//DATA(krb5_ktf_ops, +//GO(krb5_kt_free_entry, +//DATA(krb5_ktf_writable_ops, +//GO(krb5_kt_get_entry, +//GO(krb5_kt_get_name, +//GO(krb5_kt_get_type, +//GO(krb5_kt_have_content, +//GO(krb5_kt_next_entry, +//GO(krb5_kt_read_service_key, +//GO(krb5_kt_register, +//GO(krb5_kt_remove_entry, +//GO(krb5_kt_resolve, +//DATA(krb5_kts_ops, +//GO(krb5_kt_start_seq_get, +//GO(krb5_kuserok, +//GO(krb5_lock_file, +//GO(krb5_make_authdata_kdc_issued, +//GO(krb5_make_fulladdr, +//GO(krb5_make_full_ipaddr, +//DATA(krb5_mcc_ops, +//GO(krb5_merge_authdata, +//GO(krb5_mk_1cred, +//GO(krb5_mk_error, +//GO(krb5_mk_ncred, +//GO(krb5_mk_priv, +//GO(krb5_mk_rep, +//GO(krb5_mk_rep_dce, +//GO(krb5_mk_req, +//GO(krb5_mk_req_extended, +//GO(krb5_mk_safe, +//GO(krb5_net_read, +//GO(krb5_net_write, +//GO(krb5_os_localaddr, +//DATAB(krb5_overridekeyname, +//GO(krb5_pac_add_buffer, +//GO(krb5_pac_free, +//GO(krb5_pac_get_buffer, +//GO(krb5_pac_get_types, +//GO(krb5_pac_init, +//GO(krb5_pac_parse, +//GO(krb5_pac_sign, +//GO(krb5_pac_verify, +//GO(krb5_parse_name, +GO(krb5_parse_name_flags, iFppip) +//GO(krb5_principal2salt, +//GO(krb5_principal2salt_norealm, +//GO(krb5_principal_compare, +//GO(krb5_principal_compare_any_realm, +//GO(krb5_principal_compare_flags, +//GO(krb5_prompter_posix, +//GO(krb5_rc_close, +//GO(krb5_rc_default, +//GO(krb5_rc_default_name, +//GO(krb5_rc_default_type, +//GO(krb5_rc_destroy, +//GO(krb5_rc_dfl_close, +//GO(krb5_rc_dfl_close_no_free, +//GO(krb5_rc_dfl_destroy, +//GO(krb5_rc_dfl_expunge, +//GO(krb5_rc_dfl_get_name, +//GO(krb5_rc_dfl_get_span, +//GO(krb5_rc_dfl_init, +//DATA(krb5_rc_dfl_ops, +//GO(krb5_rc_dfl_recover, +//GO(krb5_rc_dfl_resolve, +//GO(krb5_rc_dfl_store, +//GO(krb5_rc_expunge, +//GO(krb5_rc_free_entry, +//GO(krb5_rc_get_lifespan, +//GO(krb5_rc_get_name, +//GO(krb5_rc_get_type, +//GO(krb5_rc_hash_message, +//GO(krb5_rc_initialize, +//GO(krb5_rc_io_close, +//GO(krb5_rc_io_creat, +//GO(krb5_rc_io_destroy, +//GO(krb5_rc_io_mark, +//GO(krb5_rc_io_move, +//GO(krb5_rc_io_open, +//GO(krb5_rc_io_read, +//GO(krb5_rc_io_size, +//GO(krb5_rc_io_sync, +//GO(krb5_rc_io_unmark, +//GO(krb5_rc_io_write, +//GO(krb5_rc_recover, +//GO(krb5_rc_recover_or_initialize, +//GO(krb5_rc_register_type, +//GO(krb5_rc_resolve, +//GO(krb5_rc_resolve_full, +//GO(krb5_rc_resolve_type, +//GO(krb5_rc_store, +//GO(krb5_rd_cred, +//GO(krb5_rd_error, +//GO(krb5_rd_priv, +//GO(krb5_rd_rep, +//GO(krb5_rd_rep_dce, +//GO(krb5_rd_req, +//GO(krb5_rd_req_decoded, +//GO(krb5_rd_req_decoded_anyflag, +//GO(krb5_rd_safe, +//GO(krb5_read_message, +//GO(krb5_read_password, +//GO(krb5_realm_compare, +//GO(krb5_recvauth, +//GO(krb5_recvauth_version, +//GO(krb5_register_serializer, +//GO(krb5_responder_get_challenge, +//GO(krb5_responder_list_questions, +//GO(krb5_responder_otp_challenge_free, +//GO(krb5_responder_otp_get_challenge, +//GO(krb5_responder_otp_set_answer, +//GO(krb5_responder_pkinit_challenge_free, +//GO(krb5_responder_pkinit_get_challenge, +//GO(krb5_responder_pkinit_set_answer, +//GO(krb5_responder_set_answer, +//GO(krb5_salttype_to_string, +//GO(krb5_sendauth, +//GO(krb5_sendto_kdc, +//GO(krb5_ser_address_init, +//GO(krb5_ser_auth_context_init, +//GO(krb5_ser_authdata_init, +//GO(krb5_ser_authenticator_init, +//GO(krb5_ser_ccache_init, +//GO(krb5_ser_checksum_init, +//GO(krb5_ser_context_init, +//GO(krb5_ser_keyblock_init, +//GO(krb5_ser_keytab_init, +//GO(krb5_ser_pack_bytes, +//GO(krb5_ser_pack_int32, +//GO(krb5_ser_pack_int64, +//GO(krb5_ser_principal_init, +//GO(krb5_ser_rcache_init, +//GO(krb5_ser_unpack_bytes, +//GO(krb5_ser_unpack_int32, +//GO(krb5_ser_unpack_int64, +//GO(krb5_server_decrypt_ticket_keytab, +//GO(krb5_set_config_files, +//GO(krb5_set_debugging_time, +//GO(krb5_set_default_in_tkt_ktypes, +//GO(krb5_set_default_realm, +//GO(krb5_set_default_tgs_enctypes, +//GO(krb5_set_default_tgs_ktypes, +//GO(krb5_set_error_message, +//GO(krb5_set_password, +//GO(krb5_set_password_using_ccache, +//GO(krb5_set_principal_realm, +//GO(krb5_set_real_time, +//GO(krb5_set_time_offsets, +//GO(krb5_set_trace_callback, +//GO(krb5_set_trace_filename, +//GO(krb5_size_opaque, +//GO(krb5_sname_match, +//GO(krb5_sname_to_principal, +//GO(krb5_string_to_deltat, +//GO(krb5_string_to_salttype, +//GO(krb5_string_to_timestamp, +//GO(krb5_timeofday, +//GO(krb5_timestamp_to_sfstring, +//GO(krb5_timestamp_to_string, +//GO(krb5_tkt_creds_free, +//GO(krb5_tkt_creds_get, +//GO(krb5_tkt_creds_get_creds, +//GO(krb5_tkt_creds_get_times, +//GO(krb5_tkt_creds_init, +//GO(krb5_tkt_creds_step, +//GO(krb5_unlock_file, +//GO(krb5_unpack_full_ipaddr, +//GO(krb5_unparse_name, +//GO(krb5_unparse_name_ext, +GO(krb5_unparse_name_flags, iFppip) +//GO(krb5_unparse_name_flags_ext, +//GO(krb5_use_natural_time, +//GO(krb5_us_timeofday, +//GO(krb5_verify_authdata_kdc_issued, +//GO(krb5_verify_init_creds, +//GO(krb5_verify_init_creds_opt_init, +//GO(krb5_verify_init_creds_opt_set_ap_req_nofail, +//GO(krb5_vset_error_message, +//GO(krb5_walk_realm_tree, +//GO(krb5_write_message, +//GO(profile_abandon, +//GO(profile_add_relation, +//GO(profile_clear_relation, +//GO(profile_flush, +//GO(profile_flush_to_buffer, +//GO(profile_flush_to_file, +//GO(profile_free_buffer, +//GO(profile_free_list, +//GO(profile_get_boolean, +//GO(profile_get_integer, +//GO(profile_get_relation_names, +//GO(profile_get_string, +//GO(profile_get_subsection_names, +//GO(profile_get_values, +//GO(profile_init, +//GO(profile_init_flags, +//GO(profile_init_path, +//GO(profile_init_vtable, +//GO(profile_iterator, +//GO(profile_iterator_create, +//GO(profile_iterator_free, +//GO(profile_release, +//GO(profile_release_string, +//GO(profile_rename_section, +//GO(profile_ser_externalize, +//GO(profile_ser_internalize, +//GO(profile_ser_size, +//GO(profile_update_relation, \ No newline at end of file |