about summary refs log tree commit diff stats
path: root/src/wrapped
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-03-25 21:02:47 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-03-25 21:02:47 +0100
commitdd26d06e1cc09bdebe1c2f2db63668d4f27086cf (patch)
treec75a43ec25bc162361b9dbfbd9c7ab67f048f990 /src/wrapped
parent235784b46f47411b73d383c4fb462c3ffac323a4 (diff)
downloadbox64-dd26d06e1cc09bdebe1c2f2db63668d4f27086cf.tar.gz
box64-dd26d06e1cc09bdebe1c2f2db63668d4f27086cf.zip
Added wrapped libgnutls
Diffstat (limited to 'src/wrapped')
-rw-r--r--src/wrapped/generated/functions_list.txt3
-rw-r--r--src/wrapped/generated/wrapper.c6
-rw-r--r--src/wrapped/generated/wrapper.h3
-rwxr-xr-xsrc/wrapped/wrappedfontconfig_private.h2
-rwxr-xr-xsrc/wrapped/wrappedgnutls.c145
-rwxr-xr-xsrc/wrapped/wrappedgnutls_private.h1117
6 files changed, 1275 insertions, 1 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index 397bf23f..b0821289 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -297,6 +297,7 @@
 #() lFlll
 #() lFlpi
 #() lFppi
+#() lFppL
 #() lFSpl
 #() LFLLi
 #() LFLLI
@@ -637,6 +638,7 @@
 #() iFppupp
 #() iFppllp
 #() iFppLpi
+#() iFppLpL
 #() iFppLpp
 #() iFpppii
 #() iFpppiL
@@ -959,6 +961,7 @@
 #() iFppiuiippL
 #() iFpppiiuuii
 #() iFpppiipiiu
+#() iFppppppppu
 #() iFppppppppp
 #() pFEppiiuuLi
 #() pFEppuippuu
diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c
index e6d1499e..9a7c4059 100644
--- a/src/wrapped/generated/wrapper.c
+++ b/src/wrapped/generated/wrapper.c
@@ -330,6 +330,7 @@ typedef intptr_t (*lFipL_t)(int32_t, void*, uintptr_t);
 typedef intptr_t (*lFlll_t)(intptr_t, intptr_t, intptr_t);
 typedef intptr_t (*lFlpi_t)(intptr_t, void*, int32_t);
 typedef intptr_t (*lFppi_t)(void*, void*, int32_t);
+typedef intptr_t (*lFppL_t)(void*, void*, uintptr_t);
 typedef intptr_t (*lFSpl_t)(void*, void*, intptr_t);
 typedef uintptr_t (*LFLLi_t)(uintptr_t, uintptr_t, int32_t);
 typedef uintptr_t (*LFLLI_t)(uintptr_t, uintptr_t, int64_t);
@@ -670,6 +671,7 @@ typedef int32_t (*iFppupi_t)(void*, void*, uint32_t, void*, int32_t);
 typedef int32_t (*iFppupp_t)(void*, void*, uint32_t, void*, void*);
 typedef int32_t (*iFppllp_t)(void*, void*, intptr_t, intptr_t, void*);
 typedef int32_t (*iFppLpi_t)(void*, void*, uintptr_t, void*, int32_t);
+typedef int32_t (*iFppLpL_t)(void*, void*, uintptr_t, void*, uintptr_t);
 typedef int32_t (*iFppLpp_t)(void*, void*, uintptr_t, void*, void*);
 typedef int32_t (*iFpppii_t)(void*, void*, void*, int32_t, int32_t);
 typedef int32_t (*iFpppiL_t)(void*, void*, void*, int32_t, uintptr_t);
