about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-07-27 13:52:21 +0200
committerptitSeb <sebastien.chev@gmail.com>2021-07-27 13:52:21 +0200
commitfc4f0e3bae2ae8505e8eeaf3835e572311163ba0 (patch)
tree50f96f572bd4fac80c64298bfe193c3194c0d55a /src
parente00d35f5bf90fec1f67c196d10bed40dc32211f3 (diff)
downloadbox64-fc4f0e3bae2ae8505e8eeaf3835e572311163ba0.tar.gz
box64-fc4f0e3bae2ae8505e8eeaf3835e572311163ba0.zip
Added wrapped libkrb5 and libgss_krb5 (for Wiee64)
Diffstat (limited to 'src')
-rwxr-xr-xsrc/library_list.h4
-rw-r--r--src/wrapped/generated/functions_list.txt13
-rw-r--r--src/wrapped/generated/wrappedkrb5types.h19
-rw-r--r--src/wrapped/generated/wrapper.c24
-rw-r--r--src/wrapped/generated/wrapper.h10
-rwxr-xr-xsrc/wrapped/wrappedgssapikrb5.c18
-rwxr-xr-xsrc/wrapped/wrappedgssapikrb5_private.h165
-rwxr-xr-xsrc/wrapped/wrappedkrb5.c98
-rwxr-xr-xsrc/wrapped/wrappedkrb5_private.h652
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