changeset 3080:c0222ce8760d

[MSVC] enable MSVC compilation - cc-msvc/clgcc/clg++: make WinXP SP3 the default target - set CCAS=gcc by default
author Michael Goffioul <michael.goffioul@gmail.com>
date Sun, 23 Jun 2013 23:33:40 -0400
parents fd2f3cb4c360
children 71ca96663e2c
files Makefile.in src/build-msvctools/cc-msvc.cc src/gnutls.mk src/msvc-gnutls-1.patch
diffstat 4 files changed, 1833 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile.in	Sun Jun 23 15:27:50 2013 -0400
+++ b/Makefile.in	Sun Jun 23 23:33:40 2013 -0400
@@ -167,7 +167,7 @@
     MXE_PKG_CONFIG := pkg-config
     MXE_QMAKE := qmake
     HOST_AND_BUILD_CONFIGURE_OPTIONS := \
-	    CC='$(MXE_CC)' CXX='$(MXE_CXX)' F77='$(MXE_F77)' DLLTOOL='$(MXE_DLLTOOL)' \
+	    CC='$(MXE_CC)' CXX='$(MXE_CXX)' F77='$(MXE_F77)' DLLTOOL='$(MXE_DLLTOOL)' CCAS='gcc' \
 	    CFLAGS='-O2' CXXFLAGS='-O2'
   else
     MXE_AR := ar
--- a/src/build-msvctools/cc-msvc.cc	Sun Jun 23 15:27:50 2013 -0400
+++ b/src/build-msvctools/cc-msvc.cc	Sun Jun 23 23:33:40 2013 -0400
@@ -352,7 +352,8 @@
         bool cppmode = false;
 
 	prog = "cl";
-	clopt = "-nologo -MD -DWIN32 -D_WIN32 -D__WIN32__";
+	// Default target is WinXP SP3
+	clopt = "-nologo -MD -DWIN32 -D_WIN32 -D__WIN32__ -DNTDDI_VERSION=0x05010300 -D_WIN32_WINNT=0x0501";
 	linkopt = "-nologo";
 	cllinkopt = "";
 	sourcefile = "";
--- a/src/gnutls.mk	Sun Jun 23 15:27:50 2013 -0400
+++ b/src/gnutls.mk	Sun Jun 23 23:33:40 2013 -0400
@@ -34,7 +34,7 @@
         --with-included-libtasn1 \
         --with-included-libcfg \
         --without-p11-kit \