@@ -992,6 +994,7 @@ typedef int32_t (*iFpipLpiiip_t)(void*, int32_t, void*, uintptr_t, void*, int32_
 typedef int32_t (*iFppiuiippL_t)(void*, void*, int32_t, uint32_t, int32_t, int32_t, void*, void*, uintptr_t);
 typedef int32_t (*iFpppiiuuii_t)(void*, void*, void*, int32_t, int32_t, uint32_t, uint32_t, int32_t, int32_t);
 typedef int32_t (*iFpppiipiiu_t)(void*, void*, void*, int32_t, int32_t, void*, int32_t, int32_t, uint32_t);
+typedef int32_t (*iFppppppppu_t)(void*, void*, void*, void*, void*, void*, void*, void*, uint32_t);
 typedef int32_t (*iFppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*);
 typedef void* (*pFEppiiuuLi_t)(x64emu_t*, void*, void*, int32_t, int32_t, uint32_t, uint32_t, uintptr_t, int32_t);
 typedef void* (*pFEppuippuu_t)(x64emu_t*, void*, void*, uint32_t, int32_t, void*, void*, uint32_t, uint32_t);
@@ -1386,6 +1389,7 @@ void lFipL(x64emu_t *emu, uintptr_t fcn) { lFipL_t fn = (lFipL_t)fcn; R_RAX=(int
 void lFlll(x64emu_t *emu, uintptr_t fcn) { lFlll_t fn = (lFlll_t)fcn; R_RAX=(intptr_t)fn((intptr_t)R_RDI, (intptr_t)R_RSI, (intptr_t)R_RDX); }
 void lFlpi(x64emu_t *emu, uintptr_t fcn) { lFlpi_t fn = (lFlpi_t)fcn; R_RAX=(intptr_t)fn((intptr_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX); }
 void lFppi(x64emu_t *emu, uintptr_t fcn) { lFppi_t fn = (lFppi_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX); }
+void lFppL(x64emu_t *emu, uintptr_t fcn) { lFppL_t fn = (lFppL_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX); }
 void lFSpl(x64emu_t *emu, uintptr_t fcn) { lFSpl_t fn = (lFSpl_t)fcn; R_RAX=(intptr_t)fn(io_convert((void*)R_RDI), (void*)R_RSI, (intptr_t)R_RDX); }
 void LFLLi(x64emu_t *emu, uintptr_t fcn) { LFLLi_t fn = (LFLLi_t)fcn; R_RAX=(uintptr_t)fn((uintptr_t)R_RDI, (uintptr_t)R_RSI, (int32_t)R_RDX); }
 void LFLLI(x64emu_t *emu, uintptr_t fcn) { LFLLI_t fn = (LFLLI_t)fcn; R_RAX=(uintptr_t)fn((uintptr_t)R_RDI, (uintptr_t)R_RSI, (int64_t)R_RDX); }
@@ -1726,6 +1730,7 @@ void iFppupi(x64emu_t *emu, uintptr_t fcn) { iFppupi_t fn = (iFppupi_t)fcn; R_RA
 void iFppupp(x64emu_t *emu, uintptr_t fcn) { iFppupp_t fn = (iFppupp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void iFppllp(x64emu_t *emu, uintptr_t fcn) { iFppllp_t fn = (iFppllp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (intptr_t)R_RDX, (intptr_t)R_RCX, (void*)R_R8); }
 void iFppLpi(x64emu_t *emu, uintptr_t fcn) { iFppLpi_t fn = (iFppLpi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (int32_t)R_R8); }
+void iFppLpL(x64emu_t *emu, uintptr_t fcn) { iFppLpL_t fn = (iFppLpL_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (uintptr_t)R_R8); }
 void iFppLpp(x64emu_t *emu, uintptr_t fcn) { iFppLpp_t fn = (iFppLpp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void iFpppii(x64emu_t *emu, uintptr_t fcn) { iFpppii_t fn = (iFpppii_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8); }
 void iFpppiL(x64emu_t *emu, uintptr_t fcn) { iFpppiL_t fn = (iFpppiL_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (uintptr_t)R_R8); }
@@ -2048,6 +2053,7 @@ void iFpipLpiiip(x64emu_t *emu, uintptr_t fcn) { iFpipLpiiip_t fn = (iFpipLpiiip
 void iFppiuiippL(x64emu_t *emu, uintptr_t fcn) { iFppiuiippL_t fn = (iFppiuiippL_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(uintptr_t*)(R_RSP + 24)); }
 void iFpppiiuuii(x64emu_t *emu, uintptr_t fcn) { iFpppiiuuii_t fn = (iFpppiiuuii_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24)); }
 void iFpppiipiiu(x64emu_t *emu, uintptr_t fcn) { iFpppiipiiu_t fn = (iFpppiipiiu_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24)); }
+void iFppppppppu(x64emu_t *emu, uintptr_t fcn) { iFppppppppu_t fn = (iFppppppppu_t)fcn; R_RAX=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), *(uint32_t*)(R_RSP + 24)); }
 void iFppppppppp(x64emu_t *emu, uintptr_t fcn) { iFppppppppp_t fn = (iFppppppppp_t)fcn; R_RAX=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 pFEppiiuuLi(x64emu_t *emu, uintptr_t fcn) { pFEppiiuuLi_t fn = (pFEppiiuuLi_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uintptr_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16)); }
 void pFEppuippuu(x64emu_t *emu, uintptr_t fcn) { pFEppuippuu_t fn = (pFEppuippuu_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16)); }
diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h
index 36ed39f1..318baee4 100644
--- a/src/wrapped/generated/wrapper.h
+++ b/src/wrapped/generated/wrapper.h
@@ -327,6 +327,7 @@ void lFipL(x64emu_t *emu, uintptr_t fnc);
 void lFlll(x64emu_t *emu, uintptr_t fnc);
 void lFlpi(x64emu_t *emu, uintptr_t fnc);
 void lFppi(x64emu_t *emu, uintptr_t fnc);
+void lFppL(x64emu_t *emu, uintptr_t fnc);
 void lFSpl(x64emu_t *emu, uintptr_t fnc);
 void LFLLi(x64emu_t *emu, uintptr_t fnc);
 void LFLLI(x64emu_t *emu, uintptr_t fnc);
@@ -667,6 +668,7 @@ void iFppupi(x64emu_t *emu, uintptr_t fnc);
 void iFppupp(x64emu_t *emu, uintptr_t fnc);
 void iFppllp(x64emu_t *emu, uintptr_t fnc);
 void iFppLpi(x64emu_t *emu, uintptr_t fnc);
+void iFppLpL(x64emu_t *emu, uintptr_t fnc);
 void iFppLpp(x64emu_t *emu, uintptr_t fnc);
 void iFpppii(x64emu_t *emu, uintptr_t fnc);
 void iFpppiL(x64emu_t *emu, uintptr_t fnc);
@@ -989,6 +991,7 @@ void iFpipLpiiip(x64emu_t *emu, uintptr_t fnc);
 void iFppiuiippL(x64emu_t *emu, uintptr_t fnc);
 void iFpppiiuuii(x64emu_t *emu, uintptr_t fnc);
 void iFpppiipiiu(x64emu_t *emu, uintptr_t fnc);
+void iFppppppppu(x64emu_t *emu, uintptr_t fnc);
 void iFppppppppp(x64emu_t *emu, uintptr_t fnc);
 void pFEppiiuuLi(x64emu_t *emu, uintptr_t fnc);
 void pFEppuippuu(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped/wrappedfontconfig_private.h b/src/wrapped/wrappedfontconfig_private.h
index 6ea2a289..ca775d3e 100755
--- a/src/wrapped/wrappedfontconfig_private.h
+++ b/src/wrapped/wrappedfontconfig_private.h
@@ -159,7 +159,7 @@ GO(FcPatternGetInteger, iFppip)
 GO(FcPatternGetLangSet, iFppip)
 GO(FcPatternGetMatrix, iFppip)
 GO(FcPatternGetString, iFppip)
-//GO(FcPatternHash, 
+GO(FcPatternHash, iFp)
 //GO(FcPatternPrint, 
 //GO(FcPatternReference, 
 //GO(FcPatternRemove, 
diff --git a/src/wrapped/wrappedgnutls.c b/src/wrapped/wrappedgnutls.c
new file mode 100755
index 00000000..287a1005
--- /dev/null
+++ b/src/wrapped/wrappedgnutls.c
@@ -0,0 +1,145 @@
+#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 "callback.h"
+#include "librarian.h"
+#include "box64context.h"
+#include "emu/x64emu_private.h"
+#include "callback.h"
+
+const char* gnutlsName = "libgnutls.so.30";
+#define LIBNAME gnutls
+
+static library_t *my_lib = NULL;
+
+typedef void        (*vFp_t)        (void*);
+typedef void        (*vFpp_t)       (void*, void*);
+
+#define SUPER() \
+    GO(gnutls_global_set_log_function, vFp_t)       \
+    GO(gnutls_transport_set_pull_function, vFpp_t)  \
+    GO(gnutls_transport_set_push_function, vFpp_t)  \
+
+typedef struct gnutls_my_s {
+    // functions
+    #define GO(A, B)    B   A;
+    SUPER()
+    #undef GO
+} gnutls_my_t;
+
+void* getGnutlsMy(library_t* lib)
+{
+    gnutls_my_t* my = (gnutls_my_t*)calloc(1, sizeof(gnutls_my_t));
+    #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A);
+    SUPER()
+    #undef GO
+    return my;
+}
+#undef SUPER
+
+void freeGnutlsMy(void* lib)
+{
+    //gnutls_my_t *my = (gnutls_my_t *)lib;
+}
+
+// utility functions
+#define SUPER() \
+GO(0)   \
+GO(1)   \
+GO(2)   \
+GO(3)   \
+GO(4)
+
+// gnutls_log
+#define GO(A)   \
+static uintptr_t my_gnutls_log_fct_##A = 0;                       \
+static void my_gnutls_log_##A(int level, const char* p)           \
+{                                                                 \
+    RunFunction(my_context, my_gnutls_log_fct_##A, 2, level, p);  \
+}
+SUPER()
+#undef GO
+static void* find_gnutls_log_Fct(void* fct)
+{
+    if(!fct) return NULL;
+    void* p;
+    if((p = GetNativeFnc((uintptr_t)fct))) return p;
+    #define GO(A) if(my_gnutls_log_fct_##A == (uintptr_t)fct) return my_gnutls_log_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_gnutls_log_fct_##A == 0) {my_gnutls_log_fct_##A = (uintptr_t)fct; return my_gnutls_log_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libgnutls.so.30 gnutls_log callback\n");
+    return NULL;
+}
+
+// pullpush
+#define GO(A)   \
+static uintptr_t my_pullpush_fct_##A = 0;                                   \
+static long my_pullpush_##A(void* p, void* d, size_t l)                     \
+{                                                                           \
+    return (long)RunFunction(my_context, my_pullpush_fct_##A, 3, p, d, l);  \
+}
+SUPER()
+#undef GO
+static void* find_pullpush_Fct(void* fct)
+{
+    if(!fct) return NULL;
+    void* p;
+    if((p = GetNativeFnc((uintptr_t)fct))) return p;
+    #define GO(A) if(my_pullpush_fct_##A == (uintptr_t)fct) return my_pullpush_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_pullpush_fct_##A == 0) {my_pullpush_fct_##A = (uintptr_t)fct; return my_pullpush_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for libgnutls.so.30 pullpush callback\n");
+    return NULL;
+}
+
+#undef SUPER
+
+
+EXPORT void my_gnutls_global_set_log_function(x64emu_t* emu, void* f)
+{
+    gnutls_my_t *my = (gnutls_my_t*)my_lib->priv.w.p2;
+
+    my->gnutls_global_set_log_function(find_gnutls_log_Fct(f));
+}
+
+EXPORT void my_gnutls_transport_set_pull_function(x64emu_t* emu, void* session, void* f)
+{
+    gnutls_my_t *my = (gnutls_my_t*)my_lib->priv.w.p2;
+
+    my->gnutls_transport_set_pull_function(session, find_pullpush_Fct(f));
+}
+EXPORT void my_gnutls_transport_set_push_function(x64emu_t* emu, void* session, void* f)
+{
+    gnutls_my_t *my = (gnutls_my_t*)my_lib->priv.w.p2;
+
+    my->gnutls_transport_set_push_function(session, find_pullpush_Fct(f));
+}
+
+#define CUSTOM_INIT \
+    my_lib = lib;   \
+    lib->priv.w.p2 = getGnutlsMy(lib);
+
+#define CUSTOM_FINI \
+    my_lib = NULL;  \
+    freeGnutlsMy(lib->priv.w.p2); \
+    free(lib->priv.w.p2);
+
+#include "wrappedlib_init.h"
+
diff --git a/src/wrapped/wrappedgnutls_private.h b/src/wrapped/wrappedgnutls_private.h
new file mode 100755
index 00000000..5dbba17b
--- /dev/null
+++ b/src/wrapped/wrappedgnutls_private.h
@@ -0,0 +1,1117 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh....
+#endif
+
+//GO(_dsa_generate_dss_g, 
+//GO(dsa_generate_dss_keypair, 
+//GO(_dsa_generate_dss_pq, 
+//GO(_dsa_validate_dss_g, 
+//GO(_dsa_validate_dss_pq, 
+//GO(gnutls_aead_cipher_decrypt, 
+//GO(gnutls_aead_cipher_deinit, 
+//GO(gnutls_aead_cipher_encrypt, 
+//GO(gnutls_aead_cipher_init, 
+GO(gnutls_alert_get, pFp)
+GO(gnutls_alert_get_name, pFp)
+//GO(gnutls_alert_get_strname, 
+//GO(gnutls_alert_send, 
+//GO(gnutls_alert_send_appropriate, 
+GO(gnutls_alpn_get_selected_protocol, iFpp)
+GO(gnutls_alpn_set_protocols, iFppuu)
+//GO(gnutls_anon_allocate_client_credentials, 
+//GO(gnutls_anon_allocate_server_credentials, 
+//GO(gnutls_anon_free_client_credentials, 
+//GO(gnutls_anon_free_server_credentials, 
+//GO(gnutls_anon_set_params_function, 
+//GO(gnutls_anon_set_server_dh_params, 
+//GO(gnutls_anon_set_server_known_dh_params, 
+//GO(gnutls_anon_set_server_params_function, 
+//GO(gnutls_auth_client_get_type, 
+//GO(gnutls_auth_get_type, 
+//GO(gnutls_auth_server_get_type, 
+//GO(_gnutls_bin2hex, 
+//GO(gnutls_buffer_append_data, 
+//GO(_gnutls_buffer_append_str, 
+//GO(_gnutls_buffer_init, 
+//GO(_gnutls_buffer_to_datum, 
+//GO(gnutls_bye, 
+//GO(gnutls_certificate_activation_time_peers, 
+GO(gnutls_certificate_allocate_credentials, iFp)
+//GO(gnutls_certificate_client_get_request_status, 
+//GO(gnutls_certificate_expiration_time_peers, 
+//GO(gnutls_certificate_free_ca_names, 
+//GO(gnutls_certificate_free_cas, 
+GO(gnutls_certificate_free_credentials, vFp)
+//GO(gnutls_certificate_free_crls, 
+//GO(gnutls_certificate_free_keys, 
+//GO(gnutls_certificate_get_crt_raw, 
+//GO(gnutls_certificate_get_issuer, 
+//GO(gnutls_certificate_get_openpgp_crt, 
+//GO(gnutls_certificate_get_openpgp_key, 
+//GO(gnutls_certificate_get_ours, 
+GO(gnutls_certificate_get_peers, pFpp)
+//GO(gnutls_certificate_get_peers_subkey_id, 
+//GO(gnutls_certificate_get_trust_list, 
+//GO(gnutls_certificate_get_verify_flags, 
+//GO(gnutls_certificate_get_x509_crt, 
+//GO(gnutls_certificate_get_x509_key, 
+//GO(gnutls_certificate_send_x509_rdn_sequence, 
+//GO(gnutls_certificate_server_set_request, 
+//GO(gnutls_certificate_set_dh_params, 
+//GO(gnutls_certificate_set_flags, 
+//GO(gnutls_certificate_set_key, 
+//GO(gnutls_certificate_set_known_dh_params, 
+//GO(gnutls_certificate_set_ocsp_status_request_file, 
+//GO(gnutls_certificate_set_ocsp_status_request_function, 
+//GO(gnutls_certificate_set_ocsp_status_request_function2, 
+//GO(gnutls_certificate_set_openpgp_key, 
+//GO(gnutls_certificate_set_openpgp_key_file, 
+//GO(gnutls_certificate_set_openpgp_key_file2, 
+//GO(gnutls_certificate_set_openpgp_key_mem, 
+//GO(gnutls_certificate_set_openpgp_key_mem2, 
+//GO(gnutls_certificate_set_openpgp_keyring_file, 
+//GO(gnutls_certificate_set_openpgp_keyring_mem, 
+//GO(gnutls_certificate_set_params_function, 
+//GO(gnutls_certificate_set_pin_function, 
+//GO(gnutls_certificate_set_retrieve_function, 
+//GO(gnutls_certificate_set_retrieve_function2, 
+//GO(gnutls_certificate_set_trust_list, 
+//GO(gnutls_certificate_set_verify_flags, 
+//GO(gnutls_certificate_set_verify_function, 
+//GO(gnutls_certificate_set_verify_limits, 
+//GO(gnutls_certificate_set_x509_crl, 
+//GO(gnutls_certificate_set_x509_crl_file, 
+//GO(gnutls_certificate_set_x509_crl_mem, 
+GO(gnutls_certificate_set_x509_key, iFppip)
+//GO(gnutls_certificate_set_x509_key_file, 
+//GO(gnutls_certificate_set_x509_key_file2, 
+//GO(gnutls_certificate_set_x509_key_mem, 
+//GO(gnutls_certificate_set_x509_key_mem2, 
+//GO(gnutls_certificate_set_x509_simple_pkcs12_file, 
+//GO(gnutls_certificate_set_x509_simple_pkcs12_mem, 
+//GO(gnutls_certificate_set_x509_system_trust, 
+//GO(gnutls_certificate_set_x509_trust, 
+//GO(gnutls_certificate_set_x509_trust_dir, 
+//GO(gnutls_certificate_set_x509_trust_file, 
+//GO(gnutls_certificate_set_x509_trust_mem, 
+//GO(gnutls_certificate_type_get, 
+//GO(gnutls_certificate_type_get_id, 
+//GO(gnutls_certificate_type_get_name, 
+//GO(gnutls_certificate_type_list, 
+//GO(gnutls_certificate_verification_status_print, 
+//GO(gnutls_certificate_verify_peers, 
+//GO(gnutls_certificate_verify_peers2, 
+//GO(gnutls_certificate_verify_peers3, 
+GO(gnutls_check_version, pFp)
+//GO(_gnutls_cidr_to_string, 
+GO(gnutls_cipher_add_auth, iFppL)
+GO(gnutls_cipher_decrypt, iFppL)
+GO(gnutls_cipher_decrypt2, iFppLpL)
+GO(gnutls_cipher_deinit, vFp)
+GO(gnutls_cipher_encrypt, iFppL)
+GO(gnutls_cipher_encrypt2, iFppLpL)
+GO(gnutls_cipher_get, pFp)
+GO(gnutls_cipher_get_block_size, uFp)
+//GO(gnutls_cipher_get_id, 
+//GO(gnutls_cipher_get_iv_size, 
+GO(gnutls_cipher_get_key_size, LFp)
+//GO(gnutls_cipher_get_name, 
+//GO(gnutls_cipher_get_tag_size, 
+GO(gnutls_cipher_init, iFpppp)
+//GO(gnutls_cipher_list, 
+//GO(gnutls_cipher_set_iv, 
+//GO(gnutls_cipher_suite_get_name, 
+//GO(gnutls_cipher_suite_info, 
+GO(gnutls_cipher_tag, iFppL)
+//GO(gnutls_compression_get, 
+//GO(gnutls_compression_get_id, 
+//GO(gnutls_compression_get_name, 
+//GO(gnutls_compression_list, 
+//GO(gnutls_credentials_clear, 
+//GO(gnutls_credentials_get, 
+GO(gnutls_credentials_set, iFppp)
+//GO(gnutls_crypto_register_aead_cipher, 
+//GO(gnutls_crypto_register_cipher, 
+//GO(gnutls_crypto_register_digest, 
+//GO(gnutls_crypto_register_mac, 
+//GO(gnutls_db_check_entry, 
+//GO(gnutls_db_check_entry_time, 
+//GO(gnutls_db_get_default_cache_expiration, 
+//GO(gnutls_db_get_ptr, 
+//GO(gnutls_db_remove_session, 
+//GO(gnutls_db_set_cache_expiration, 
+//GO(gnutls_db_set_ptr, 
+//GO(gnutls_db_set_remove_function, 
+//GO(gnutls_db_set_retrieve_function, 
+//GO(gnutls_db_set_store_function, 
+GO(gnutls_decode_rs_value, iFppp)   // not always present
+//GO(gnutls_decode_ber_digest_info, 
+//GO(_gnutls_decode_ber_rs_raw, 
+GO(gnutls_deinit, vFp)
+//GO(gnutls_dh_get_group, 
+//GO(gnutls_dh_get_peers_public_bits, 
+//GO(gnutls_dh_get_prime_bits, 
+//GO(gnutls_dh_get_pubkey, 
+//GO(gnutls_dh_get_secret_bits, 
+//GO(gnutls_dh_params_cpy, 
+//GO(gnutls_dh_params_deinit, 
+//GO(gnutls_dh_params_export2_pkcs3, 
+//GO(gnutls_dh_params_export_pkcs3, 
+//GO(gnutls_dh_params_export_raw, 
+//GO(gnutls_dh_params_generate2, 
+//GO(gnutls_dh_params_import_dsa, 
+//GO(gnutls_dh_params_import_pkcs3, 
+//GO(gnutls_dh_params_import_raw, 
+//GO(gnutls_dh_params_import_raw2, 
+//GO(gnutls_dh_params_init, 
+//GO(gnutls_dh_set_prime_bits, 
+//GO(_gnutls_digest_exists, 
+//GO(gnutls_digest_get_id, 
+//GO(gnutls_digest_get_name, 
+//GO(gnutls_digest_get_oid, 
+//GO(gnutls_digest_list, 
+//GO(gnutls_dtls_cookie_send, 
+//GO(gnutls_dtls_cookie_verify, 
+//GO(gnutls_dtls_get_data_mtu, 
+//GO(gnutls_dtls_get_mtu, 
+//GO(gnutls_dtls_get_timeout, 
+//GO(gnutls_dtls_prestate_set, 
+//GO(gnutls_dtls_set_data_mtu, 
+//GO(gnutls_dtls_set_mtu, 
+//GO(gnutls_dtls_set_timeouts, 
+//GO(gnutls_ecc_curve_get, 
+//GO(gnutls_ecc_curve_get_id, 
+//GO(gnutls_ecc_curve_get_name, 
+//GO(gnutls_ecc_curve_get_oid, 
+//GO(gnutls_ecc_curve_get_pk, 
+//GO(gnutls_ecc_curve_get_size, 
+//GO(gnutls_ecc_curve_list, 
+//GO(gnutls_encode_ber_digest_info, 
+//GO(_gnutls_encode_ber_rs_raw, 
+//GO(gnutls_error_is_fatal, 
+//GO(gnutls_error_to_alert, 
+//GO(gnutls_est_record_overhead_size, 
+//GO(gnutls_ext_get_data, 
+//GO(gnutls_ext_get_name, 
+//GO(gnutls_ext_register, 
+//GO(gnutls_ext_set_data, 
+//GO(gnutls_fingerprint, 
+//GO(gnutls_fips140_mode_enabled, 
+GO(gnutls_global_deinit, vFv)
+GO(gnutls_global_init, iFv)
+//GO(gnutls_global_set_audit_log_function, 
+GOM(gnutls_global_set_log_function, vFEp)
+GO(gnutls_global_set_log_level, vFi)
+//GO(gnutls_global_set_mem_functions, 
+//GO(gnutls_global_set_mutex, 
+//GO(gnutls_global_set_time_function, 
+GO(gnutls_handshake, iFp)
+//GO(gnutls_handshake_description_get_name, 
+//GO(gnutls_handshake_get_last_in, 
+//GO(gnutls_handshake_get_last_out, 
+//GO(gnutls_handshake_set_hook_function, 
+//GO(gnutls_handshake_set_max_packet_length, 
+//GO(gnutls_handshake_set_post_client_hello_function, 
+//GO(gnutls_handshake_set_private_extensions, 
+//GO(gnutls_handshake_set_random, 
+//GO(gnutls_handshake_set_timeout, 
+//GO(gnutls_hash, 
+//GO(gnutls_hash_deinit, 
+//GO(gnutls_hash_fast, 
+//GO(gnutls_hash_get_len, 
+//GO(gnutls_hash_init, 
+//GO(gnutls_hash_output, 
+//GO(gnutls_heartbeat_allowed, 
+//GO(gnutls_heartbeat_enable, 
+//GO(gnutls_heartbeat_get_timeout, 
+//GO(gnutls_heartbeat_ping, 
+//GO(gnutls_heartbeat_pong, 
+//GO(gnutls_heartbeat_set_timeouts, 
+//GO(_gnutls_hello_set_default_version, 
+//GO(gnutls_hex2bin, 
+//GO(gnutls_hex_decode, 
+//GO(gnutls_hex_decode2, 
+//GO(gnutls_hex_encode, 
+//GO(gnutls_hex_encode2, 
+//GO(gnutls_hmac, 
+//GO(gnutls_hmac_deinit, 
+//GO(gnutls_hmac_fast, 
+//GO(gnutls_hmac_get_len, 
+//GO(gnutls_hmac_init, 
+//GO(gnutls_hmac_output, 
+//GO(gnutls_hmac_set_nonce, 
+//GO(gnutls_idna_map, 
+//GO(gnutls_idna_reverse_map, 
+GO(gnutls_init, iFpu)
+//GO(_gnutls_ip_to_string, 
+//GO(gnutls_key_generate, 
+GO(gnutls_kx_get, pFp)
+//GO(gnutls_kx_get_id, 
+//GO(gnutls_kx_get_name, 
+//GO(gnutls_kx_list, 
+//GO(_gnutls_lib_simulate_error, 
+//GO(gnutls_load_file, 
+//GO(_gnutls_log, 
+GO(gnutls_mac_get, pFp)
+//GO(gnutls_mac_get_id, 
+GO(gnutls_mac_get_key_size, LFp)
+//GO(gnutls_mac_get_name, 
+//GO(gnutls_mac_get_nonce_size, 
+//GO(gnutls_mac_list, 
+//GO(_gnutls_mac_to_entry, 
+//GO(gnutls_memcmp, 
+//GO(gnutls_memset, 
+//GO(_gnutls_mpi_log, 
+//GO(gnutls_ocsp_req_add_cert, 
+//GO(gnutls_ocsp_req_add_cert_id, 
+//GO(gnutls_ocsp_req_deinit, 
+//GO(gnutls_ocsp_req_export, 
+//GO(gnutls_ocsp_req_get_cert_id, 
+//GO(gnutls_ocsp_req_get_extension, 
+//GO(gnutls_ocsp_req_get_nonce, 
+//GO(gnutls_ocsp_req_get_version, 
+//GO(gnutls_ocsp_req_import, 
+//GO(gnutls_ocsp_req_init, 
+//GO(gnutls_ocsp_req_print, 
+//GO(gnutls_ocsp_req_randomize_nonce, 
+//GO(gnutls_ocsp_req_set_extension, 
+//GO(gnutls_ocsp_req_set_nonce, 
+//GO(gnutls_ocsp_resp_check_crt, 
+//GO(gnutls_ocsp_resp_deinit, 
+//GO(gnutls_ocsp_resp_export, 
+//GO(gnutls_ocsp_resp_get_certs, 
+//GO(gnutls_ocsp_resp_get_extension, 
+//GO(gnutls_ocsp_resp_get_nonce, 
+//GO(gnutls_ocsp_resp_get_produced, 
+//GO(gnutls_ocsp_resp_get_responder, 
+//GO(gnutls_ocsp_resp_get_responder2, 
+//GO(gnutls_ocsp_resp_get_responder_raw_id, 
+//GO(gnutls_ocsp_resp_get_response, 
+//GO(gnutls_ocsp_resp_get_signature, 
+//GO(gnutls_ocsp_resp_get_signature_algorithm, 
+//GO(gnutls_ocsp_resp_get_single, 
+//GO(gnutls_ocsp_resp_get_status, 
+//GO(gnutls_ocsp_resp_get_version, 
+//GO(gnutls_ocsp_resp_import, 
+//GO(gnutls_ocsp_resp_init, 
+//GO(gnutls_ocsp_resp_print, 
+//GO(gnutls_ocsp_resp_verify, 
+//GO(gnutls_ocsp_resp_verify_direct, 
+//GO(gnutls_ocsp_status_request_enable_client, 
+//GO(gnutls_ocsp_status_request_get, 
+//GO(gnutls_ocsp_status_request_is_checked, 
+//GO(gnutls_oid_to_digest, 
+//GO(gnutls_oid_to_ecc_curve, 
+//GO(gnutls_oid_to_mac, 
+//GO(gnutls_oid_to_pk, 
+//GO(gnutls_oid_to_sign, 
+//GO(gnutls_openpgp_crt_check_email, 
+//GO(gnutls_openpgp_crt_check_hostname, 
+//GO(gnutls_openpgp_crt_check_hostname2, 
+//GO(gnutls_openpgp_crt_deinit, 
+//GO(gnutls_openpgp_crt_export, 
+//GO(gnutls_openpgp_crt_export2, 
+//GO(gnutls_openpgp_crt_get_auth_subkey, 
+//GO(gnutls_openpgp_crt_get_creation_time, 
+//GO(gnutls_openpgp_crt_get_expiration_time, 
+//GO(gnutls_openpgp_crt_get_fingerprint, 
+//GO(gnutls_openpgp_crt_get_key_id, 
+//GO(gnutls_openpgp_crt_get_key_usage, 
+//GO(gnutls_openpgp_crt_get_name, 
+//GO(gnutls_openpgp_crt_get_pk_algorithm, 
+//GO(gnutls_openpgp_crt_get_pk_dsa_raw, 
+//GO(gnutls_openpgp_crt_get_pk_rsa_raw, 
+//GO(gnutls_openpgp_crt_get_preferred_key_id, 
+//GO(gnutls_openpgp_crt_get_revoked_status, 
+//GO(gnutls_openpgp_crt_get_subkey_count, 
+//GO(gnutls_openpgp_crt_get_subkey_creation_time, 
+//GO(gnutls_openpgp_crt_get_subkey_expiration_time, 
+//GO(gnutls_openpgp_crt_get_subkey_fingerprint, 
+//GO(gnutls_openpgp_crt_get_subkey_id, 
+//GO(gnutls_openpgp_crt_get_subkey_idx, 
+//GO(gnutls_openpgp_crt_get_subkey_pk_algorithm, 
+//GO(gnutls_openpgp_crt_get_subkey_pk_dsa_raw, 
+//GO(gnutls_openpgp_crt_get_subkey_pk_rsa_raw, 
+//GO(gnutls_openpgp_crt_get_subkey_revoked_status, 
+//GO(gnutls_openpgp_crt_get_subkey_usage, 
+//GO(gnutls_openpgp_crt_get_version, 
+//GO(gnutls_openpgp_crt_import, 
+//GO(gnutls_openpgp_crt_init, 
+//GO(gnutls_openpgp_crt_print, 
+//GO(gnutls_openpgp_crt_set_preferred_key_id, 
+//GO(gnutls_openpgp_crt_verify_ring, 
+//GO(gnutls_openpgp_crt_verify_self, 
+//GO(gnutls_openpgp_keyring_check_id, 
+//GO(gnutls_openpgp_keyring_deinit, 
+//GO(gnutls_openpgp_keyring_get_crt, 
+//GO(gnutls_openpgp_keyring_get_crt_count, 
+//GO(gnutls_openpgp_keyring_import, 
+//GO(gnutls_openpgp_keyring_init, 
+//GO(gnutls_openpgp_privkey_deinit, 
+//GO(gnutls_openpgp_privkey_export, 
+//GO(gnutls_openpgp_privkey_export2, 
+//GO(gnutls_openpgp_privkey_export_dsa_raw, 
+//GO(gnutls_openpgp_privkey_export_rsa_raw, 
+//GO(gnutls_openpgp_privkey_export_subkey_dsa_raw, 
+//GO(gnutls_openpgp_privkey_export_subkey_rsa_raw, 
+//GO(gnutls_openpgp_privkey_get_fingerprint, 
+//GO(gnutls_openpgp_privkey_get_key_id, 
+//GO(gnutls_openpgp_privkey_get_pk_algorithm, 
+//GO(gnutls_openpgp_privkey_get_preferred_key_id, 
+//GO(gnutls_openpgp_privkey_get_revoked_status, 
+//GO(gnutls_openpgp_privkey_get_subkey_count, 
+//GO(gnutls_openpgp_privkey_get_subkey_creation_time, 
+//GO(gnutls_openpgp_privkey_get_subkey_expiration_time, 
+//GO(gnutls_openpgp_privkey_get_subkey_fingerprint, 
+//GO(gnutls_openpgp_privkey_get_subkey_id, 
+//GO(gnutls_openpgp_privkey_get_subkey_idx, 
+//GO(gnutls_openpgp_privkey_get_subkey_pk_algorithm, 
+//GO(gnutls_openpgp_privkey_get_subkey_revoked_status, 
+//GO(gnutls_openpgp_privkey_import, 
+//GO(gnutls_openpgp_privkey_init, 
+//GO(gnutls_openpgp_privkey_sec_param, 
+//GO(gnutls_openpgp_privkey_set_preferred_key_id, 
+//GO(gnutls_openpgp_privkey_sign_hash, 
+//GO(gnutls_openpgp_send_cert, 
+//GO(gnutls_openpgp_set_recv_key_function, 
+//GO(gnutls_packet_deinit, 
+//GO(gnutls_packet_get, 
+//GO(gnutls_pcert_deinit, 
+//GO(gnutls_pcert_export_openpgp, 
+//GO(gnutls_pcert_export_x509, 
+//GO(gnutls_pcert_import_openpgp, 
+//GO(gnutls_pcert_import_openpgp_raw, 
+//GO(gnutls_pcert_import_x509, 
+//GO(gnutls_pcert_import_x509_list, 
+//GO(gnutls_pcert_import_x509_raw, 
+//GO(gnutls_pcert_list_import_x509_raw, 
+//GO(gnutls_pem_base64_decode, 
+//GO(gnutls_pem_base64_decode2, 
+//GO(gnutls_pem_base64_encode, 
+//GO(gnutls_pem_base64_encode2, 
+GO(gnutls_perror, vFi)
+//GO(gnutls_pk_algorithm_get_name, 
+//GO(gnutls_pk_bits_to_sec_param, 
+//GO(gnutls_pkcs11_add_provider, 
+//GO(gnutls_pkcs11_copy_attached_extension, 
+//GO(gnutls_pkcs11_copy_pubkey, 
+//GO(gnutls_pkcs11_copy_secret_key, 
+//GO(gnutls_pkcs11_copy_x509_crt2, 
+//GO(gnutls_pkcs11_copy_x509_privkey2, 
+//GO(gnutls_pkcs11_crt_is_known, 
+//GO(gnutls_pkcs11_deinit, 
+//GO(gnutls_pkcs11_delete_url, 
+//GO(gnutls_pkcs11_get_pin_function, 
+//GO(gnutls_pkcs11_get_raw_issuer, 
+//GO(gnutls_pkcs11_get_raw_issuer_by_dn, 
+//GO(gnutls_pkcs11_get_raw_issuer_by_subject_key_id, 
+//GO(gnutls_pkcs11_init, 
+//GO(gnutls_pkcs11_obj_deinit, 
+//GO(gnutls_pkcs11_obj_export, 
+//GO(gnutls_pkcs11_obj_export2, 
+//GO(gnutls_pkcs11_obj_export3, 
+//GO(gnutls_pkcs11_obj_export_url, 
+//GO(gnutls_pkcs11_obj_flags_get_str, 
+//GO(gnutls_pkcs11_obj_get_exts, 
+//GO(gnutls_pkcs11_obj_get_flags, 
+//GO(gnutls_pkcs11_obj_get_info, 
+//GO(gnutls_pkcs11_obj_get_type, 
+//GO(gnutls_pkcs11_obj_import_url, 
+//GO(gnutls_pkcs11_obj_init, 
+//GO(gnutls_pkcs11_obj_list_import_url3, 
+//GO(gnutls_pkcs11_obj_list_import_url4, 
+//GO(gnutls_pkcs11_obj_set_info, 
+//GO(gnutls_pkcs11_obj_set_pin_function, 
+//GO(gnutls_pkcs11_privkey_cpy, 
+//GO(gnutls_pkcs11_privkey_deinit, 
+//GO(gnutls_pkcs11_privkey_export_pubkey, 
+//GO(gnutls_pkcs11_privkey_export_url, 
+//GO(gnutls_pkcs11_privkey_generate3, 
+//GO(gnutls_pkcs11_privkey_get_info, 
+//GO(gnutls_pkcs11_privkey_get_pk_algorithm, 
+//GO(gnutls_pkcs11_privkey_import_url, 
+//GO(gnutls_pkcs11_privkey_init, 
+//GO(gnutls_pkcs11_privkey_set_pin_function, 
+//GO(gnutls_pkcs11_privkey_status, 
+//GO(gnutls_pkcs11_reinit, 
+//GO(gnutls_pkcs11_set_pin_function, 
+//GO(gnutls_pkcs11_set_token_function, 
+//GO(gnutls_pkcs11_token_get_flags, 
+//GO(gnutls_pkcs11_token_get_info, 
+//GO(gnutls_pkcs11_token_get_mechanism, 
+//GO(gnutls_pkcs11_token_get_random, 
+//GO(gnutls_pkcs11_token_get_url, 
+//GO(gnutls_pkcs11_token_init, 
+//GO(gnutls_pkcs11_token_set_pin, 
+//GO(gnutls_pkcs11_type_get_name, 
+//GO(gnutls_pkcs12_bag_decrypt, 
+//GO(gnutls_pkcs12_bag_deinit, 
+//GO(gnutls_pkcs12_bag_enc_info, 
+//GO(gnutls_pkcs12_bag_encrypt, 
+//GO(gnutls_pkcs12_bag_get_count, 
+//GO(gnutls_pkcs12_bag_get_data, 
+//GO(gnutls_pkcs12_bag_get_friendly_name, 
+//GO(gnutls_pkcs12_bag_get_key_id, 
+//GO(gnutls_pkcs12_bag_get_type, 
+//GO(gnutls_pkcs12_bag_init, 
+//GO(gnutls_pkcs12_bag_set_crl, 
+//GO(gnutls_pkcs12_bag_set_crt, 
+//GO(gnutls_pkcs12_bag_set_data, 
+//GO(gnutls_pkcs12_bag_set_friendly_name, 
+//GO(gnutls_pkcs12_bag_set_key_id, 
+//GO(gnutls_pkcs12_bag_set_privkey, 
+GO(gnutls_pkcs12_deinit, vFp)
+//GO(gnutls_pkcs12_export, 
+//GO(gnutls_pkcs12_export2, 
+//GO(gnutls_pkcs12_generate_mac, 
+//GO(gnutls_pkcs12_generate_mac2, 
+//GO(gnutls_pkcs12_get_bag, 
+GO(gnutls_pkcs12_import, iFpppu)
+GO(gnutls_pkcs12_init, iFp)
+//GO(gnutls_pkcs12_mac_info, 
+//GO(gnutls_pkcs12_set_bag, 
+GO(gnutls_pkcs12_simple_parse, iFppppppppu)
+//GO(_gnutls_pkcs12_string_to_key, 
+//GO(gnutls_pkcs12_verify_mac, 
+//GO(gnutls_pkcs7_add_attr, 
+//GO(gnutls_pkcs7_attrs_deinit, 
+//GO(gnutls_pkcs7_deinit, 
+//GO(gnutls_pkcs7_delete_crl, 
+//GO(gnutls_pkcs7_delete_crt, 
+//GO(gnutls_pkcs7_export, 
+//GO(gnutls_pkcs7_export2, 
+//GO(gnutls_pkcs7_get_attr, 
+//GO(gnutls_pkcs7_get_crl_count, 
+//GO(gnutls_pkcs7_get_crl_raw, 
+//GO(gnutls_pkcs7_get_crl_raw2, 
+//GO(gnutls_pkcs7_get_crt_count, 
+//GO(gnutls_pkcs7_get_crt_raw, 
+//GO(gnutls_pkcs7_get_crt_raw2, 
+//GO(gnutls_pkcs7_get_embedded_data, 
+//GO(gnutls_pkcs7_get_embedded_data_oid, 
+//GO(gnutls_pkcs7_get_signature_count, 
+//GO(gnutls_pkcs7_get_signature_info, 
+//GO(gnutls_pkcs7_import, 
+//GO(gnutls_pkcs7_init, 
+//GO(gnutls_pkcs7_print, 
+//GO(gnutls_pkcs7_set_crl, 
+//GO(gnutls_pkcs7_set_crl_raw, 
+//GO(gnutls_pkcs7_set_crt, 
+//GO(gnutls_pkcs7_set_crt_raw, 
+//GO(gnutls_pkcs7_sign, 
+//GO(gnutls_pkcs7_signature_info_deinit, 
+//GO(gnutls_pkcs7_verify, 
+//GO(gnutls_pkcs7_verify_direct, 
+//GO(gnutls_pkcs8_info, 
+//GO(gnutls_pkcs_schema_get_name, 
+//GO(gnutls_pkcs_schema_get_oid, 
+//GO(gnutls_pk_get_id, 
+//GO(gnutls_pk_get_name, 
+//GO(gnutls_pk_get_oid, 
+//GO(gnutls_pk_list, 
+GO(gnutls_pk_to_sign, pFpp)
+//GO(gnutls_prf, 
+//GO(gnutls_prf_raw, 
+//GO(gnutls_prf_rfc5705, 
+//GO(gnutls_priority_certificate_type_list, 
+//GO(gnutls_priority_cipher_list, 
+//GO(gnutls_priority_compression_list, 
+//GO(gnutls_priority_deinit, 
+//GO(gnutls_priority_ecc_curve_list, 
+//GO(gnutls_priority_get_cipher_suite_index, 
+//GO(gnutls_priority_init, 
+//GO(gnutls_priority_kx_list, 
+//GO(gnutls_priority_mac_list, 
+//GO(gnutls_priority_protocol_list, 
+//GO(gnutls_priority_set, 
+GO(gnutls_priority_set_direct, iFppp)
+//GO(gnutls_priority_sign_list, 
+//GO(gnutls_priority_string_list, 
+//GO(gnutls_privkey_decrypt_data, 
+GO(gnutls_privkey_deinit, vFp)
+GO(gnutls_privkey_export_dsa_raw, iFpppppp)
+GO(gnutls_privkey_export_ecc_raw, iFppppp)
+//GO(gnutls_privkey_export_openpgp, 
+//GO(gnutls_privkey_export_pkcs11, 
+GO(gnutls_privkey_export_rsa_raw, iFppppppppp)
+GO(gnutls_privkey_export_x509, iFpp)
+GO(gnutls_privkey_generate, iFppuu)
+//GO(gnutls_privkey_generate2, 
+//GO(gnutls_privkey_get_pk_algorithm, 
+//GO(gnutls_privkey_get_seed, 
+//GO(gnutls_privkey_get_type, 
+GO(gnutls_privkey_import_dsa_raw, iFpppppp)
+GO(gnutls_privkey_import_ecc_raw, iFppppp)
+//GO(gnutls_privkey_import_ext, 
+//GO(gnutls_privkey_import_ext2, 
+//GO(gnutls_privkey_import_ext3, 
+//GO(gnutls_privkey_import_openpgp, 
+//GO(gnutls_privkey_import_openpgp_raw, 
+//GO(gnutls_privkey_import_pkcs11, 
+GO(gnutls_privkey_import_rsa_raw, iFppppppppp)
+//GO(gnutls_privkey_import_tpm_raw, 
+//GO(gnutls_privkey_import_tpm_url, 
+//GO(gnutls_privkey_import_url, 
+//GO(gnutls_privkey_import_x509, 
+//GO(gnutls_privkey_import_x509_raw, 
+GO(gnutls_privkey_init, iFp)
+//GO(gnutls_privkey_set_flags, 
+//GO(gnutls_privkey_set_pin_function, 
+//GO(gnutls_privkey_sign_data, 
+GO(gnutls_privkey_sign_hash, iFppupp)
+//GO(gnutls_privkey_status, 
+//GO(gnutls_privkey_verify_params, 
+//GO(gnutls_privkey_verify_seed, 
+//GO(gnutls_protocol_get_id, 
+//GO(gnutls_protocol_get_name, 
+GO(gnutls_protocol_get_version, iFp)
+//GO(gnutls_protocol_list, 
+//GO(gnutls_psk_allocate_client_credentials, 
+//GO(gnutls_psk_allocate_server_credentials, 
+//GO(gnutls_psk_client_get_hint, 
+//GO(gnutls_psk_free_client_credentials, 
+//GO(gnutls_psk_free_server_credentials, 
+//GO(gnutls_psk_server_get_username, 
+//GO(gnutls_psk_set_client_credentials, 
+//GO(gnutls_psk_set_client_credentials_function, 
+//GO(gnutls_psk_set_params_function, 
+//GO(gnutls_psk_set_server_credentials_file, 
+//GO(gnutls_psk_set_server_credentials_function, 
+//GO(gnutls_psk_set_server_credentials_hint, 
+//GO(gnutls_psk_set_server_dh_params, 
+//GO(gnutls_psk_set_server_known_dh_params, 
+//GO(gnutls_psk_set_server_params_function, 
+GO(gnutls_pubkey_deinit, vFp)
+//GO(gnutls_pubkey_encrypt_data, 
+//GO(gnutls_pubkey_export, 
+//GO(gnutls_pubkey_export2, 
+//GO(gnutls_pubkey_export_dsa_raw, 
+//GO(gnutls_pubkey_export_ecc_raw, 
+//GO(gnutls_pubkey_export_ecc_x962, 
+//GO(gnutls_pubkey_export_rsa_raw, 
+//GO(gnutls_pubkey_get_key_id, 
+//GO(gnutls_pubkey_get_key_usage, 
+//GO(gnutls_pubkey_get_openpgp_key_id, 
+//GO(gnutls_pubkey_get_pk_algorithm, 
+//GO(gnutls_pubkey_get_preferred_hash_algorithm, 
+//GO(gnutls_pubkey_import, 
+GO(gnutls_pubkey_import_dsa_raw, iFppppp)
+GO(gnutls_pubkey_import_ecc_raw, iFpppp)
+//GO(gnutls_pubkey_import_ecc_x962, 
+//GO(gnutls_pubkey_import_openpgp, 
+//GO(gnutls_pubkey_import_openpgp_raw, 
+//GO(gnutls_pubkey_import_pkcs11, 
+//GO(gnutls_pubkey_import_privkey, 
+GO(gnutls_pubkey_import_rsa_raw, iFppp)
+//GO(gnutls_pubkey_import_tpm_raw, 
+//GO(gnutls_pubkey_import_tpm_url, 
+//GO(gnutls_pubkey_import_url, 
+//GO(gnutls_pubkey_import_x509, 
+//GO(gnutls_pubkey_import_x509_crq, 
+//GO(gnutls_pubkey_import_x509_raw, 
+GO(gnutls_pubkey_init, iFp)
+//GO(gnutls_pubkey_print, 
+//GO(gnutls_pubkey_set_key_usage, 
+//GO(gnutls_pubkey_set_pin_function, 
+//GO(gnutls_pubkey_verify_data2, 
+GO(gnutls_pubkey_verify_hash2, iFppupp)
+//GO(gnutls_pubkey_verify_params, 
+//GO(gnutls_random_art, 
+//GO(gnutls_range_split, 
+//GO(gnutls_record_can_use_length_hiding, 
+//GO(gnutls_record_check_corked, 
+//GO(gnutls_record_check_pending, 
+//GO(gnutls_record_cork, 
+//GO(gnutls_record_disable_padding, 
+//GO(gnutls_record_discard_queued, 
+//GO(gnutls_record_get_direction, 
+//GO(gnutls_record_get_discarded, 
+GO(gnutls_record_get_max_size, LFp)
+//GO(gnutls_record_get_state, 
+//GO(gnutls_record_overhead_size, 
+GO(gnutls_record_recv, lFppL)
+//GO(gnutls_record_recv_packet, 
+//GO(gnutls_record_recv_seq, 
+GO(gnutls_record_send, lFppL)
+//GO(gnutls_record_send_range, 
+//GO(_gnutls_record_set_default_version, 
+//GO(gnutls_record_set_max_size, 
+//GO(gnutls_record_set_state, 
+//GO(gnutls_record_set_timeout, 
+//GO(gnutls_record_uncork, 
+//GO(gnutls_register_custom_url, 
+//GO(gnutls_rehandshake, 
+//GO(_gnutls_resolve_priorities, 
+//GO(gnutls_rnd, 
+//GO(gnutls_rnd_refresh, 
+//GO(_gnutls_rsa_pms_set_version, 
+//GO(gnutls_safe_renegotiation_status, 
+//GO(gnutls_sec_param_get_name, 
+//GO(gnutls_sec_param_to_pk_bits, 
+//GO(gnutls_sec_param_to_symmetric_bits, 
+//GO(gnutls_server_name_get, 
+GO(gnutls_server_name_set, iFpppL)
+//GO(_gnutls_server_name_set_raw, 
+//GO(gnutls_session_channel_binding, 
+//GO(gnutls_session_enable_compatibility_mode, 
+//GO(gnutls_session_etm_status, 
+//GO(gnutls_session_ext_master_secret_status, 
+//GO(gnutls_session_ext_register, 
+//GO(gnutls_session_force_valid, 
+//GO(gnutls_session_get_data, 
+//GO(gnutls_session_get_data2, 
+//GO(gnutls_session_get_desc, 
+//GO(gnutls_session_get_flags, 
+//GO(gnutls_session_get_id, 
+//GO(gnutls_session_get_id2, 
+//GO(gnutls_session_get_master_secret, 
+//GO(gnutls_session_get_ptr, 
+//GO(gnutls_session_get_random, 
+//GO(gnutls_session_get_verify_cert_status, 
+//GO(gnutls_session_is_resumed, 
+//GO(gnutls_session_resumption_requested, 
+//GO(gnutls_session_set_data, 
+//GO(gnutls_session_set_id, 
+//GO(gnutls_session_set_premaster, 
+//GO(gnutls_session_set_ptr, 
+//GO(gnutls_session_set_verify_cert, 
+//GO(gnutls_session_set_verify_cert2, 
+//GO(gnutls_session_set_verify_function, 
+//GO(gnutls_session_supplemental_register, 
+//GO(gnutls_session_ticket_enable_client, 
+//GO(gnutls_session_ticket_enable_server, 
+//GO(gnutls_session_ticket_key_generate, 
+//GO(gnutls_set_default_priority, 
+//GO(gnutls_sign_algorithm_get, 
+//GO(gnutls_sign_algorithm_get_client, 
+//GO(gnutls_sign_algorithm_get_requested, 
+//GO(gnutls_sign_get_hash_algorithm, 
+//GO(gnutls_sign_get_id, 
+//GO(gnutls_sign_get_name, 
+//GO(gnutls_sign_get_oid, 
+//GO(gnutls_sign_get_pk_algorithm, 
+//GO(gnutls_sign_is_secure, 
+//GO(gnutls_sign_list, 
+//GO(gnutls_srp_allocate_client_credentials, 
+//GO(gnutls_srp_allocate_server_credentials, 
+//GO(gnutls_srp_base64_decode, 
+//GO(gnutls_srp_base64_decode2, 
+//GO(gnutls_srp_base64_encode, 
+//GO(gnutls_srp_base64_encode2, 
+//GO(gnutls_srp_free_client_credentials, 
+//GO(gnutls_srp_free_server_credentials, 
+//GO(gnutls_srp_server_get_username, 
+//GO(gnutls_srp_set_client_credentials, 
+//GO(gnutls_srp_set_client_credentials_function, 
+//GO(gnutls_srp_set_prime_bits, 
+//GO(gnutls_srp_set_server_credentials_file, 
+//GO(gnutls_srp_set_server_credentials_function, 
+//GO(gnutls_srp_set_server_fake_salt_seed, 
+//GO(gnutls_srp_verifier, 
+//GO(gnutls_srtp_get_keys, 
+//GO(gnutls_srtp_get_mki, 
+//GO(gnutls_srtp_get_profile_id, 
+//GO(gnutls_srtp_get_profile_name, 
+//GO(gnutls_srtp_get_selected_profile, 
+//GO(gnutls_srtp_set_mki, 
+//GO(gnutls_srtp_set_profile, 
+//GO(gnutls_srtp_set_profile_direct, 
+//GO(gnutls_store_commitment, 
+//GO(gnutls_store_pubkey, 
+//GO(gnutls_strerror, 
+//GO(gnutls_strerror_name, 
+//GO(gnutls_subject_alt_names_deinit, 
+//GO(gnutls_subject_alt_names_get, 
+//GO(gnutls_subject_alt_names_init, 
+//GO(gnutls_subject_alt_names_set, 
+//GO(gnutls_supplemental_get_name, 
+//GO(gnutls_supplemental_recv, 
+//GO(gnutls_supplemental_register, 
+//GO(gnutls_supplemental_send, 
+//GO(gnutls_system_key_add_x509, 
+//GO(gnutls_system_key_delete, 
+//GO(gnutls_system_key_iter_deinit, 
+//GO(gnutls_system_key_iter_get_info, 
+//GO(gnutls_system_recv_timeout, 
+//GO(gnutls_tdb_deinit, 
+//GO(gnutls_tdb_init, 
+//GO(gnutls_tdb_set_store_commitment_func, 
+//GO(gnutls_tdb_set_store_func, 
+//GO(gnutls_tdb_set_verify_func, 
+//GO(gnutls_tpm_get_registered, 
+//GO(gnutls_tpm_key_list_deinit, 
+//GO(gnutls_tpm_key_list_get_url, 
+//GO(gnutls_tpm_privkey_delete, 
+//GO(gnutls_tpm_privkey_generate, 
+//GO(gnutls_transport_get_int, 
+//GO(gnutls_transport_get_int2, 
+GO(gnutls_transport_get_ptr, pFp)
+//GO(gnutls_transport_get_ptr2, 
+GO(gnutls_transport_set_errno, vFpi)
+//GO(gnutls_transport_set_errno_function, 
+//GO(gnutls_transport_set_fastopen, 
+//GO(gnutls_transport_set_int2, 
+GO(gnutls_transport_set_ptr, vFpp)
+//GO(gnutls_transport_set_ptr2, 
+GOM(gnutls_transport_set_pull_function, vFEpp)
+//GO(gnutls_transport_set_pull_timeout_function, 
+GOM(gnutls_transport_set_push_function, vFEpp)
+//GO(gnutls_transport_set_vec_push_function, 
+//GO(_gnutls_ucs2_to_utf8, 
+//GO(gnutls_url_is_supported, 
+//GO(gnutls_utf8_password_normalize, 
+//GO(_gnutls_utf8_to_ucs2, 
+//GO(gnutls_verify_stored_pubkey, 
+//GO(gnutls_x509_aia_deinit, 
+//GO(gnutls_x509_aia_get, 
+//GO(gnutls_x509_aia_init, 
+//GO(gnutls_x509_aia_set, 
+//GO(gnutls_x509_aki_deinit, 
+//GO(gnutls_x509_aki_get_cert_issuer, 
+//GO(gnutls_x509_aki_get_id, 
+//GO(gnutls_x509_aki_init, 
+//GO(gnutls_x509_aki_set_cert_issuer, 
+//GO(gnutls_x509_aki_set_id, 
+//GO(gnutls_x509_cidr_to_rfc5280, 
+//GO(gnutls_x509_crl_check_issuer, 
+//GO(gnutls_x509_crl_deinit, 
+//GO(gnutls_x509_crl_dist_points_deinit, 
+//GO(gnutls_x509_crl_dist_points_get, 
+//GO(gnutls_x509_crl_dist_points_init, 
+//GO(gnutls_x509_crl_dist_points_set, 
+//GO(gnutls_x509_crl_export, 
+//GO(gnutls_x509_crl_export2, 
+//GO(gnutls_x509_crl_get_authority_key_gn_serial, 
+//GO(gnutls_x509_crl_get_authority_key_id, 
+//GO(gnutls_x509_crl_get_crt_count, 
+//GO(gnutls_x509_crl_get_crt_serial, 
+//GO(gnutls_x509_crl_get_dn_oid, 
+//GO(gnutls_x509_crl_get_extension_data, 
+//GO(gnutls_x509_crl_get_extension_data2, 
+//GO(gnutls_x509_crl_get_extension_info, 
+//GO(gnutls_x509_crl_get_extension_oid, 
+//GO(gnutls_x509_crl_get_issuer_dn, 
+//GO(gnutls_x509_crl_get_issuer_dn2, 
+//GO(gnutls_x509_crl_get_issuer_dn3, 
+//GO(gnutls_x509_crl_get_issuer_dn_by_oid, 
+//GO(gnutls_x509_crl_get_next_update, 
+//GO(gnutls_x509_crl_get_number, 
+//GO(gnutls_x509_crl_get_raw_issuer_dn, 
+//GO(gnutls_x509_crl_get_signature, 
+//GO(gnutls_x509_crl_get_signature_algorithm, 
+//GO(gnutls_x509_crl_get_signature_oid, 
+//GO(gnutls_x509_crl_get_this_update, 
+//GO(gnutls_x509_crl_get_version, 
+//GO(gnutls_x509_crl_import, 
+//GO(gnutls_x509_crl_init, 
+//GO(gnutls_x509_crl_iter_crt_serial, 
+//GO(gnutls_x509_crl_iter_deinit, 
+//GO(gnutls_x509_crl_list_import, 
+//GO(gnutls_x509_crl_list_import2, 
+//GO(gnutls_x509_crl_print, 
+//GO(gnutls_x509_crl_privkey_sign, 
+//GO(gnutls_x509_crl_set_authority_key_id, 
+//GO(gnutls_x509_crl_set_crt, 
+//GO(gnutls_x509_crl_set_crt_serial, 
+//GO(gnutls_x509_crl_set_next_update, 
+//GO(gnutls_x509_crl_set_number, 
+//GO(gnutls_x509_crl_set_this_update, 
+//GO(gnutls_x509_crl_set_version, 
+//GO(gnutls_x509_crl_sign, 
+//GO(gnutls_x509_crl_sign2, 
+//GO(gnutls_x509_crl_verify, 
+//GO(gnutls_x509_crq_deinit, 
+//GO(gnutls_x509_crq_export, 
+//GO(gnutls_x509_crq_export2, 
+//GO(gnutls_x509_crq_get_attribute_by_oid, 
+//GO(gnutls_x509_crq_get_attribute_data, 
+//GO(gnutls_x509_crq_get_attribute_info, 
+//GO(gnutls_x509_crq_get_basic_constraints, 
+//GO(gnutls_x509_crq_get_challenge_password, 
+//GO(gnutls_x509_crq_get_dn, 
+//GO(gnutls_x509_crq_get_dn2, 
+//GO(gnutls_x509_crq_get_dn3, 
+//GO(gnutls_x509_crq_get_dn_by_oid, 
+//GO(gnutls_x509_crq_get_dn_oid, 
+//GO(gnutls_x509_crq_get_extension_by_oid, 
+//GO(gnutls_x509_crq_get_extension_by_oid2, 
+//GO(gnutls_x509_crq_get_extension_data, 
+//GO(gnutls_x509_crq_get_extension_data2, 
+//GO(gnutls_x509_crq_get_extension_info, 
+//GO(gnutls_x509_crq_get_key_id, 
+//GO(gnutls_x509_crq_get_key_purpose_oid, 
+//GO(gnutls_x509_crq_get_key_rsa_raw, 
+//GO(gnutls_x509_crq_get_key_usage, 
+//GO(gnutls_x509_crq_get_pk_algorithm, 
+//GO(gnutls_x509_crq_get_pk_oid, 
+//GO(gnutls_x509_crq_get_private_key_usage_period, 
+//GO(gnutls_x509_crq_get_signature_algorithm, 
+//GO(gnutls_x509_crq_get_signature_oid, 
+//GO(gnutls_x509_crq_get_subject_alt_name, 
+//GO(gnutls_x509_crq_get_subject_alt_othername_oid, 
+//GO(gnutls_x509_crq_get_tlsfeatures, 
+//GO(gnutls_x509_crq_get_version, 
+//GO(gnutls_x509_crq_import, 
+//GO(gnutls_x509_crq_init, 
+//GO(gnutls_x509_crq_print, 
+//GO(gnutls_x509_crq_privkey_sign, 
+//GO(gnutls_x509_crq_set_attribute_by_oid, 
+//GO(gnutls_x509_crq_set_basic_constraints, 
+//GO(gnutls_x509_crq_set_challenge_password, 
+//GO(gnutls_x509_crq_set_dn, 
+//GO(gnutls_x509_crq_set_dn_by_oid, 
+//GO(gnutls_x509_crq_set_extension_by_oid, 
+//GO(gnutls_x509_crq_set_key, 
+//GO(gnutls_x509_crq_set_key_purpose_oid, 
+//GO(gnutls_x509_crq_set_key_rsa_raw, 
+//GO(gnutls_x509_crq_set_key_usage, 
+//GO(gnutls_x509_crq_set_private_key_usage_period, 
+//GO(gnutls_x509_crq_set_pubkey, 
+//GO(gnutls_x509_crq_set_subject_alt_name, 
+//GO(gnutls_x509_crq_set_subject_alt_othername, 
+//GO(gnutls_x509_crq_set_tlsfeatures, 
+//GO(gnutls_x509_crq_set_version, 
+//GO(gnutls_x509_crq_sign, 
+//GO(gnutls_x509_crq_sign2, 
+//GO(gnutls_x509_crq_verify, 
+//GO(gnutls_x509_crt_check_email, 
+//GO(gnutls_x509_crt_check_hostname, 
+//GO(gnutls_x509_crt_check_hostname2, 
+//GO(gnutls_x509_crt_check_issuer, 
+//GO(gnutls_x509_crt_check_key_purpose, 
+//GO(gnutls_x509_crt_check_revocation, 
+//GO(gnutls_x509_crt_cpy_crl_dist_points, 
+GO(gnutls_x509_crt_deinit, vFp)
+//GO(gnutls_x509_crt_equals, 
+//GO(gnutls_x509_crt_equals2, 
+GO(gnutls_x509_crt_export, iFpppp)
+//GO(gnutls_x509_crt_export2, 
+//GO(gnutls_x509_crt_get_activation_time, 
+//GO(gnutls_x509_crt_get_authority_info_access, 
+//GO(gnutls_x509_crt_get_authority_key_gn_serial, 
+//GO(gnutls_x509_crt_get_authority_key_id, 
+//GO(gnutls_x509_crt_get_basic_constraints, 
+//GO(gnutls_x509_crt_get_ca_status, 
+//GO(gnutls_x509_crt_get_crl_dist_points, 
+//GO(gnutls_x509_crt_get_dn, 
+//GO(gnutls_x509_crt_get_dn2, 
+//GO(gnutls_x509_crt_get_dn3, 
+//GO(gnutls_x509_crt_get_dn_by_oid, 
+//GO(gnutls_x509_crt_get_dn_oid, 
+//GO(gnutls_x509_crt_get_expiration_time, 
+//GO(gnutls_x509_crt_get_extension_by_oid, 
+//GO(gnutls_x509_crt_get_extension_by_oid2, 
+//GO(gnutls_x509_crt_get_extension_data, 
+//GO(gnutls_x509_crt_get_extension_data2, 
+//GO(gnutls_x509_crt_get_extension_info, 
+//GO(gnutls_x509_crt_get_extension_oid, 
+//GO(gnutls_x509_crt_get_fingerprint, 
+//GO(gnutls_x509_crt_get_issuer, 
+//GO(gnutls_x509_crt_get_issuer_alt_name, 
+//GO(gnutls_x509_crt_get_issuer_alt_name2, 
+//GO(gnutls_x509_crt_get_issuer_alt_othername_oid, 
+//GO(gnutls_x509_crt_get_issuer_dn, 
+//GO(gnutls_x509_crt_get_issuer_dn2, 
+//GO(gnutls_x509_crt_get_issuer_dn3, 
+//GO(gnutls_x509_crt_get_issuer_dn_by_oid, 
+//GO(gnutls_x509_crt_get_issuer_dn_oid, 
+//GO(gnutls_x509_crt_get_issuer_unique_id, 
+//GO(gnutls_x509_crt_get_key_id, 
+//GO(gnutls_x509_crt_get_key_purpose_oid, 
+//GO(gnutls_x509_crt_get_key_usage, 
+//GO(gnutls_x509_crt_get_name_constraints, 
+//GO(gnutls_x509_crt_get_pk_algorithm, 
+//GO(gnutls_x509_crt_get_pk_dsa_raw, 
+//GO(gnutls_x509_crt_get_pk_ecc_raw, 
+//GO(gnutls_x509_crt_get_pk_oid, 
+//GO(gnutls_x509_crt_get_pk_rsa_raw, 
+//GO(gnutls_x509_crt_get_policy, 
+//GO(gnutls_x509_crt_get_preferred_hash_algorithm, 
+//GO(gnutls_x509_crt_get_private_key_usage_period, 
+//GO(gnutls_x509_crt_get_proxy, 
+//GO(gnutls_x509_crt_get_raw_dn, 
+//GO(gnutls_x509_crt_get_raw_issuer_dn, 
+//GO(gnutls_x509_crt_get_serial, 
+//GO(gnutls_x509_crt_get_signature, 
+//GO(gnutls_x509_crt_get_signature_algorithm, 
+//GO(gnutls_x509_crt_get_signature_oid, 
+//GO(gnutls_x509_crt_get_subject, 
+//GO(gnutls_x509_crt_get_subject_alt_name, 
+//GO(gnutls_x509_crt_get_subject_alt_name2, 
+//GO(gnutls_x509_crt_get_subject_alt_othername_oid, 
+//GO(gnutls_x509_crt_get_subject_key_id, 
+//GO(gnutls_x509_crt_get_subject_unique_id, 
+//GO(gnutls_x509_crt_get_tlsfeatures, 
+//GO(gnutls_x509_crt_get_version, 
+GO(gnutls_x509_crt_import, iFppp)
+//GO(gnutls_x509_crt_import_pkcs11, 
+//GO(gnutls_x509_crt_import_url, 
+GO(gnutls_x509_crt_init, iFp)
+//GO(gnutls_x509_crt_list_import, 
+//GO(gnutls_x509_crt_list_import2, 
+//GO(gnutls_x509_crt_list_import_pkcs11, 
+//GO(gnutls_x509_crt_list_verify, 
+//GO(gnutls_x509_crt_print, 
+//GO(gnutls_x509_crt_privkey_sign, 
+//GO(gnutls_x509_crt_set_activation_time, 
+//GO(gnutls_x509_crt_set_authority_info_access, 
+//GO(gnutls_x509_crt_set_authority_key_id, 
+//GO(gnutls_x509_crt_set_basic_constraints, 
+//GO(gnutls_x509_crt_set_ca_status, 
+//GO(gnutls_x509_crt_set_crl_dist_points, 
+//GO(gnutls_x509_crt_set_crl_dist_points2, 
+//GO(gnutls_x509_crt_set_crq, 
+//GO(gnutls_x509_crt_set_crq_extension_by_oid, 
+//GO(gnutls_x509_crt_set_crq_extensions, 
+//GO(gnutls_x509_crt_set_dn, 
+//GO(gnutls_x509_crt_set_dn_by_oid, 
+//GO(gnutls_x509_crt_set_expiration_time, 
+//GO(gnutls_x509_crt_set_extension_by_oid, 
+//GO(gnutls_x509_crt_set_issuer_alt_name, 
+//GO(gnutls_x509_crt_set_issuer_alt_othername, 
+//GO(gnutls_x509_crt_set_issuer_dn, 
+//GO(gnutls_x509_crt_set_issuer_dn_by_oid, 
+//GO(gnutls_x509_crt_set_issuer_unique_id, 
+//GO(gnutls_x509_crt_set_key, 
+//GO(gnutls_x509_crt_set_key_purpose_oid, 
+//GO(gnutls_x509_crt_set_key_usage, 
+//GO(gnutls_x509_crt_set_name_constraints, 
+//GO(gnutls_x509_crt_set_pin_function, 
+//GO(gnutls_x509_crt_set_policy, 
+//GO(gnutls_x509_crt_set_private_key_usage_period, 
+//GO(gnutls_x509_crt_set_proxy, 
+//GO(gnutls_x509_crt_set_proxy_dn, 
+//GO(gnutls_x509_crt_set_pubkey, 
+//GO(gnutls_x509_crt_set_serial, 
+//GO(gnutls_x509_crt_set_subject_alternative_name, 
+//GO(gnutls_x509_crt_set_subject_alt_name, 
+//GO(gnutls_x509_crt_set_subject_alt_othername, 
+//GO(gnutls_x509_crt_set_subject_key_id, 
+//GO(gnutls_x509_crt_set_subject_unique_id, 
+//GO(gnutls_x509_crt_set_tlsfeatures, 
+//GO(gnutls_x509_crt_set_version, 
+//GO(gnutls_x509_crt_sign, 
+//GO(gnutls_x509_crt_sign2, 
+//GO(gnutls_x509_crt_verify, 
+//GO(gnutls_x509_crt_verify_data2, 
+//GO(gnutls_x509_dn_deinit, 
+//GO(gnutls_x509_dn_export, 
+//GO(gnutls_x509_dn_export2, 
+//GO(gnutls_x509_dn_get_rdn_ava, 
+//GO(gnutls_x509_dn_get_str, 
+//GO(gnutls_x509_dn_get_str2, 
+//GO(gnutls_x509_dn_import, 
+//GO(gnutls_x509_dn_init, 
+//GO(gnutls_x509_dn_oid_known, 
+//GO(gnutls_x509_dn_oid_name, 
+//GO(gnutls_x509_dn_set_str, 
+//GO(gnutls_x509_ext_deinit, 
+//GO(gnutls_x509_ext_export_aia, 
+//GO(gnutls_x509_ext_export_authority_key_id, 
+//GO(gnutls_x509_ext_export_basic_constraints, 
+//GO(gnutls_x509_ext_export_crl_dist_points, 
+//GO(gnutls_x509_ext_export_key_purposes, 
+//GO(gnutls_x509_ext_export_key_usage, 
+//GO(gnutls_x509_ext_export_name_constraints, 
+//GO(gnutls_x509_ext_export_policies, 
+//GO(gnutls_x509_ext_export_private_key_usage_period, 
+//GO(gnutls_x509_ext_export_proxy, 
+//GO(gnutls_x509_ext_export_subject_alt_names, 
+//GO(gnutls_x509_ext_export_subject_key_id, 
+//GO(gnutls_x509_ext_export_tlsfeatures, 
+//GO(gnutls_x509_ext_import_aia, 
+//GO(gnutls_x509_ext_import_authority_key_id, 
+//GO(gnutls_x509_ext_import_basic_constraints, 
+//GO(gnutls_x509_ext_import_crl_dist_points, 
+//GO(gnutls_x509_ext_import_key_purposes, 
+//GO(gnutls_x509_ext_import_key_usage, 
+//GO(gnutls_x509_ext_import_name_constraints, 
+//GO(gnutls_x509_ext_import_policies, 
+//GO(gnutls_x509_ext_import_private_key_usage_period, 
+//GO(gnutls_x509_ext_import_proxy, 
+//GO(gnutls_x509_ext_import_subject_alt_names, 
+//GO(gnutls_x509_ext_import_subject_key_id, 
+//GO(gnutls_x509_ext_import_tlsfeatures, 
+//GO(gnutls_x509_ext_print, 
+//GO(gnutls_x509_key_purpose_deinit, 
+//GO(gnutls_x509_key_purpose_get, 
+//GO(gnutls_x509_key_purpose_init, 
+//GO(gnutls_x509_key_purpose_set, 
+//GO(gnutls_x509_name_constraints_add_excluded, 
+//GO(gnutls_x509_name_constraints_add_permitted, 
+//GO(gnutls_x509_name_constraints_check, 
+//GO(gnutls_x509_name_constraints_check_crt, 
+//GO(gnutls_x509_name_constraints_deinit, 
+//GO(gnutls_x509_name_constraints_get_excluded, 
+//GO(gnutls_x509_name_constraints_get_permitted, 
+//GO(gnutls_x509_name_constraints_init, 
+//GO(_gnutls_x509_name_constraints_merge, 
+//GO(gnutls_x509_othername_to_virtual, 
+//GO(gnutls_x509_policies_deinit, 
+//GO(gnutls_x509_policies_get, 
+//GO(gnutls_x509_policies_init, 
+//GO(gnutls_x509_policies_set, 
+//GO(gnutls_x509_policy_release, 
+//GO(gnutls_x509_privkey_cpy, 
+GO(gnutls_x509_privkey_deinit, vFp)
+//GO(gnutls_x509_privkey_export, 
+//GO(gnutls_x509_privkey_export2, 
+//GO(gnutls_x509_privkey_export2_pkcs8, 
+//GO(gnutls_x509_privkey_export_dsa_raw, 
+//GO(gnutls_x509_privkey_export_ecc_raw, 
+//GO(gnutls_x509_privkey_export_pkcs8, 
+//GO(gnutls_x509_privkey_export_rsa_raw, 
+GO(gnutls_x509_privkey_export_rsa_raw2, iFppppppppp)
+//GO(gnutls_x509_privkey_fix, 
+//GO(gnutls_x509_privkey_generate, 
+//GO(gnutls_x509_privkey_generate2, 
+//GO(gnutls_x509_privkey_get_key_id, 
+//GO(gnutls_x509_privkey_get_pk_algorithm, 
+GO(gnutls_x509_privkey_get_pk_algorithm2, iFpp)
+//GO(gnutls_x509_privkey_get_seed, 
+//GO(gnutls_x509_privkey_import, 
+//GO(gnutls_x509_privkey_import2, 
+//GO(gnutls_x509_privkey_import_dsa_raw, 
+//GO(gnutls_x509_privkey_import_ecc_raw, 
+//GO(gnutls_x509_privkey_import_openssl, 
+//GO(gnutls_x509_privkey_import_pkcs8, 
+//GO(gnutls_x509_privkey_import_rsa_raw, 
+//GO(gnutls_x509_privkey_import_rsa_raw2, 
+//GO(gnutls_x509_privkey_init, 
+//GO(gnutls_x509_privkey_sec_param, 
+//GO(gnutls_x509_privkey_set_flags, 
+//GO(gnutls_x509_privkey_set_pin_function, 
+//GO(gnutls_x509_privkey_sign_data, 
+//GO(gnutls_x509_privkey_sign_hash, 
+//GO(gnutls_x509_privkey_verify_params, 
+//GO(gnutls_x509_privkey_verify_seed, 
+//GO(gnutls_x509_rdn_get, 
+//GO(gnutls_x509_rdn_get2, 
+//GO(gnutls_x509_rdn_get_by_oid, 
+//GO(gnutls_x509_rdn_get_oid, 
+//GO(gnutls_x509_tlsfeatures_add, 
+//GO(gnutls_x509_tlsfeatures_check_crt, 
+//GO(gnutls_x509_tlsfeatures_deinit, 
+//GO(gnutls_x509_tlsfeatures_get, 
+//GO(gnutls_x509_tlsfeatures_init, 
+//GO(gnutls_x509_trust_list_add_cas, 
+//GO(gnutls_x509_trust_list_add_crls, 
+//GO(gnutls_x509_trust_list_add_named_crt, 
+//GO(gnutls_x509_trust_list_add_system_trust, 
+//GO(gnutls_x509_trust_list_add_trust_dir, 
+//GO(gnutls_x509_trust_list_add_trust_file, 
+//GO(gnutls_x509_trust_list_add_trust_mem, 
+//GO(gnutls_x509_trust_list_deinit, 
+//GO(gnutls_x509_trust_list_get_issuer, 
+//GO(gnutls_x509_trust_list_get_issuer_by_dn, 
+//GO(gnutls_x509_trust_list_get_issuer_by_subject_key_id, 
+//GO(gnutls_x509_trust_list_init, 
+//GO(gnutls_x509_trust_list_iter_deinit, 
+//GO(gnutls_x509_trust_list_iter_get_ca, 
+//GO(gnutls_x509_trust_list_remove_cas, 
+//GO(gnutls_x509_trust_list_remove_trust_file, 
+//GO(gnutls_x509_trust_list_remove_trust_mem, 
+//GO(gnutls_x509_trust_list_verify_crt, 
+//GO(gnutls_x509_trust_list_verify_crt2, 
+//GO(gnutls_x509_trust_list_verify_named_crt, 
+//GO(_rsa_generate_fips186_4_keypair,