-        --disable-silent-rules
+        --disable-silent-rules && $(CONFIGURE_POST_HOOK)
 
     $(MAKE) -C '$(1)' -j '$(JOBS)' install
 endef
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/msvc-gnutls-1.patch	Sun Jun 23 23:33:40 2013 -0400
@@ -0,0 +1,1829 @@
+diff -ur gnutls-3.1.4-orig/extra/Makefile.am gnutls-3.1.4/extra/Makefile.am
+--- gnutls-3.1.4-orig/extra/Makefile.am	2012-09-25 10:46:28 -0400
++++ gnutls-3.1.4/extra/Makefile.am	2013-06-23 14:17:33 -0400
+@@ -45,7 +45,9 @@
+ 
+ # OpenSSL
+ 
+-libgnutls_openssl_la_LDFLAGS = -no-undefined
++libgnutls_openssl_la_LDFLAGS = \
++	-no-undefined \
++	-export-symbols-regex '^(SSL|SSLv3|SSLv23|TLSv1|OpenSSL|X509|BIO|ERR|RAND|MD5|RIPEMD160)_.*'
+ 
+ if ENABLE_OPENSSL
+ lib_LTLIBRARIES = libgnutls-openssl.la
+@@ -70,7 +72,7 @@
+ libgnutls_openssl_la_LDFLAGS += \
+ 	-Wl,--output-def,libgnutls-openssl-$(DLL_VERSION).def
+ libgnutls-openssl-$(DLL_VERSION).def: libgnutls-openssl.la
+-defexec_DATA += libgnutls-openssl-$(DLL_VERSION).def
++#defexec_DATA += libgnutls-openssl-$(DLL_VERSION).def
+ endif
+ endif
+ 
+diff -ur gnutls-3.1.4-orig/lib/Makefile.am gnutls-3.1.4/lib/Makefile.am
+--- gnutls-3.1.4-orig/lib/Makefile.am	2012-10-02 14:03:02 -0400
++++ gnutls-3.1.4/lib/Makefile.am	2013-06-23 14:17:21 -0400
+@@ -27,7 +27,7 @@
+ 
+ localedir = $(datadir)/locale
+ 
+-AM_CFLAGS = $(WERROR_CFLAGS) $(WSTACK_CFLAGS) $(WARN_CFLAGS)
++AM_CFLAGS = $(WERROR_CFLAGS) $(WSTACK_CFLAGS) $(WARN_CFLAGS) -DGNUTLS_BUILDING
+ AM_CPPFLAGS = \
+ 	-DLOCALEDIR=\"$(localedir)\"		\
+ 	-I$(srcdir)/../gl			\
+@@ -151,7 +151,7 @@
+ libgnutls_la_LDFLAGS += -Wl,--output-def,libgnutls-$(DLL_VERSION).def
+ libgnutls-$(DLL_VERSION).def: libgnutls.la
+ defexecdir = $(bindir)
+-defexec_DATA = libgnutls-$(DLL_VERSION).def
++#defexec_DATA = libgnutls-$(DLL_VERSION).def
+ DISTCLEANFILES += $(defexec_DATA)
+ endif
+ 
+@@ -164,7 +164,7 @@
+ # C++ library
+ 
+ if ENABLE_CXX
+-libgnutlsxx_la_CPPFLAGS = -I$(top_srcdir)/includes -I$(top_builddir)/includes -I$(srcdir)/includes
++libgnutlsxx_la_CPPFLAGS = -I$(top_srcdir)/includes -I$(top_builddir)/includes -I$(srcdir)/includes -DGNUTLSXX_BUILDING
+ 
+ AM_CXXFLAGS = \
+ 	-I$(srcdir)/includes	\
+diff -ur gnutls-3.1.4-orig/lib/accelerated/Makefile.am gnutls-3.1.4/lib/accelerated/Makefile.am
+--- gnutls-3.1.4-orig/lib/accelerated/Makefile.am	2012-04-12 16:05:11 -0400
++++ gnutls-3.1.4/lib/accelerated/Makefile.am	2013-06-23 14:16:47 -0400
+@@ -21,6 +21,7 @@
+ AM_CFLAGS = $(WERROR_CFLAGS) $(WSTACK_CFLAGS) $(WARN_CFLAGS)
+ SUBDIRS = 
+ AM_CPPFLAGS = \
++	-DGNUTLS_BUILDING		\
+ 	-I$(srcdir)/../../gl		\
+ 	-I$(builddir)/../../gl		\
+ 	-I$(srcdir)/../includes		\
+diff -ur gnutls-3.1.4-orig/lib/accelerated/x86/Makefile.am gnutls-3.1.4/lib/accelerated/x86/Makefile.am
+--- gnutls-3.1.4-orig/lib/accelerated/x86/Makefile.am	2012-04-12 16:05:11 -0400
++++ gnutls-3.1.4/lib/accelerated/x86/Makefile.am	2013-06-23 14:16:47 -0400
+@@ -21,6 +21,7 @@
+ AM_LIBTOOLFLAGS=--tag=CC
+ AM_CFLAGS = $(WERROR_CFLAGS) $(WSTACK_CFLAGS) $(WARN_CFLAGS)
+ AM_CPPFLAGS = -I$(srcdir)/../../../gl		\
++	-DGNUTLS_BUILDING		\
+ 	-I$(builddir)/../../../gl		\
+ 	-I$(srcdir)/../../includes	\
+ 	-I$(builddir)/../../includes	\
+diff -ur gnutls-3.1.4-orig/lib/accelerated/x86/aes-gcm-padlock.c gnutls-3.1.4/lib/accelerated/x86/aes-gcm-padlock.c
+--- gnutls-3.1.4-orig/lib/accelerated/x86/aes-gcm-padlock.c	2012-04-12 16:05:11 -0400
++++ gnutls-3.1.4/lib/accelerated/x86/aes-gcm-padlock.c	2013-06-23 14:16:47 -0400
+@@ -153,14 +153,15 @@
+ }
+ 
+ const gnutls_crypto_cipher_st aes_gcm_padlock_struct = {
+-  .init = aes_gcm_cipher_init,
+-  .setkey = aes_gcm_cipher_setkey,
+-  .setiv = aes_gcm_setiv,
+-  .encrypt = aes_gcm_encrypt,
+-  .decrypt = aes_gcm_decrypt,
+-  .deinit = aes_gcm_deinit,
+-  .tag = aes_gcm_tag,
+-  .auth = aes_gcm_auth,
++  aes_gcm_cipher_init,
++  aes_gcm_cipher_setkey,
++  aes_gcm_setiv,
++  aes_gcm_encrypt,
++  aes_gcm_decrypt,
++  aes_gcm_auth,
++  aes_gcm_tag,
++  aes_gcm_deinit,
++  NULL
+ };
+ 
+ #endif
+diff -ur gnutls-3.1.4-orig/lib/accelerated/x86/aes-gcm-x86.c gnutls-3.1.4/lib/accelerated/x86/aes-gcm-x86.c
+--- gnutls-3.1.4-orig/lib/accelerated/x86/aes-gcm-x86.c	2012-04-12 16:05:11 -0400
++++ gnutls-3.1.4/lib/accelerated/x86/aes-gcm-x86.c	2013-06-23 14:16:47 -0400
+@@ -259,12 +259,13 @@
+ }
+ 
+ const gnutls_crypto_cipher_st aes_gcm_struct = {
+-  .init = aes_gcm_cipher_init,
+-  .setkey = aes_gcm_cipher_setkey,
+-  .setiv = aes_gcm_setiv,
+-  .encrypt = aes_gcm_encrypt,
+-  .decrypt = aes_gcm_decrypt,
+-  .deinit = aes_gcm_deinit,
+-  .tag = aes_gcm_tag,
+-  .auth = aes_gcm_auth,
++  aes_gcm_cipher_init,
++  aes_gcm_cipher_setkey,
++  aes_gcm_setiv,
++  aes_gcm_encrypt,
++  aes_gcm_decrypt,
++  aes_gcm_auth,
++  aes_gcm_tag,
++  aes_gcm_deinit,
++  NULL
+ };
+diff -ur gnutls-3.1.4-orig/lib/accelerated/x86/aes-padlock.c gnutls-3.1.4/lib/accelerated/x86/aes-padlock.c
+--- gnutls-3.1.4-orig/lib/accelerated/x86/aes-padlock.c	2012-04-12 16:05:11 -0400
++++ gnutls-3.1.4/lib/accelerated/x86/aes-padlock.c	2013-06-23 14:16:47 -0400
+@@ -159,12 +159,15 @@
+ }
+ 
+ static const gnutls_crypto_cipher_st aes_padlock_struct = {
+-  .init = aes_cipher_init,
+-  .setkey = padlock_aes_cipher_setkey,
+-  .setiv = aes_setiv,
+-  .encrypt = padlock_aes_cbc_encrypt,
+-  .decrypt = padlock_aes_cbc_decrypt,
+-  .deinit = aes_deinit,
++  aes_cipher_init,
++  padlock_aes_cipher_setkey,
++  aes_setiv,
++  padlock_aes_cbc_encrypt,
++  padlock_aes_cbc_decrypt,
++  NULL,
++  NULL,
++  aes_deinit,
++  NULL
+ };
+ 
+ static int
+diff -ur gnutls-3.1.4-orig/lib/accelerated/x86/aes-x86.c gnutls-3.1.4/lib/accelerated/x86/aes-x86.c
+--- gnutls-3.1.4-orig/lib/accelerated/x86/aes-x86.c	2012-04-12 16:05:11 -0400
++++ gnutls-3.1.4/lib/accelerated/x86/aes-x86.c	2013-06-23 14:16:47 -0400
+@@ -114,12 +114,15 @@
+ }
+ 
+ static const gnutls_crypto_cipher_st cipher_struct = {
+-  .init = aes_cipher_init,
+-  .setkey = aes_cipher_setkey,
+-  .setiv = aes_setiv,
+-  .encrypt = aes_encrypt,
+-  .decrypt = aes_decrypt,
+-  .deinit = aes_deinit,
++  aes_cipher_init,
++  aes_cipher_setkey,
++  aes_setiv,
++  aes_encrypt,
++  aes_decrypt,
++  NULL,
++  NULL,
++  aes_deinit,
++  NULL
+ };
+ 
+ static unsigned
+diff -ur gnutls-3.1.4-orig/lib/accelerated/x86/hmac-padlock.c gnutls-3.1.4/lib/accelerated/x86/hmac-padlock.c
+--- gnutls-3.1.4-orig/lib/accelerated/x86/hmac-padlock.c	2012-04-12 16:05:11 -0400
++++ gnutls-3.1.4/lib/accelerated/x86/hmac-padlock.c	2013-06-23 14:16:47 -0400
+@@ -351,23 +351,23 @@
+ }
+ 
+ const gnutls_crypto_mac_st hmac_sha_padlock_struct = {
+-    .init = NULL,
+-    .setkey = NULL,
+-    .hash = NULL,
+-    .reset = NULL,
+-    .output = NULL,
+-    .deinit = NULL,
+-    .fast = wrap_padlock_hmac_fast
++    NULL,
++    NULL,
++    NULL,
++    NULL,
++    NULL,
++    NULL,
++    wrap_padlock_hmac_fast
+ };
+ 
+ const gnutls_crypto_mac_st hmac_sha_padlock_nano_struct = {
+-    .init = wrap_padlock_hmac_init,
+-    .setkey = wrap_padlock_hmac_setkey,
+-    .hash = wrap_padlock_hmac_update,
+-    .reset = wrap_padlock_hmac_reset,
+-    .output = wrap_padlock_hmac_output,
+-    .deinit = wrap_padlock_hmac_deinit,
+-    .fast = wrap_padlock_hmac_fast,
++    wrap_padlock_hmac_init,
++    wrap_padlock_hmac_setkey,
++    wrap_padlock_hmac_reset,
++    wrap_padlock_hmac_update,
++    wrap_padlock_hmac_output,
++    wrap_padlock_hmac_deinit,
++    wrap_padlock_hmac_fast,
+ };
+ 
+ #endif /* HAVE_LIBNETTLE */
+diff -ur gnutls-3.1.4-orig/lib/accelerated/x86/sha-padlock.c gnutls-3.1.4/lib/accelerated/x86/sha-padlock.c
+--- gnutls-3.1.4-orig/lib/accelerated/x86/sha-padlock.c	2012-04-12 16:05:11 -0400
++++ gnutls-3.1.4/lib/accelerated/x86/sha-padlock.c	2013-06-23 14:16:47 -0400
+@@ -373,20 +373,21 @@
+ const struct nettle_hash padlock_sha512 = _NETTLE_HASH(sha512, SHA512);
+ 
+ const gnutls_crypto_digest_st sha_padlock_struct = {
+-  .init = NULL,
+-  .hash = NULL,
+-  .output = NULL,
+-  .deinit = NULL,
+-  .fast = wrap_padlock_hash_fast
++  NULL,
++  NULL,
++  NULL,
++  NULL,
++  NULL,
++  wrap_padlock_hash_fast
+ };
+ 
+ const gnutls_crypto_digest_st sha_padlock_nano_struct = {
+-  .init = wrap_padlock_hash_init,
+-  .hash = wrap_padlock_hash_update,
+-  .reset = wrap_padlock_hash_reset,
+-  .output = wrap_padlock_hash_output,
+-  .deinit = wrap_padlock_hash_deinit,
+-  .fast = wrap_padlock_hash_fast,
++  wrap_padlock_hash_init,
++  wrap_padlock_hash_reset,
++  wrap_padlock_hash_update,
++  wrap_padlock_hash_output,
++  wrap_padlock_hash_deinit,
++  wrap_padlock_hash_fast,
+ };
+ 
+ #endif /* HAVE_LIBNETTLE */
+diff -ur gnutls-3.1.4-orig/lib/algorithms/Makefile.am gnutls-3.1.4/lib/algorithms/Makefile.am
+--- gnutls-3.1.4-orig/lib/algorithms/Makefile.am	2012-04-12 16:05:11 -0400
++++ gnutls-3.1.4/lib/algorithms/Makefile.am	2013-06-23 14:16:47 -0400
+@@ -20,6 +20,7 @@
+ 
+ AM_CFLAGS = $(WERROR_CFLAGS) $(WSTACK_CFLAGS) $(WARN_CFLAGS)
+ AM_CPPFLAGS = \
++	-DGNUTLS_BUILDING		\
+ 	-I$(srcdir)/../../gl		\
+ 	-I$(builddir)/../../gl		\
+ 	-I$(srcdir)/../includes		\
+diff -ur gnutls-3.1.4-orig/lib/algorithms/ecc.c gnutls-3.1.4/lib/algorithms/ecc.c
+--- gnutls-3.1.4-orig/lib/algorithms/ecc.c	2012-09-19 17:13:58 -0400
++++ gnutls-3.1.4/lib/algorithms/ecc.c	2013-06-23 14:16:47 -0400
+@@ -31,69 +31,69 @@
+ 
+ static const gnutls_ecc_curve_entry_st ecc_curves[] = {
+   {
+-    .name = "SECP192R1", 
+-    .oid = "1.2.840.10045.3.1.1",
+-    .id = GNUTLS_ECC_CURVE_SECP192R1,
+-    .tls_id = 19,
+-    .size = 24,
+-    .prime = "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF",
+-    .A = "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC",
+-    .B = "64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1",
+-    .order = "FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831",
+-    .Gx =    "188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012",
+-    .Gy =    "07192B95FFC8DA78631011ED6B24CDD573F977A11E794811"
++    "SECP192R1", 
++    "1.2.840.10045.3.1.1",
++    GNUTLS_ECC_CURVE_SECP192R1,
++    19,
++    24,
++    "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF",
++    "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC",
++    "64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1",
++    "FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831",
++    "188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012",
++    "07192B95FFC8DA78631011ED6B24CDD573F977A11E794811"
+   },
+   {
+-    .name = "SECP224R1", 
+-    .oid = "1.3.132.0.33",
+-    .id = GNUTLS_ECC_CURVE_SECP224R1,
+-    .tls_id = 21,
+-    .size = 28,
+-    .prime = "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001",
+-    .A = "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE",
+-    .B = "B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4",
+-    .order = "FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D",
+-    .Gx =    "B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21",
+-    .Gy =    "BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34",
++    "SECP224R1", 
++    "1.3.132.0.33",
++    GNUTLS_ECC_CURVE_SECP224R1,
++    21,
++    28,
++    "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001",
++    "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE",
++    "B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4",
++    "FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D",
++    "B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21",
++    "BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34",
+   },
+   {
+-    .name = "SECP256R1", 
+-    .oid = "1.2.840.10045.3.1.7",
+-    .id = GNUTLS_ECC_CURVE_SECP256R1,
+-    .tls_id = 23,
+-    .size = 32,
+-    .prime = "FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF",
+-    .A = "FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC",
+-    .B = "5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B",
+-    .order = "FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551",
+-    .Gx = "6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296",
+-    .Gy = "4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5",
++    "SECP256R1", 
++    "1.2.840.10045.3.1.7",
++    GNUTLS_ECC_CURVE_SECP256R1,
++    23,
++    32,
++    "FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF",
++    "FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC",
++    "5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B",
++    "FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551",
++    "6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296",
++    "4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5",
+   },
+   {
+-    .name = "SECP384R1",
+-    .oid = "1.3.132.0.34",
+-    .id = GNUTLS_ECC_CURVE_SECP384R1,
+-    .tls_id = 24,
+-    .size = 48,
+-    .prime = "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFF",
+-    .A = "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFC",
+-    .B = "B3312FA7E23EE7E4988E056BE3F82D19181D9C6EFE8141120314088F5013875AC656398D8A2ED19D2A85C8EDD3EC2AEF",
+-    .order = "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52973",
+-    .Gx = "AA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B9859F741E082542A385502F25DBF55296C3A545E3872760AB7",
+-    .Gy = "3617DE4A96262C6F5D9E98BF9292DC29F8F41DBD289A147CE9DA3113B5F0B8C00A60B1CE1D7E819D7A431D7C90EA0E5F"
++    "SECP384R1",
++    "1.3.132.0.34",
++    GNUTLS_ECC_CURVE_SECP384R1,
++    24,
++    48,
++    "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFF",
++    "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFC",
++    "B3312FA7E23EE7E4988E056BE3F82D19181D9C6EFE8141120314088F5013875AC656398D8A2ED19D2A85C8EDD3EC2AEF",
++    "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52973",
++    "AA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B9859F741E082542A385502F25DBF55296C3A545E3872760AB7",
++    "3617DE4A96262C6F5D9E98BF9292DC29F8F41DBD289A147CE9DA3113B5F0B8C00A60B1CE1D7E819D7A431D7C90EA0E5F"
+   },
+   {
+-    .name = "SECP521R1",
+-    .oid = "1.3.132.0.35",
+-    .id = GNUTLS_ECC_CURVE_SECP521R1,
+-    .tls_id = 25,
+-    .size = 66,
+-    .prime = "01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
+-    .A = "01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC",
+-    .B = "0051953EB9618E1C9A1F929A21A0B68540EEA2DA725B99B315F3B8B489918EF109E156193951EC7E937B1652C0BD3BB1BF073573DF883D2C34F1EF451FD46B503F00",
+-    .order = "01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E91386409",
+-    .Gx =    "00C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828AF606B4D3DBAA14B5E77EFE75928FE1DC127A2FFA8DE3348B3C1856A429BF97E7E31C2E5BD66",
+-    .Gy =    "011839296A789A3BC0045C8A5FB42C7D1BD998F54449579B446817AFBD17273E662C97EE72995EF42640C550B9013FAD0761353C7086A272C24088BE94769FD16650",
++    "SECP521R1",
++    "1.3.132.0.35",
++    GNUTLS_ECC_CURVE_SECP521R1,
++    25,
++    66,
++    "01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
++    "01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC",
++    "0051953EB9618E1C9A1F929A21A0B68540EEA2DA725B99B315F3B8B489918EF109E156193951EC7E937B1652C0BD3BB1BF073573DF883D2C34F1EF451FD46B503F00",
++    "01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E91386409",
++    "00C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828AF606B4D3DBAA14B5E77EFE75928FE1DC127A2FFA8DE3348B3C1856A429BF97E7E31C2E5BD66",
++    "011839296A789A3BC0045C8A5FB42C7D1BD998F54449579B446817AFBD17273E662C97EE72995EF42640C550B9013FAD0761353C7086A272C24088BE94769FD16650",
+   },
+   {0, 0, 0}
+ };
+diff -ur gnutls-3.1.4-orig/lib/auth/Makefile.am gnutls-3.1.4/lib/auth/Makefile.am
+--- gnutls-3.1.4-orig/lib/auth/Makefile.am	2012-04-12 16:05:11 -0400
++++ gnutls-3.1.4/lib/auth/Makefile.am	2013-06-23 14:16:48 -0400
+@@ -20,6 +20,7 @@
+ 
+ AM_CFLAGS = $(WERROR_CFLAGS) $(WSTACK_CFLAGS) $(WARN_CFLAGS)
+ AM_CPPFLAGS = \
++	-DGNUTLS_BUILDING		\
+ 	-I$(srcdir)/../../gl		\
+ 	-I$(builddir)/../../gl		\
+ 	-I$(srcdir)/../includes		\
+diff -ur gnutls-3.1.4-orig/lib/ext/Makefile.am gnutls-3.1.4/lib/ext/Makefile.am
+--- gnutls-3.1.4-orig/lib/ext/Makefile.am	2012-11-05 15:43:12 -0500
++++ gnutls-3.1.4/lib/ext/Makefile.am	2013-06-23 14:16:48 -0400
+@@ -20,6 +20,7 @@
+ 
+ AM_CFLAGS = $(WERROR_CFLAGS) $(WSTACK_CFLAGS) $(WARN_CFLAGS)
+ AM_CPPFLAGS = \
++	-DGNUTLS_BUILDING		\
+ 	-I$(srcdir)/../../gl		\
+ 	-I$(builddir)/../../gl		\
+ 	-I$(srcdir)/../includes		\
+diff -ur gnutls-3.1.4-orig/lib/ext/cert_type.c gnutls-3.1.4/lib/ext/cert_type.c
+--- gnutls-3.1.4-orig/lib/ext/cert_type.c	2012-09-19 17:13:58 -0400
++++ gnutls-3.1.4/lib/ext/cert_type.c	2013-06-23 14:16:48 -0400
+@@ -43,15 +43,15 @@
+                                           gnutls_buffer_st * extdata);
+ 
+ extension_entry_st ext_mod_cert_type = {
+-  .name = "CERT TYPE",
+-  .type = GNUTLS_EXTENSION_CERT_TYPE,
+-  .parse_type = GNUTLS_EXT_TLS,
++  "CERT TYPE",
++  GNUTLS_EXTENSION_CERT_TYPE,
++  GNUTLS_EXT_TLS,
+ 
+-  .recv_func = _gnutls_cert_type_recv_params,
+-  .send_func = _gnutls_cert_type_send_params,
+-  .pack_func = NULL,
+-  .unpack_func = NULL,
+-  .deinit_func = NULL
++  _gnutls_cert_type_recv_params,
++  _gnutls_cert_type_send_params,
++  NULL,
++  NULL,
++  NULL
+ };
+ 
+ /* 
+diff -ur gnutls-3.1.4-orig/lib/ext/ecc.c gnutls-3.1.4/lib/ext/ecc.c
+--- gnutls-3.1.4-orig/lib/ext/ecc.c	2012-09-19 17:13:58 -0400
++++ gnutls-3.1.4/lib/ext/ecc.c	2013-06-23 14:16:48 -0400
+@@ -49,27 +49,27 @@
+                                           gnutls_buffer_st * extdata);
+ 
+ extension_entry_st ext_mod_supported_ecc = {
+-  .name = "SUPPORTED ECC",
+-  .type = GNUTLS_EXTENSION_SUPPORTED_ECC,
+-  .parse_type = GNUTLS_EXT_TLS,
++  "SUPPORTED ECC",
++  GNUTLS_EXTENSION_SUPPORTED_ECC,
++  GNUTLS_EXT_TLS,
+ 
+-  .recv_func = _gnutls_supported_ecc_recv_params,
+-  .send_func = _gnutls_supported_ecc_send_params,
+-  .pack_func = NULL,
+-  .unpack_func = NULL,
+-  .deinit_func = NULL
++  _gnutls_supported_ecc_recv_params,
++  _gnutls_supported_ecc_send_params,
++  NULL,
++  NULL,
++  NULL
+ };
+ 
+ extension_entry_st ext_mod_supported_ecc_pf = {
+-  .name = "SUPPORTED ECC POINT FORMATS",
+-  .type = GNUTLS_EXTENSION_SUPPORTED_ECC_PF,
+-  .parse_type = GNUTLS_EXT_TLS,
++  "SUPPORTED ECC POINT FORMATS",
++  GNUTLS_EXTENSION_SUPPORTED_ECC_PF,
++  GNUTLS_EXT_TLS,
+ 
+-  .recv_func = _gnutls_supported_ecc_pf_recv_params,
+-  .send_func = _gnutls_supported_ecc_pf_send_params,
+-  .pack_func = NULL,
+-  .unpack_func = NULL,
+-  .deinit_func = NULL
++  _gnutls_supported_ecc_pf_recv_params,
++  _gnutls_supported_ecc_pf_send_params,
++  NULL,
++  NULL,
++  NULL
+ };
+ 
+ /* 
+diff -ur gnutls-3.1.4-orig/lib/ext/heartbeat.c gnutls-3.1.4/lib/ext/heartbeat.c
+--- gnutls-3.1.4-orig/lib/ext/heartbeat.c	2012-09-26 14:19:33 -0400
++++ gnutls-3.1.4/lib/ext/heartbeat.c	2013-06-23 14:16:48 -0400
+@@ -512,13 +512,13 @@
+ 
+ 
+ extension_entry_st ext_mod_heartbeat = {
+-  .name = "HEARTBEAT",
+-  .type = GNUTLS_EXTENSION_HEARTBEAT,
+-  .parse_type = GNUTLS_EXT_TLS,
++  "HEARTBEAT",
++  GNUTLS_EXTENSION_HEARTBEAT,
++  GNUTLS_EXT_TLS,
+ 
+-  .recv_func = _gnutls_heartbeat_recv_params,
+-  .send_func = _gnutls_heartbeat_send_params,
+-  .pack_func = _gnutls_heartbeat_pack,
+-  .unpack_func = _gnutls_heartbeat_unpack,
+-  .deinit_func = NULL
++  _gnutls_heartbeat_recv_params,
++  _gnutls_heartbeat_send_params,
++  NULL,
++  _gnutls_heartbeat_pack,
++  _gnutls_heartbeat_unpack
+ };
+diff -ur gnutls-3.1.4-orig/lib/ext/max_record.c gnutls-3.1.4/lib/ext/max_record.c
+--- gnutls-3.1.4-orig/lib/ext/max_record.c	2012-09-28 11:47:46 -0400
++++ gnutls-3.1.4/lib/ext/max_record.c	2013-06-23 14:16:48 -0400
+@@ -48,15 +48,15 @@
+ 
+ 
+ extension_entry_st ext_mod_max_record_size = {
+-  .name = "MAX RECORD SIZE",
+-  .type = GNUTLS_EXTENSION_MAX_RECORD_SIZE,
+-  .parse_type = GNUTLS_EXT_TLS,
++  "MAX RECORD SIZE",
++  GNUTLS_EXTENSION_MAX_RECORD_SIZE,
++  GNUTLS_EXT_TLS,
+ 
+-  .recv_func = _gnutls_max_record_recv_params,
+-  .send_func = _gnutls_max_record_send_params,
+-  .pack_func = _gnutls_max_record_pack,
+-  .unpack_func = _gnutls_max_record_unpack,
+-  .deinit_func = NULL
++  _gnutls_max_record_recv_params,
++  _gnutls_max_record_send_params,
++  NULL,
++  _gnutls_max_record_pack,
++  _gnutls_max_record_unpack
+ };
+ 
+ /* 
+diff -ur gnutls-3.1.4-orig/lib/ext/safe_renegotiation.c gnutls-3.1.4/lib/ext/safe_renegotiation.c
+--- gnutls-3.1.4-orig/lib/ext/safe_renegotiation.c	2012-09-21 19:26:49 -0400
++++ gnutls-3.1.4/lib/ext/safe_renegotiation.c	2013-06-23 14:16:48 -0400
+@@ -31,15 +31,15 @@
+ static void _gnutls_sr_deinit_data (extension_priv_data_t priv);
+ 
+ extension_entry_st ext_mod_sr = {
+-  .name = "SAFE RENEGOTIATION",
+-  .type = GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
+-  .parse_type = GNUTLS_EXT_MANDATORY,
++  "SAFE RENEGOTIATION",
++  GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
++  GNUTLS_EXT_MANDATORY,
+ 
+-  .recv_func = _gnutls_sr_recv_params,
+-  .send_func = _gnutls_sr_send_params,
+-  .pack_func = NULL,
+-  .unpack_func = NULL,
+-  .deinit_func = _gnutls_sr_deinit_data,
++  _gnutls_sr_recv_params,
++  _gnutls_sr_send_params,
++  _gnutls_sr_deinit_data,
++  NULL,
++  NULL
+ };
+ 
+ int
+diff -ur gnutls-3.1.4-orig/lib/ext/server_name.c gnutls-3.1.4/lib/ext/server_name.c
+--- gnutls-3.1.4-orig/lib/ext/server_name.c	2012-10-31 13:36:34 -0400
++++ gnutls-3.1.4/lib/ext/server_name.c	2013-06-23 14:16:48 -0400
+@@ -40,15 +40,15 @@
+ 
+ 
+ extension_entry_st ext_mod_server_name = {
+-  .name = "SERVER NAME",
+-  .type = GNUTLS_EXTENSION_SERVER_NAME,
+-  .parse_type = GNUTLS_EXT_APPLICATION,
++  "SERVER NAME",
++  GNUTLS_EXTENSION_SERVER_NAME,
++  GNUTLS_EXT_APPLICATION,
+ 
+-  .recv_func = _gnutls_server_name_recv_params,
+-  .send_func = _gnutls_server_name_send_params,
+-  .pack_func = _gnutls_server_name_pack,
+-  .unpack_func = _gnutls_server_name_unpack,
+-  .deinit_func = _gnutls_server_name_deinit_data,
++  _gnutls_server_name_recv_params,
++  _gnutls_server_name_send_params,
++  _gnutls_server_name_deinit_data,
++  _gnutls_server_name_pack,
++  _gnutls_server_name_unpack
+ };
+ 
+ /*
+diff -ur gnutls-3.1.4-orig/lib/ext/session_ticket.c gnutls-3.1.4/lib/ext/session_ticket.c
+--- gnutls-3.1.4-orig/lib/ext/session_ticket.c	2012-09-30 06:52:54 -0400
++++ gnutls-3.1.4/lib/ext/session_ticket.c	2013-06-23 14:16:48 -0400
+@@ -52,15 +52,15 @@
+ static void session_ticket_deinit_data (extension_priv_data_t priv);
+ 
+ extension_entry_st ext_mod_session_ticket = {
+-  .name = "SESSION TICKET",
+-  .type = GNUTLS_EXTENSION_SESSION_TICKET,
+-  .parse_type = GNUTLS_EXT_MANDATORY,
++  "SESSION TICKET",
++  GNUTLS_EXTENSION_SESSION_TICKET,
++  GNUTLS_EXT_MANDATORY,
+ 
+-  .recv_func = session_ticket_recv_params,
+-  .send_func = session_ticket_send_params,
+-  .pack_func = session_ticket_pack,
+-  .unpack_func = session_ticket_unpack,
+-  .deinit_func = session_ticket_deinit_data,
++  session_ticket_recv_params,
++  session_ticket_send_params,
++  session_ticket_deinit_data,
++  session_ticket_pack,
++  session_ticket_unpack
+ };
+ 
+ #define SESSION_KEY_SIZE (SESSION_TICKET_KEY_NAME_SIZE+SESSION_TICKET_KEY_SIZE+SESSION_TICKET_MAC_SECRET_SIZE)
+diff -ur gnutls-3.1.4-orig/lib/ext/signature.c gnutls-3.1.4/lib/ext/signature.c
+--- gnutls-3.1.4-orig/lib/ext/signature.c	2012-09-19 17:13:58 -0400
++++ gnutls-3.1.4/lib/ext/signature.c	2013-06-23 14:16:48 -0400
+@@ -46,15 +46,15 @@
+                                         extension_priv_data_t * _priv);
+ 
+ extension_entry_st ext_mod_sig = {
+-  .name = "SIGNATURE ALGORITHMS",
+-  .type = GNUTLS_EXTENSION_SIGNATURE_ALGORITHMS,
+-  .parse_type = GNUTLS_EXT_TLS,
++  "SIGNATURE ALGORITHMS",
++  GNUTLS_EXTENSION_SIGNATURE_ALGORITHMS,
++  GNUTLS_EXT_TLS,
+ 
+-  .recv_func = _gnutls_signature_algorithm_recv_params,
+-  .send_func = _gnutls_signature_algorithm_send_params,
+-  .pack_func = signature_algorithms_pack,
+-  .unpack_func = signature_algorithms_unpack,
+-  .deinit_func = signature_algorithms_deinit_data,
++  _gnutls_signature_algorithm_recv_params,
++  _gnutls_signature_algorithm_send_params,
++  signature_algorithms_deinit_data,
++  signature_algorithms_pack,
++  signature_algorithms_unpack
+ };
+ 
+ typedef struct
+diff -ur gnutls-3.1.4-orig/lib/ext/srp.c gnutls-3.1.4/lib/ext/srp.c
+--- gnutls-3.1.4-orig/lib/ext/srp.c	2012-10-10 02:29:58 -0400
++++ gnutls-3.1.4/lib/ext/srp.c	2013-06-23 14:16:48 -0400
+@@ -42,15 +42,15 @@
+ static int _gnutls_srp_send_params (gnutls_session_t state, gnutls_buffer_st * extdata);
+ 
+ extension_entry_st ext_mod_srp = {
+-  .name = "SRP",
+-  .type = GNUTLS_EXTENSION_SRP,
+-  .parse_type = GNUTLS_EXT_TLS,
++  "SRP",
++  GNUTLS_EXTENSION_SRP,
++  GNUTLS_EXT_TLS,
+ 
+-  .recv_func = _gnutls_srp_recv_params,
+-  .send_func = _gnutls_srp_send_params,
+-  .pack_func = _gnutls_srp_pack,
+-  .unpack_func = _gnutls_srp_unpack,
+-  .deinit_func = _gnutls_srp_deinit_data
++  _gnutls_srp_recv_params,
++  _gnutls_srp_send_params,
++  _gnutls_srp_deinit_data,
++  _gnutls_srp_pack,
++  _gnutls_srp_unpack
+ };
+ 
+ 
+diff -ur gnutls-3.1.4-orig/lib/ext/srtp.c gnutls-3.1.4/lib/ext/srtp.c
+--- gnutls-3.1.4-orig/lib/ext/srtp.c	2012-11-06 17:19:19 -0500
++++ gnutls-3.1.4/lib/ext/srtp.c	2013-06-23 14:16:48 -0400
+@@ -41,15 +41,15 @@
+ 
+ 
+ extension_entry_st ext_mod_srtp = {
+-  .name = "SRTP",
+-  .type = GNUTLS_EXTENSION_SRTP,
+-  .parse_type = GNUTLS_EXT_APPLICATION,
++  "SRTP",
++  GNUTLS_EXTENSION_SRTP,
++  GNUTLS_EXT_APPLICATION,
+ 
+-  .recv_func = _gnutls_srtp_recv_params,
+-  .send_func = _gnutls_srtp_send_params,
+-  .pack_func = _gnutls_srtp_pack,
+-  .unpack_func = _gnutls_srtp_unpack,
+-  .deinit_func = _gnutls_srtp_deinit_data,
++  _gnutls_srtp_recv_params,
++  _gnutls_srtp_send_params,
++  _gnutls_srtp_deinit_data,
++  _gnutls_srtp_pack,
++  _gnutls_srtp_unpack
+ };
+ 
+ typedef struct
+diff -ur gnutls-3.1.4-orig/lib/ext/status_request.c gnutls-3.1.4/lib/ext/status_request.c
+--- gnutls-3.1.4-orig/lib/ext/status_request.c	2012-10-10 02:30:07 -0400
++++ gnutls-3.1.4/lib/ext/status_request.c	2013-06-23 14:16:48 -0400
+@@ -500,14 +500,14 @@
+ }
+ 
+ extension_entry_st ext_mod_status_request = {
+-  .name = "STATUS REQUEST",
+-  .type = GNUTLS_EXTENSION_STATUS_REQUEST,
+-  .parse_type = GNUTLS_EXT_TLS,
+-  .recv_func = _gnutls_status_request_recv_params,
+-  .send_func = _gnutls_status_request_send_params,
+-  .pack_func = _gnutls_status_request_pack,
+-  .unpack_func = _gnutls_status_request_unpack,
+-  .deinit_func = _gnutls_status_request_deinit_data
++  "STATUS REQUEST",
++  GNUTLS_EXTENSION_STATUS_REQUEST,
++  GNUTLS_EXT_TLS,
++  _gnutls_status_request_recv_params,
++  _gnutls_status_request_send_params,
++  _gnutls_status_request_deinit_data,
++  _gnutls_status_request_pack,
++  _gnutls_status_request_unpack
+ };
+ 
+ /* Functions to be called from handshake */
+diff -ur gnutls-3.1.4-orig/lib/extras/Makefile.am gnutls-3.1.4/lib/extras/Makefile.am
+--- gnutls-3.1.4-orig/lib/extras/Makefile.am	2012-04-12 16:05:11 -0400
++++ gnutls-3.1.4/lib/extras/Makefile.am	2013-06-23 14:16:48 -0400
+@@ -20,6 +20,7 @@
+ 
+ AM_CFLAGS = $(WERROR_CFLAGS) $(WSTACK_CFLAGS) $(WARN_CFLAGS)
+ AM_CPPFLAGS = \
++	-DGNUTLS_BUILDING		\
+ 	-I$(srcdir)/../../gl		\
+ 	-I$(builddir)/../../gl		\
+ 	-I$(srcdir)/../includes		\
+diff -ur gnutls-3.1.4-orig/lib/gnutls_cipher.c gnutls-3.1.4/lib/gnutls_cipher.c
+--- gnutls-3.1.4-orig/lib/gnutls_cipher.c	2012-09-19 17:13:58 -0400
++++ gnutls-3.1.4/lib/gnutls_cipher.c	2013-06-23 14:16:48 -0400
+@@ -463,7 +463,7 @@
+        */
+       if (explicit_iv && _gnutls_auth_cipher_is_aead(&params->read.cipher_state))
+         {
+-          uint8_t nonce[blocksize];
++          uint8_t * nonce;
+           /* Values in AEAD are pretty fixed in TLS 1.2 for 128-bit block
+            */
+           if (params->read.IV.data == NULL || params->read.IV.size != 4)
+@@ -472,6 +472,7 @@
+           if (ciphertext->size < tag_size+AEAD_EXPLICIT_DATA_SIZE)
+             return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ 
++          nonce = (uint8_t *) malloc (sizeof (uint8_t) * blocksize);
+           memcpy(nonce, params->read.IV.data, AEAD_IMPLICIT_DATA_SIZE);
+           memcpy(&nonce[AEAD_IMPLICIT_DATA_SIZE], ciphertext->data, AEAD_EXPLICIT_DATA_SIZE);
+           
+@@ -481,6 +482,7 @@
+           ciphertext->size -= AEAD_EXPLICIT_DATA_SIZE;
+           
+           length_to_decrypt = ciphertext->size - tag_size;
++          free (nonce);
+         }
+       else
+         {
+diff -ur gnutls-3.1.4-orig/lib/gnutls_mpi.h gnutls-3.1.4/lib/gnutls_mpi.h
+--- gnutls-3.1.4-orig/lib/gnutls_mpi.h	2012-09-19 17:13:58 -0400
++++ gnutls-3.1.4/lib/gnutls_mpi.h	2013-06-23 14:16:48 -0400
+@@ -28,7 +28,7 @@
+ #include <crypto-backend.h>
+ 
+ extern int crypto_bigint_prio;
+-extern gnutls_crypto_bigint_st _gnutls_mpi_ops;
++extern GNUTLS_EXPORTED gnutls_crypto_bigint_st _gnutls_mpi_ops;
+ 
+ bigint_t _gnutls_mpi_randomize (bigint_t, unsigned int bits,
+                                 gnutls_rnd_level_t level);
+diff -ur gnutls-3.1.4-orig/lib/gnutls_x509.c gnutls-3.1.4/lib/gnutls_x509.c
+--- gnutls-3.1.4-orig/lib/gnutls_x509.c	2012-11-09 11:21:05 -0500
++++ gnutls-3.1.4/lib/gnutls_x509.c	2013-06-23 14:16:48 -0400
+@@ -1591,8 +1591,10 @@
+                                    int ca_list_size)
+ {
+   int ret, i, j;
+-  gnutls_x509_crt_t new_list[ca_list_size];
++  gnutls_x509_crt_t * new_list;
+ 
++  new_list = (gnutls_x509_crt_t *) malloc (sizeof (gnutls_x509_crt_t) *
++                                           ca_list_size);
+   for (i = 0; i < ca_list_size; i++)
+     {
+       ret = gnutls_x509_crt_init (&new_list[i]);
+@@ -1623,12 +1625,16 @@
+       goto cleanup;
+     }
+ 
++  free (new_list);
++
+   return ret;
+ 
+ cleanup:
+   for (j=0;j<i;i++)
+     gnutls_x509_crt_deinit(new_list[j]);
+ 
++  free (new_list);
++
+   return ret;
+ }
+ 
+@@ -1856,7 +1862,10 @@
+                                  int crl_list_size)
+ {
+   int ret, i, j;
+-  gnutls_x509_crl_t new_crl[crl_list_size];
++  gnutls_x509_crl_t * new_crl;
++
++  new_crl = (gnutls_x509_crl_t *) malloc (sizeof (gnutls_x509_crl_t) *
++                                          crl_list_size);
+ 
+   for (i = 0; i < crl_list_size; i++)
+     {
+@@ -1882,12 +1891,16 @@
+       goto cleanup;
+     }
+ 
++  free (new_crl);
++
+   return ret;
+ 
+ cleanup:
+   for (j=0;j<i;j++)
+     gnutls_x509_crl_deinit(new_crl[j]);
+ 
++  free (new_crl);
++
+   return ret;
+ }
+ 
+diff -ur gnutls-3.1.4-orig/lib/includes/gnutls/gnutls.h.in gnutls-3.1.4/lib/includes/gnutls/gnutls.h.in
+--- gnutls-3.1.4-orig/lib/includes/gnutls/gnutls.h.in	2012-11-08 11:54:29 -0500
++++ gnutls-3.1.4/lib/includes/gnutls/gnutls.h.in	2013-06-23 14:16:48 -0400
+@@ -36,6 +36,16 @@
+ #ifndef GNUTLS_H
+ #define GNUTLS_H
+ 
++#ifdef _MSC_VER
++# ifdef GNUTLS_BUILDING
++#  define GNUTLS_EXPORTED __declspec(dllexport)
++# else
++#  define GNUTLS_EXPORTED __declspec(dllimport)
++# endif
++#else
++# define GNUTLS_EXPORTED
++#endif
++
+ /* Get size_t. */
+ #include <stddef.h>
+ /* Get ssize_t. */
+@@ -1316,13 +1326,13 @@
+   void gnutls_global_set_time_function (gnutls_time_func time_func);
+ 
+ /* For use in callbacks */
+-  extern gnutls_alloc_function gnutls_malloc;
+-  extern gnutls_alloc_function gnutls_secure_malloc;
+-  extern gnutls_realloc_function gnutls_realloc;
+-  extern gnutls_calloc_function gnutls_calloc;
+-  extern gnutls_free_function gnutls_free;
++  extern GNUTLS_EXPORTED gnutls_alloc_function gnutls_malloc;
++  extern GNUTLS_EXPORTED gnutls_alloc_function gnutls_secure_malloc;
++  extern GNUTLS_EXPORTED gnutls_realloc_function gnutls_realloc;
++  extern GNUTLS_EXPORTED gnutls_calloc_function gnutls_calloc;
++  extern GNUTLS_EXPORTED gnutls_free_function gnutls_free;
+ 
+-  extern char *(*gnutls_strdup) (const char *);
++  extern GNUTLS_EXPORTED char *(*gnutls_strdup) (const char *);
+ 
+   typedef void (*gnutls_log_func) (int, const char *);
+   typedef void (*gnutls_audit_log_func) (gnutls_session_t, const char *);
+@@ -1474,20 +1484,20 @@
+ /* The static parameters defined in draft-ietf-tls-srp-05
+  * Those should be used as input to gnutls_srp_verifier().
+  */
+-  extern const gnutls_datum_t gnutls_srp_4096_group_prime;
+-  extern const gnutls_datum_t gnutls_srp_4096_group_generator;
++  extern GNUTLS_EXPORTED const gnutls_datum_t gnutls_srp_4096_group_prime;
++  extern GNUTLS_EXPORTED const gnutls_datum_t gnutls_srp_4096_group_generator;
+ 
+-  extern const gnutls_datum_t gnutls_srp_3072_group_prime;
+-  extern const gnutls_datum_t gnutls_srp_3072_group_generator;
++  extern GNUTLS_EXPORTED const gnutls_datum_t gnutls_srp_3072_group_prime;
++  extern GNUTLS_EXPORTED const gnutls_datum_t gnutls_srp_3072_group_generator;
+ 
+-  extern const gnutls_datum_t gnutls_srp_2048_group_prime;
+-  extern const gnutls_datum_t gnutls_srp_2048_group_generator;
++  extern GNUTLS_EXPORTED const gnutls_datum_t gnutls_srp_2048_group_prime;
++  extern GNUTLS_EXPORTED const gnutls_datum_t gnutls_srp_2048_group_generator;
+ 
+-  extern const gnutls_datum_t gnutls_srp_1536_group_prime;
+-  extern const gnutls_datum_t gnutls_srp_1536_group_generator;
++  extern GNUTLS_EXPORTED const gnutls_datum_t gnutls_srp_1536_group_prime;
++  extern GNUTLS_EXPORTED const gnutls_datum_t gnutls_srp_1536_group_generator;
+ 
+-  extern const gnutls_datum_t gnutls_srp_1024_group_prime;
+-  extern const gnutls_datum_t gnutls_srp_1024_group_generator;
++  extern GNUTLS_EXPORTED const gnutls_datum_t gnutls_srp_1024_group_prime;
++  extern GNUTLS_EXPORTED const gnutls_datum_t gnutls_srp_1024_group_generator;
+ 
+   typedef int gnutls_srp_server_credentials_function (gnutls_session_t,
+                                                       const char *username,
+diff -ur gnutls-3.1.4-orig/lib/includes/gnutls/gnutlsxx.h gnutls-3.1.4/lib/includes/gnutls/gnutlsxx.h
+--- gnutls-3.1.4-orig/lib/includes/gnutls/gnutlsxx.h	2012-04-25 06:03:29 -0400
++++ gnutls-3.1.4/lib/includes/gnutls/gnutlsxx.h	2013-06-23 14:16:48 -0400
+@@ -27,10 +27,20 @@
+ #include <vector>
+ #include <gnutls/gnutls.h>
+ 
++#ifdef _MSC_VER
++# ifdef GNUTLSXX_BUILDING
++#  define GNUTLSXX_EXPORTED __declspec(dllexport)
++# else
++#  define GNUTLSXX_EXPORTED __declspec(dllimport)
++# endif
++#else
++# define GNUTLSXX_EXPORTED
++#endif
++
+ namespace gnutls
+ {
+ 
+-  class noncopyable
++  class GNUTLSXX_EXPORTED noncopyable
+   {
+   protected:
+     noncopyable ()
+@@ -47,7 +57,7 @@
+   };
+ 
+ 
+-  class exception:public std::exception
++  class GNUTLSXX_EXPORTED exception:public std::exception
+   {
+   public:
+     exception (int x);
+@@ -58,7 +68,7 @@
+   };
+ 
+ 
+-  class dh_params:private noncopyable
++  class GNUTLSXX_EXPORTED dh_params:private noncopyable
+   {
+   public:
+     dh_params ();
+@@ -80,7 +90,7 @@
+   };
+ 
+ 
+-  class rsa_params:private noncopyable
++  class GNUTLSXX_EXPORTED rsa_params:private noncopyable
+   {
+   public:
+     rsa_params ();
+@@ -106,7 +116,7 @@
+       gnutls_rsa_params_t params;
+   };
+ 
+-  class session:private noncopyable
++  class GNUTLSXX_EXPORTED session:private noncopyable
+   {
+   protected:
+     gnutls_session_t s;
+@@ -220,10 +230,14 @@
+   };
+ 
+ // interface for databases
+-  class DB:private noncopyable
++  class GNUTLSXX_EXPORTED DB:private noncopyable
+   {
+   public:
++#ifdef _MSC_VER
++    virtual ~ DB () { };
++#else
+     virtual ~ DB () = 0;
++#endif
+     virtual bool store (const gnutls_datum_t & key,
+                         const gnutls_datum_t & data) = 0;
+     virtual bool retrieve (const gnutls_datum_t & key,
+@@ -231,7 +245,7 @@
+     virtual bool remove (const gnutls_datum_t & key) = 0;
+   };
+ 
+-  class server_session:public session
++  class GNUTLSXX_EXPORTED server_session:public session
+   {
+   public:
+     server_session ();
+@@ -255,7 +269,7 @@
+     void set_certificate_request (gnutls_certificate_request_t);
+   };
+ 
+-  class client_session:public session
++  class GNUTLSXX_EXPORTED client_session:public session
+   {
+   public:
+     client_session ();
+@@ -268,7 +282,7 @@
+   };
+ 
+ 
+-  class credentials:private noncopyable
++  class GNUTLSXX_EXPORTED credentials:private noncopyable
+   {
+   public:
+     virtual ~ credentials ()
+@@ -285,7 +299,7 @@
+     void *cred;
+   };
+ 
+-  class certificate_credentials:public credentials
++  class GNUTLSXX_EXPORTED certificate_credentials:public credentials
+   {
+   public:
+     ~certificate_credentials ();
+@@ -332,13 +346,13 @@
+       gnutls_certificate_credentials_t cred;
+   };
+ 
+-  class certificate_server_credentials:public certificate_credentials
++  class GNUTLSXX_EXPORTED certificate_server_credentials:public certificate_credentials
+   {
+   public:
+     void set_params_function (gnutls_params_function * func);
+   };
+ 
+-  class certificate_client_credentials:public certificate_credentials
++  class GNUTLSXX_EXPORTED certificate_client_credentials:public certificate_credentials
+   {
+   public:
+   };
+@@ -346,7 +360,7 @@
+ 
+ 
+ 
+-  class anon_server_credentials:public credentials
++  class GNUTLSXX_EXPORTED anon_server_credentials:public credentials
+   {
+   public:
+     anon_server_credentials ();
+@@ -357,7 +371,7 @@
+       gnutls_anon_server_credentials_t cred;
+   };
+ 
+-  class anon_client_credentials:public credentials
++  class GNUTLSXX_EXPORTED anon_client_credentials:public credentials
+   {
+   public:
+     anon_client_credentials ();
+@@ -367,7 +381,7 @@
+   };
+ 
+ 
+-  class srp_server_credentials:public credentials
++  class GNUTLSXX_EXPORTED srp_server_credentials:public credentials
+   {
+   public:
+     srp_server_credentials ();
+@@ -380,7 +394,7 @@
+       gnutls_srp_server_credentials_t cred;
+   };
+ 
+-  class srp_client_credentials:public credentials
++  class GNUTLSXX_EXPORTED srp_client_credentials:public credentials
+   {
+   public:
+     srp_client_credentials ();
+@@ -393,7 +407,7 @@
+   };
+ 
+ 
+-  class psk_server_credentials:public credentials
++  class GNUTLSXX_EXPORTED psk_server_credentials:public credentials
+   {
+   public:
+     psk_server_credentials ();
+@@ -407,7 +421,7 @@
+       gnutls_psk_server_credentials_t cred;
+   };
+ 
+-  class psk_client_credentials:public credentials
++  class GNUTLSXX_EXPORTED psk_client_credentials:public credentials
+   {
+   public:
+     psk_client_credentials ();
+diff -ur gnutls-3.1.4-orig/lib/minitasn1/Makefile.am gnutls-3.1.4/lib/minitasn1/Makefile.am
+--- gnutls-3.1.4-orig/lib/minitasn1/Makefile.am	2012-10-08 10:36:07 -0400
++++ gnutls-3.1.4/lib/minitasn1/Makefile.am	2013-06-23 14:16:48 -0400
+@@ -21,6 +21,8 @@
+ # MA 02110-1301, USA
+ 
+ AM_CPPFLAGS = -DASN1_BUILDING		\
++	-DASN1_STATIC			\
++	-DGNUTLS_BUILDING		\
+ 	-I$(srcdir)/../../gl		\
+ 	-I$(builddir)/../../gl          \
+ 	-I$(srcdir)/..
+diff -ur gnutls-3.1.4-orig/lib/nettle/Makefile.am gnutls-3.1.4/lib/nettle/Makefile.am
+--- gnutls-3.1.4-orig/lib/nettle/Makefile.am	2012-09-02 15:08:16 -0400
++++ gnutls-3.1.4/lib/nettle/Makefile.am	2013-06-23 14:16:48 -0400
+@@ -20,6 +20,7 @@
+ 
+ AM_CFLAGS = $(WERROR_CFLAGS) $(WSTACK_CFLAGS) $(WARN_CFLAGS)
+ AM_CPPFLAGS = \
++	-DGNUTLS_BUILDING		\
+ 	-I$(srcdir)/../../gl		\
+ 	-I$(builddir)/../../gl		\
+ 	-I$(srcdir)/../includes		\
+diff -ur gnutls-3.1.4-orig/lib/nettle/cipher.c gnutls-3.1.4/lib/nettle/cipher.c
+--- gnutls-3.1.4-orig/lib/nettle/cipher.c	2012-09-19 17:13:58 -0400
++++ gnutls-3.1.4/lib/nettle/cipher.c	2013-06-23 14:16:48 -0400
+@@ -369,13 +369,13 @@
+ }
+ 
+ gnutls_crypto_cipher_st _gnutls_cipher_ops = {
+-  .init = wrap_nettle_cipher_init,
+-  .exists = wrap_nettle_cipher_exists,
+-  .setiv = wrap_nettle_cipher_setiv,
+-  .setkey = wrap_nettle_cipher_setkey,
+-  .encrypt = wrap_nettle_cipher_encrypt,
+-  .decrypt = wrap_nettle_cipher_decrypt,
+-  .deinit = wrap_nettle_cipher_close,
+-  .auth = wrap_nettle_cipher_auth,
+-  .tag = wrap_nettle_cipher_tag,
++  wrap_nettle_cipher_init,
++  wrap_nettle_cipher_setkey,
++  wrap_nettle_cipher_setiv,
++  wrap_nettle_cipher_encrypt,
++  wrap_nettle_cipher_decrypt,
++  wrap_nettle_cipher_auth,
++  wrap_nettle_cipher_tag,
++  wrap_nettle_cipher_close,
++  wrap_nettle_cipher_exists
+ };
+diff -ur gnutls-3.1.4-orig/lib/nettle/mac.c gnutls-3.1.4/lib/nettle/mac.c
+--- gnutls-3.1.4-orig/lib/nettle/mac.c	2012-09-19 17:13:58 -0400
++++ gnutls-3.1.4/lib/nettle/mac.c	2013-06-23 14:16:48 -0400
+@@ -424,22 +424,22 @@
+ 
+ 
+ gnutls_crypto_mac_st _gnutls_mac_ops = {
+-  .init = wrap_nettle_hmac_init,
+-  .setkey = wrap_nettle_hmac_setkey,
+-  .hash = wrap_nettle_hmac_update,
+-  .reset = wrap_nettle_hmac_reset,
+-  .output = wrap_nettle_hmac_output,
+-  .deinit = wrap_nettle_hmac_deinit,
+-  .fast = wrap_nettle_hmac_fast,
+-  .exists = wrap_nettle_hmac_exists,
++  wrap_nettle_hmac_init,
++  wrap_nettle_hmac_setkey,
++  wrap_nettle_hmac_reset,
++  wrap_nettle_hmac_update,
++  wrap_nettle_hmac_output,
++  wrap_nettle_hmac_deinit,
++  wrap_nettle_hmac_fast,
++  wrap_nettle_hmac_exists
+ };
+ 
+ gnutls_crypto_digest_st _gnutls_digest_ops = {
+-  .init = wrap_nettle_hash_init,
+-  .hash = wrap_nettle_hash_update,
+-  .reset = wrap_nettle_hash_reset,
+-  .output = wrap_nettle_hash_output,
+-  .deinit = wrap_nettle_hash_deinit,
+-  .fast = wrap_nettle_hash_fast,
+-  .exists = wrap_nettle_hash_exists,
++  wrap_nettle_hash_init,
++  wrap_nettle_hash_reset,
++  wrap_nettle_hash_update,
++  wrap_nettle_hash_output,
++  wrap_nettle_hash_deinit,
++  wrap_nettle_hash_fast,
++  wrap_nettle_hash_exists
+ };
+diff -ur gnutls-3.1.4-orig/lib/nettle/mpi.c gnutls-3.1.4/lib/nettle/mpi.c
+--- gnutls-3.1.4-orig/lib/nettle/mpi.c	2012-09-19 17:13:58 -0400
++++ gnutls-3.1.4/lib/nettle/mpi.c	2013-06-23 14:16:48 -0400
+@@ -616,27 +616,27 @@
+ int crypto_bigint_prio = INT_MAX;
+ 
+ gnutls_crypto_bigint_st _gnutls_mpi_ops = {
+-  .bigint_new = wrap_nettle_mpi_new,
+-  .bigint_cmp = wrap_nettle_mpi_cmp,
+-  .bigint_cmp_ui = wrap_nettle_mpi_cmp_ui,
+-  .bigint_mod = wrap_nettle_mpi_mod,
+-  .bigint_set = wrap_nettle_mpi_set,
+-  .bigint_set_ui = wrap_nettle_mpi_set_ui,
+-  .bigint_get_nbits = wrap_nettle_mpi_get_nbits,
+-  .bigint_powm = wrap_nettle_mpi_powm,
+-  .bigint_addm = wrap_nettle_mpi_addm,
+-  .bigint_subm = wrap_nettle_mpi_subm,
+-  .bigint_add = wrap_nettle_mpi_add,
+-  .bigint_sub = wrap_nettle_mpi_sub,
+-  .bigint_add_ui = wrap_nettle_mpi_add_ui,
+-  .bigint_sub_ui = wrap_nettle_mpi_sub_ui,
+-  .bigint_mul = wrap_nettle_mpi_mul,
+-  .bigint_mulm = wrap_nettle_mpi_mulm,
+-  .bigint_mul_ui = wrap_nettle_mpi_mul_ui,
+-  .bigint_div = wrap_nettle_mpi_div,
+-  .bigint_prime_check = wrap_nettle_prime_check,
+-  .bigint_release = wrap_nettle_mpi_release,
+-  .bigint_print = wrap_nettle_mpi_print,
+-  .bigint_scan = wrap_nettle_mpi_scan,
+-  .bigint_generate_group = wrap_nettle_generate_group
++  wrap_nettle_mpi_new,
++  wrap_nettle_mpi_release,
++  wrap_nettle_mpi_cmp,
++  wrap_nettle_mpi_cmp_ui,
++  wrap_nettle_mpi_mod,
++  wrap_nettle_mpi_set,
++  wrap_nettle_mpi_set_ui,
++  wrap_nettle_mpi_get_nbits,
++  wrap_nettle_mpi_powm,
++  wrap_nettle_mpi_addm,
++  wrap_nettle_mpi_subm,
++  wrap_nettle_mpi_mulm,
++  wrap_nettle_mpi_add,
++  wrap_nettle_mpi_sub,
++  wrap_nettle_mpi_mul,
++  wrap_nettle_mpi_add_ui,
++  wrap_nettle_mpi_sub_ui,
++  wrap_nettle_mpi_mul_ui,
++  wrap_nettle_mpi_div,
++  wrap_nettle_prime_check,
++  wrap_nettle_generate_group,
++  wrap_nettle_mpi_scan,
++  wrap_nettle_mpi_print
+ };
+diff -ur gnutls-3.1.4-orig/lib/nettle/pk.c gnutls-3.1.4/lib/nettle/pk.c
+--- gnutls-3.1.4-orig/lib/nettle/pk.c	2012-09-21 19:38:14 -0400
++++ gnutls-3.1.4/lib/nettle/pk.c	2013-06-23 14:16:49 -0400
+@@ -1134,13 +1134,13 @@
+ int crypto_pk_prio = INT_MAX;
+ 
+ gnutls_crypto_pk_st _gnutls_pk_ops = {
+-  .hash_algorithm = wrap_nettle_hash_algorithm,
+-  .encrypt = _wrap_nettle_pk_encrypt,
+-  .decrypt = _wrap_nettle_pk_decrypt,
+-  .sign = _wrap_nettle_pk_sign,
+-  .verify = _wrap_nettle_pk_verify,
+-  .verify_params = wrap_nettle_pk_verify_params,
+-  .generate = wrap_nettle_pk_generate_params,
+-  .pk_fixup_private_params = wrap_nettle_pk_fixup,
+-  .derive = _wrap_nettle_pk_derive,
++  _wrap_nettle_pk_encrypt,
++  _wrap_nettle_pk_decrypt,
++  _wrap_nettle_pk_sign,
++  _wrap_nettle_pk_verify,
++  wrap_nettle_hash_algorithm,
++  wrap_nettle_pk_verify_params,
++  wrap_nettle_pk_generate_params,
++  wrap_nettle_pk_fixup,
++  _wrap_nettle_pk_derive
+ };
+diff -ur gnutls-3.1.4-orig/lib/nettle/rnd.c gnutls-3.1.4/lib/nettle/rnd.c
+--- gnutls-3.1.4-orig/lib/nettle/rnd.c	2012-09-19 17:13:58 -0400
++++ gnutls-3.1.4/lib/nettle/rnd.c	2013-06-23 14:16:49 -0400
+@@ -471,7 +471,7 @@
+ int crypto_rnd_prio = INT_MAX;
+ 
+ gnutls_crypto_rnd_st _gnutls_rnd_ops = {
+-  .init = wrap_nettle_rnd_init,
+-  .deinit = wrap_nettle_rnd_deinit,
+-  .rnd = wrap_nettle_rnd,
++  wrap_nettle_rnd_init,
++  wrap_nettle_rnd,
++  wrap_nettle_rnd_deinit
+ };
+diff -ur gnutls-3.1.4-orig/lib/opencdk/Makefile.am gnutls-3.1.4/lib/opencdk/Makefile.am
+--- gnutls-3.1.4-orig/lib/opencdk/Makefile.am	2012-04-12 16:05:11 -0400
++++ gnutls-3.1.4/lib/opencdk/Makefile.am	2013-06-23 14:16:49 -0400
+@@ -19,6 +19,7 @@
+ # along with this program.  If not, see <http://www.gnu.org/licenses/>
+ 
+ AM_CPPFLAGS = \
++	-DGNUTLS_BUILDING		\
+ 	-I$(srcdir)/../../gl		\
+ 	-I$(builddir)/../../gl		\
+ 	-I$(srcdir)/../includes		\
+diff -ur gnutls-3.1.4-orig/lib/openpgp/Makefile.am gnutls-3.1.4/lib/openpgp/Makefile.am
+--- gnutls-3.1.4-orig/lib/openpgp/Makefile.am	2012-04-12 16:05:11 -0400
++++ gnutls-3.1.4/lib/openpgp/Makefile.am	2013-06-23 14:16:49 -0400
+@@ -20,6 +20,7 @@
+ 
+ AM_CFLAGS = $(WERROR_CFLAGS) $(WSTACK_CFLAGS) $(WARN_CFLAGS)
+ AM_CPPFLAGS = \
++	-DGNUTLS_BUILDING		\
+ 	-I$(srcdir)/../../gl		\
+ 	-I$(builddir)/../../gl		\
+ 	-I$(srcdir)/../includes		\
+diff -ur gnutls-3.1.4-orig/lib/x509/Makefile.am gnutls-3.1.4/lib/x509/Makefile.am
+--- gnutls-3.1.4-orig/lib/x509/Makefile.am	2012-06-28 16:12:15 -0400
++++ gnutls-3.1.4/lib/x509/Makefile.am	2013-06-23 14:16:49 -0400
+@@ -18,6 +18,7 @@
+ 
+ AM_CFLAGS = $(WERROR_CFLAGS) $(WSTACK_CFLAGS) $(WARN_CFLAGS)
+ AM_CPPFLAGS = \
++	-DGNUTLS_BUILDING		\
+ 	-I$(srcdir)/../../gl		\
+ 	-I$(builddir)/../../gl		\
+ 	-I$(srcdir)/../includes		\
+diff -ur gnutls-3.1.4-orig/src/libopts/autoopts/options.h gnutls-3.1.4/src/libopts/autoopts/options.h
+--- gnutls-3.1.4-orig/src/libopts/autoopts/options.h	2012-05-14 11:35:38 -0400
++++ gnutls-3.1.4/src/libopts/autoopts/options.h	2013-06-23 14:16:49 -0400
+@@ -52,7 +52,7 @@
+ 
+ #  if defined(HAVE_STDBOOL_H)
+ #    include <stdbool.h>
+-#  else
++#  elif !defined(_GL_STDBOOL_H)
+      typedef enum { false = 0, true = 1 } _Bool;
+ #    define bool _Bool
+ 
+diff -ur gnutls-3.1.4-orig/src/libopts/autoopts.c gnutls-3.1.4/src/libopts/autoopts.c
+--- gnutls-3.1.4-orig/src/libopts/autoopts.c	2012-05-14 11:35:38 -0400
++++ gnutls-3.1.4/src/libopts/autoopts.c	2013-06-23 14:16:49 -0400
+@@ -105,8 +105,15 @@
+ #  include "compat/pathfind.c"
+ #endif
+ 
++#ifdef _MSC_VER
++#  define fprintf _fprintf_p
++#  define snprintf _sprintf_p
++#endif
++
+ #ifndef HAVE_SNPRINTF
+-#  include "compat/snprintf.c"
++#  ifndef _MSC_VER
++#    include "compat/snprintf.c"
++#  endif
+ #endif
+ 
+ #ifndef HAVE_STRDUP
+diff -ur gnutls-3.1.4-orig/src/libopts/compat/compat.h gnutls-3.1.4/src/libopts/compat/compat.h
+--- gnutls-3.1.4-orig/src/libopts/compat/compat.h	2012-05-14 11:35:38 -0400
++++ gnutls-3.1.4/src/libopts/compat/compat.h	2013-06-23 14:16:49 -0400
+@@ -77,7 +77,9 @@
+ #ifdef HAVE_SYS_MMAN_H
+ #  include <sys/mman.h>
+ #endif
+-#include <sys/param.h>
++#if HAVE_SYS_PARAM_H
++#  include <sys/param.h>
++#endif
+ #if HAVE_SYS_PROCSET_H
+ #  include <sys/procset.h>
+ #endif
+@@ -346,7 +348,9 @@
+ # define  HAVE_WINT_T           1
+ #endif
+ #ifndef HAVE_PID_T
++#  ifndef pid_t
+   typedef signed int            pid_t;
++#  endif
+ # define  HAVE_PID_T            1
+ #endif
+ 
+diff -ur gnutls-3.1.4-orig/src/libopts/compat/pathfind.c gnutls-3.1.4/src/libopts/compat/pathfind.c
+--- gnutls-3.1.4-orig/src/libopts/compat/pathfind.c	2012-05-14 11:35:38 -0400
++++ gnutls-3.1.4/src/libopts/compat/pathfind.c	2013-06-23 14:16:49 -0400
+@@ -11,6 +11,11 @@
+ 
+ #include "compat.h"
+ #ifndef HAVE_PATHFIND
++#if defined(_MSC_VER) && !defined(R_OK)
++# define X_OK 1
++# define W_OK 2
++# define R_OK 4
++#endif
+ #if defined(__windows__) && !defined(__CYGWIN__)
+ char*
+ pathfind( char const*  path,
+diff -ur gnutls-3.1.4-orig/src/libopts/configfile.c gnutls-3.1.4/src/libopts/configfile.c
+--- gnutls-3.1.4-orig/src/libopts/configfile.c	2012-05-14 11:35:38 -0400
++++ gnutls-3.1.4/src/libopts/configfile.c	2013-06-23 14:16:49 -0400
+@@ -26,6 +26,11 @@
+  *  66a5cedaf62c4b2637025f049f9b826f pkg/libopts/COPYING.mbsd
+  */
+ 
++#ifndef S_ISDIR
++#  define S_ISDIR(m)      (((m) & _S_IFMT) == _S_IFDIR)
++#  define S_ISREG(m)      (((m) & _S_IFMT) == _S_IFREG)
++#endif
++
+ /* = = = START-STATIC-FORWARD = = = */
+ static void
+ file_preset(tOptions * opts, char const * fname, int dir);
+diff -ur gnutls-3.1.4-orig/src/libopts/enum.c gnutls-3.1.4/src/libopts/enum.c
+--- gnutls-3.1.4-orig/src/libopts/enum.c	2012-05-14 11:35:38 -0400
++++ gnutls-3.1.4/src/libopts/enum.c	2013-06-23 14:16:49 -0400
+@@ -249,9 +249,9 @@
+ char const *
+ optionKeywordName(tOptDesc * pOD, unsigned int enum_val)
+ {
+-    tOptDesc od = {
+-        .optArg.argEnum = enum_val };
++    tOptDesc od = { 0 };
+ 
++    od.optArg.argEnum = enum_val;
+     (*(pOD->pOptProc))(OPTPROC_RETURN_VALNAME, &od );
+     return od.optArg.argString;
+ }
+diff -ur gnutls-3.1.4-orig/src/tests.c gnutls-3.1.4/src/tests.c
+--- gnutls-3.1.4-orig/src/tests.c	2012-09-02 15:08:16 -0400
++++ gnutls-3.1.4/src/tests.c	2013-06-23 14:16:49 -0400
+@@ -180,7 +180,7 @@
+ 
+ 
+ static int export_true = 0;
+-static gnutls_datum_t exp = { NULL, 0 }, mod =
++static gnutls_datum_t _exp = { NULL, 0 }, mod =
+ 
+ {
+ NULL, 0};
+@@ -202,7 +202,7 @@
+   if (ret == TEST_SUCCEED)
+     {
+       export_true = 1;
+-      gnutls_rsa_export_get_pubkey (session, &exp, &mod);
++      gnutls_rsa_export_get_pubkey (session, &_exp, &mod);
+     }
+ 
+   return ret;
+@@ -242,9 +242,9 @@
+           if (print)
+             printf (" Modulus [%d bits]: %s\n", mod2.size * 8, print);
+ 
+-          if (mod2.size != mod.size || exp2.size != exp.size ||
++          if (mod2.size != mod.size || exp2.size != _exp.size ||
+               memcmp (mod2.data, mod.data, mod.size) != 0 ||
+-              memcmp (exp2.data, exp.data, exp.size) != 0)
++              memcmp (exp2.data, _exp.data, _exp.size) != 0)
+             {
+               printf
+                 (" (server uses different public keys per connection)\n");
+diff -ur gnutls-3.1.4-orig/tests/cert-tests/dane gnutls-3.1.4/tests/cert-tests/dane
+--- gnutls-3.1.4-orig/tests/cert-tests/dane	2012-11-09 18:54:04 -0500
++++ gnutls-3.1.4/tests/cert-tests/dane	2013-06-23 14:16:49 -0400
+@@ -25,6 +25,10 @@
+ srcdir=${srcdir:-.}
+ DANETOOL=${DANETOOL:-../../src/danetool$EXEEXT}
+ 
++if test ! -x "$DANETOOL"; then
++  exit 77
++fi
++
+ $DANETOOL --tlsa-rr --load-certificate $srcdir/cert-ecc256.pem --host www.example.com --outfile tmp-dane.rr 2>/dev/null
+ 
+ diff $srcdir/dane-test.rr tmp-dane.rr
+diff -ur gnutls-3.1.4-orig/tests/chainverify.c gnutls-3.1.4/tests/chainverify.c
+--- gnutls-3.1.4-orig/tests/chainverify.c	2012-11-08 11:54:59 -0500
++++ gnutls-3.1.4/tests/chainverify.c	2013-06-23 14:16:49 -0400
+@@ -803,6 +803,8 @@
+    * systems only. Disable it on windows.
+    */
+ #ifdef _WIN32
++  if (debug)
++    success ("Ignoring test under Win32\n");
+   exit(77);
+ #endif
+ 
+diff -ur gnutls-3.1.4-orig/tests/openpgp-auth.c gnutls-3.1.4/tests/openpgp-auth.c
+--- gnutls-3.1.4-orig/tests/openpgp-auth.c	2012-08-17 16:50:06 -0400
++++ gnutls-3.1.4/tests/openpgp-auth.c	2013-06-23 14:16:49 -0400
+@@ -277,6 +277,8 @@
+ void
+ doit ()
+ {
++  if (debug)
++    success ("Ignoring test on Win32 platform\n");
+   exit (77);
+ }
+ #endif
+diff -ur gnutls-3.1.4-orig/tests/openpgp-auth2.c gnutls-3.1.4/tests/openpgp-auth2.c
+--- gnutls-3.1.4-orig/tests/openpgp-auth2.c	2012-07-21 08:14:24 -0400
++++ gnutls-3.1.4/tests/openpgp-auth2.c	2013-06-23 14:16:49 -0400
+@@ -23,12 +23,13 @@
+ #include <config.h>
+ #endif
+ 
+-#if !defined(_WIN32)
+-
+ #include <gnutls/gnutls.h>
+ #include <gnutls/openpgp.h>
+ 
+ #include "utils.h"
++
++#if !defined(_WIN32)
++
+ #include <read-file.h>
+ 
+ #include <unistd.h>
+@@ -262,6 +263,8 @@
+ void
+ doit ()
+ {
++  if (debug)
++    success ("Ignoring test on Win32 platform\n");
+   exit (77);
+ }
+ #endif
+diff -ur gnutls-3.1.4-orig/tests/rng-fork.c gnutls-3.1.4/tests/rng-fork.c
+--- gnutls-3.1.4-orig/tests/rng-fork.c	2012-04-12 16:05:11 -0400
++++ gnutls-3.1.4/tests/rng-fork.c	2013-06-23 14:16:49 -0400
+@@ -107,6 +107,8 @@
+ void
+ doit (void)
+ {
++  if (debug)
++    success ("Ignoring test on Win32 platform\n");
+   exit (77);
+ }
+ #endif
+diff -ur gnutls-3.1.4-orig/tests/slow/cipher-test.c gnutls-3.1.4/tests/slow/cipher-test.c
+--- gnutls-3.1.4-orig/tests/slow/cipher-test.c	2012-04-12 16:05:11 -0400
++++ gnutls-3.1.4/tests/slow/cipher-test.c	2013-06-23 14:16:49 -0400
+@@ -1,3 +1,7 @@
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif
++
+ #include <stdint.h>
+ #include <stdio.h>
+ #include <string.h>
+@@ -44,75 +48,74 @@
+      "\x58\xe2\xfc\xce\xfa\x7e\x30\x61\x36\x7f\x1d\x57\xa4\xe7\x45\x5a"},
+ #endif
+     {
+-     .key = (void*)
++     (void*)
+      "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+-     .auth = NULL,
+-     .auth_size = 0,
+-     .plaintext = (void*)
++     NULL,
++     0,
++     (void*)
+      "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+-     .plaintext_size = 16,
+-     .ciphertext = (void*)
++     16,
++     (void*)"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
++     (void*)
+      "\x03\x88\xda\xce\x60\xb6\xa3\x92\xf3\x28\xc2\xb9\x71\xb2\xfe\x78",
+-     .iv = (void*)"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+-     .tag = (void*)
++     (void*)
+      "\xab\x6e\x47\xd4\x2c\xec\x13\xbd\xf5\x3a\x67\xb2\x12\x57\xbd\xdf"},
+     {
+-     .key = (void*)
++     (void*)
+      "\xfe\xff\xe9\x92\x86\x65\x73\x1c\x6d\x6a\x8f\x94\x67\x30\x83\x08",
+-     .auth = (void*)
++     (void*)
+      "\xfe\xed\xfa\xce\xde\xad\xbe\xef\xfe\xed\xfa\xce\xde\xad\xbe\xef\xab\xad\xda\xd2",
+-     .auth_size = 20,
+-     .plaintext = (void*)
++     20,
++     (void*)
+      "\xd9\x31\x32\x25\xf8\x84\x06\xe5\xa5\x59\x09\xc5\xaf\xf5\x26\x9a\x86\xa7\xa9\x53\x15\x34\xf7\xda\x2e\x4c\x30\x3d\x8a\x31\x8a\x72\x1c\x3c\x0c\x95\x95\x68\x09\x53\x2f\xcf\x0e\x24\x49\xa6\xb5\x25\xb1\x6a\xed\xf5\xaa\x0d\xe6\x57\xba\x63\x7b\x39",
+-     .plaintext_size = 60,
+-     .ciphertext = (void*)
++     60,
++     (void*)"\xca\xfe\xba\xbe\xfa\xce\xdb\xad\xde\xca\xf8\x88",
++     (void*)
+      "\x42\x83\x1e\xc2\x21\x77\x74\x24\x4b\x72\x21\xb7\x84\xd0\xd4\x9c\xe3\xaa\x21\x2f\x2c\x02\xa4\xe0\x35\xc1\x7e\x23\x29\xac\xa1\x2e\x21\xd5\x14\xb2\x54\x66\x93\x1c\x7d\x8f\x6a\x5a\xac\x84\xaa\x05\x1b\xa3\x0b\x39\x6a\x0a\xac\x97\x3d\x58\xe0\x91",
+-     .iv = (void*)"\xca\xfe\xba\xbe\xfa\xce\xdb\xad\xde\xca\xf8\x88",
+-     .tag = (void*)
++     (void*)
+      "\x5b\xc9\x4f\xbc\x32\x21\xa5\xdb\x94\xfa\xe9\x5a\xe7\x12\x1a\x47"}
+ };
+ 
+ 
+ struct aes_vectors_st aes_vectors[] = {
+     {
+-     .key =
+      (uint8_t *)
+      "\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+-     .plaintext = (uint8_t *)
++     (uint8_t *)
+      "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+-     .ciphertext = (uint8_t *)
++     (uint8_t *)
+      "\x4b\xc3\xf8\x83\x45\x0c\x11\x3c\x64\xca\x42\xe1\x11\x2a\x9e\x87",
+      },
+     {
+-     .key = (uint8_t *)
++     (uint8_t *)
+      "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+-     .plaintext = (uint8_t *)
++     (uint8_t *)
+      "\xf3\x44\x81\xec\x3c\xc6\x27\xba\xcd\x5d\xc3\xfb\x08\xf2\x73\xe6",
+-     .ciphertext = (uint8_t *)
++     (uint8_t *)
+      "\x03\x36\x76\x3e\x96\x6d\x92\x59\x5a\x56\x7c\xc9\xce\x53\x7f\x5e",
+      },
+     {
+-     .key = (uint8_t *)
++     (uint8_t *)
+      "\x10\xa5\x88\x69\xd7\x4b\xe5\xa3\x74\xcf\x86\x7c\xfb\x47\x38\x59",
+-     .plaintext = (uint8_t *)
++     (uint8_t *)
+      "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+-     .ciphertext = (uint8_t *)
++     (uint8_t *)
+      "\x6d\x25\x1e\x69\x44\xb0\x51\xe0\x4e\xaa\x6f\xb4\xdb\xf7\x84\x65",
+      },
+     {
+-     .key = (uint8_t *)
++     (uint8_t *)
+      "\xca\xea\x65\xcd\xbb\x75\xe9\x16\x9e\xcd\x22\xeb\xe6\xe5\x46\x75",
+-     .plaintext = (uint8_t *)
++     (uint8_t *)
+      "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+-     .ciphertext = (uint8_t *)
++     (uint8_t *)
+      "\x6e\x29\x20\x11\x90\x15\x2d\xf4\xee\x05\x81\x39\xde\xf6\x10\xbb",
+      },
+     {
+-     .key = (uint8_t *)
++     (uint8_t *)
+      "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe",
+-     .plaintext = (uint8_t *)
++     (uint8_t *)
+      "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+-     .ciphertext = (uint8_t *)
++     (uint8_t *)
+      "\x9b\xa4\xa9\x14\x3f\x4e\x5d\x40\x48\x52\x1c\x4f\x88\x77\xd8\x8e",
+      },
+ };
+@@ -351,128 +354,121 @@
+ } hash_vectors[] =
+ {
+     {
+-      .name = "SHA1",
+-      .algorithm = GNUTLS_MAC_SHA1,
+-      .key = NULL,
+-      .plaintext =
++      "SHA1",
++      GNUTLS_MAC_SHA1,
++      NULL,
++      0,
+             (uint8_t *) "what do ya want for nothing?",
+-      .plaintext_size =
+             sizeof ("what do ya want for nothing?") - 1,
+-      .output =
+             (uint8_t *)
+             "\x8f\x82\x03\x94\xf9\x53\x35\x18\x20\x45\xda\x24\xf3\x4d\xe5\x2b\xf8\xbc\x34\x32",
+-      .output_size = 20,
++      20,
+     },
+     {
+-      .name = "SHA1",
+-      .algorithm = GNUTLS_MAC_SHA1,
+-      .key = NULL,
+-      .plaintext =
++      "SHA1",
++      GNUTLS_MAC_SHA1,
++      NULL,
++      0,
+             (uint8_t *)
+             "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopqabcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopqabcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
+-      .plaintext_size = sizeof
++      sizeof
+             ("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopqabcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopqabcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq")
+             - 1,
+-      .output =
+             (uint8_t *)
+             "\xbe\xae\xd1\x6d\x65\x8e\xc7\x92\x9e\xdf\xd6\x2b\xfa\xfe\xac\x29\x9f\x0d\x74\x4d",
+-      .output_size = 20,
++      20,
+     },
+     {
+-      .name = "SHA256",
+-      .algorithm = GNUTLS_MAC_SHA256,
+-      .key = NULL,
+-      .plaintext =
++      "SHA256",
++      GNUTLS_MAC_SHA256,
++      NULL,
++      0,
+             (uint8_t *)
+             "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
+-      .plaintext_size = sizeof
++      sizeof
+             ("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq")
+             - 1,
+-      .output =
+             (uint8_t *)
+             "\x24\x8d\x6a\x61\xd2\x06\x38\xb8\xe5\xc0\x26\x93\x0c\x3e\x60\x39\xa3\x3c\xe4\x59\x64\xff\x21\x67\xf6\xec\xed\xd4\x19\xdb\x06\xc1",
+-      .output_size = 32,
++      32,
+     },
+     {
+-      .name = "SHA256",
+-      .algorithm = GNUTLS_MAC_SHA256,
+-      .key = NULL,
+-      .plaintext =
++      "SHA256",
++      GNUTLS_MAC_SHA256,
++      NULL,
++      0,
+             (uint8_t *)
+             "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopqabcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopqabcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
+-      .plaintext_size = sizeof
++      sizeof
+             ("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopqabcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopqabcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq")
+             - 1,
+-      .output =
+             (uint8_t *)
+             "\x50\xea\x82\x5d\x96\x84\xf4\x22\x9c\xa2\x9f\x1f\xec\x51\x15\x93\xe2\x81\xe4\x6a\x14\x0d\x81\xe0\x00\x5f\x8f\x68\x86\x69\xa0\x6c",
+-      .output_size = 32,
++      32,
+     },
+     {
+-      .name = "SHA512",
+-      .algorithm = GNUTLS_MAC_SHA512,
+-      .key = NULL,
+-      .plaintext =
++      "SHA512",
++      GNUTLS_MAC_SHA512,
++      NULL,
++      0,
+             (uint8_t *)
+             "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu",
+-      .plaintext_size = sizeof
++      sizeof
+             ("abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu")
+             - 1,
+-      .output =
+             (uint8_t *)
+             "\x8e\x95\x9b\x75\xda\xe3\x13\xda\x8c\xf4\xf7\x28\x14\xfc\x14\x3f\x8f\x77\x79\xc6\xeb\x9f\x7f\xa1\x72\x99\xae\xad\xb6\x88\x90\x18\x50\x1d\x28\x9e\x49\x00\xf7\xe4\x33\x1b\x99\xde\xc4\xb5\x43\x3a\xc7\xd3\x29\xee\xb6\xdd\x26\x54\x5e\x96\xe5\x5b\x87\x4b\xe9\x09",
+-      .output_size = 64,
++      64,
+     },
+     {
+-    .name = "HMAC-MD5",.algorithm = GNUTLS_MAC_MD5,.key =
+-            (uint8_t *) "Jefe",.key_size = 4,.plaintext =
+-            (uint8_t *) "what do ya want for nothing?",.
+-            plaintext_size =
+-            sizeof ("what do ya want for nothing?") - 1,.output =
++    "HMAC-MD5",GNUTLS_MAC_MD5,
++            (uint8_t *) "Jefe",4,
++            (uint8_t *) "what do ya want for nothing?",
++            sizeof ("what do ya want for nothing?") - 1,
+             (uint8_t *)
+-            "\x75\x0c\x78\x3e\x6a\xb0\xb5\x03\xea\xa8\x6e\x31\x0a\x5d\xb7\x38",.output_size
+-            = 16,}
++            "\x75\x0c\x78\x3e\x6a\xb0\xb5\x03\xea\xa8\x6e\x31\x0a\x5d\xb7\x38",
++            16,}
+     ,
+         /* from rfc4231 */
+     {
+-    .name = "HMAC-SHA2-224",.algorithm = GNUTLS_MAC_SHA224,.key =
++    "HMAC-SHA2-224",GNUTLS_MAC_SHA224,
+             (uint8_t *)
+-            "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",.key_size
+-            = 20,.plaintext = (uint8_t *) "Hi There",.plaintext_size =
+-            sizeof ("Hi There") - 1,.output =
++            "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",
++            20,(uint8_t *) "Hi There",
++            sizeof ("Hi There") - 1,
+             (uint8_t *)
+-            "\x89\x6f\xb1\x12\x8a\xbb\xdf\x19\x68\x32\x10\x7c\xd4\x9d\xf3\x3f\x47\xb4\xb1\x16\x99\x12\xba\x4f\x53\x68\x4b\x22",.output_size
+-            = 28,}
++            "\x89\x6f\xb1\x12\x8a\xbb\xdf\x19\x68\x32\x10\x7c\xd4\x9d\xf3\x3f\x47\xb4\xb1\x16\x99\x12\xba\x4f\x53\x68\x4b\x22",
++            28,}
+     ,
+     {
+-    .name = "HMAC-SHA2-256",.algorithm = GNUTLS_MAC_SHA256,.key =
++    "HMAC-SHA2-256",GNUTLS_MAC_SHA256,
+             (uint8_t *)
+-            "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",.key_size
+-            = 20,.plaintext = (uint8_t *) "Hi There",.plaintext_size =
+-            sizeof ("Hi There") - 1,.output =
++            "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",
++            20,(uint8_t *) "Hi There",
++            sizeof ("Hi There") - 1,
+             (uint8_t *)
+-            "\xb0\x34\x4c\x61\xd8\xdb\x38\x53\x5c\xa8\xaf\xce\xaf\x0b\xf1\x2b\x88\x1d\xc2\x00\xc9\x83\x3d\xa7\x26\xe9\x37\x6c\x2e\x32\xcf\xf7",.output_size
+-            = 32,}
++            "\xb0\x34\x4c\x61\xd8\xdb\x38\x53\x5c\xa8\xaf\xce\xaf\x0b\xf1\x2b\x88\x1d\xc2\x00\xc9\x83\x3d\xa7\x26\xe9\x37\x6c\x2e\x32\xcf\xf7",
++            32,}
+     ,
+     {
+-    .name = "HMAC-SHA2-384",.algorithm = GNUTLS_MAC_SHA384,.key =
++    "HMAC-SHA2-384",GNUTLS_MAC_SHA384,
+             (uint8_t *)
+-            "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",.key_size
+-            = 20,.plaintext = (uint8_t *) "Hi There",.plaintext_size =
+-            sizeof ("Hi There") - 1,.output =
++            "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",
++            20,(uint8_t *) "Hi There",
++            sizeof ("Hi There") - 1,
+             (uint8_t *)
+-            "\xaf\xd0\x39\x44\xd8\x48\x95\x62\x6b\x08\x25\xf4\xab\x46\x90\x7f\x15\xf9\xda\xdb\xe4\x10\x1e\xc6\x82\xaa\x03\x4c\x7c\xeb\xc5\x9c\xfa\xea\x9e\xa9\x07\x6e\xde\x7f\x4a\xf1\x52\xe8\xb2\xfa\x9c\xb6",.output_size
+-            = 48,}
++            "\xaf\xd0\x39\x44\xd8\x48\x95\x62\x6b\x08\x25\xf4\xab\x46\x90\x7f\x15\xf9\xda\xdb\xe4\x10\x1e\xc6\x82\xaa\x03\x4c\x7c\xeb\xc5\x9c\xfa\xea\x9e\xa9\x07\x6e\xde\x7f\x4a\xf1\x52\xe8\xb2\xfa\x9c\xb6",
++            48,}
+     ,
+     {
+-    .name = "HMAC-SHA2-512",.algorithm = GNUTLS_MAC_SHA512,.key =
++    "HMAC-SHA2-512",GNUTLS_MAC_SHA512,
+             (uint8_t *)
+-            "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",.key_size
+-            = 20,.plaintext = (uint8_t *) "Hi There",.plaintext_size =
+-            sizeof ("Hi There") - 1,.output =
++            "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b",
++            20,(uint8_t *) "Hi There",
++            sizeof ("Hi There") - 1,
+             (uint8_t *)
+-            "\x87\xaa\x7c\xde\xa5\xef\x61\x9d\x4f\xf0\xb4\x24\x1a\x1d\x6c\xb0\x23\x79\xf4\xe2\xce\x4e\xc2\x78\x7a\xd0\xb3\x05\x45\xe1\x7c\xde\xda\xa8\x33\xb7\xd6\xb8\xa7\x02\x03\x8b\x27\x4e\xae\xa3\xf4\xe4\xbe\x9d\x91\x4e\xeb\x61\xf1\x70\x2e\x69\x6c\x20\x3a\x12\x68\x54",.output_size
+-            = 64,}
++            "\x87\xaa\x7c\xde\xa5\xef\x61\x9d\x4f\xf0\xb4\x24\x1a\x1d\x6c\xb0\x23\x79\xf4\xe2\xce\x4e\xc2\x78\x7a\xd0\xb3\x05\x45\xe1\x7c\xde\xda\xa8\x33\xb7\xd6\xb8\xa7\x02\x03\x8b\x27\x4e\xae\xa3\xf4\xe4\xbe\x9d\x91\x4e\xeb\x61\xf1\x70\x2e\x69\x6c\x20\x3a\x12\x68\x54",
++            64,}
+ ,};
+ 
+ #define HASH_DATA_SIZE 64