gnutls-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU gnutls branch, gnutls_3_0_x-2, updated. gnutls_3_0_23-25-ge73c


From: Nikos Mavrogiannopoulos
Subject: [SCM] GNU gnutls branch, gnutls_3_0_x-2, updated. gnutls_3_0_23-25-ge73c301
Date: Tue, 18 Sep 2012 20:47:23 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU gnutls".

http://git.savannah.gnu.org/cgit/gnutls.git/commit/?id=e73c3011949ae2f31829aee1a6a348982ce6d316

The branch, gnutls_3_0_x-2 has been updated
       via  e73c3011949ae2f31829aee1a6a348982ce6d316 (commit)
       via  eda8dce3afa66e2dfa07fce7917659595a59afb8 (commit)
       via  eb32dda6f01d5f0a96d2139a93d0b34b9fd81e1a (commit)
       via  22288ba7f1439caf5cdadfe0f0220a1d5a59ed42 (commit)
       via  1c2115dad9f9b1907a3968c34e8ad134bca2ef00 (commit)
      from  813dbf2f590ee2353237eb82b2822eac6bb886e4 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit e73c3011949ae2f31829aee1a6a348982ce6d316
Author: Nikos Mavrogiannopoulos <address@hidden>
Date:   Tue Sep 18 22:47:14 2012 +0200

    compare-makefile is only executed during make dist.

commit eda8dce3afa66e2dfa07fce7917659595a59afb8
Author: Nikos Mavrogiannopoulos <address@hidden>
Date:   Tue Sep 18 21:48:34 2012 +0200

    updated

commit eb32dda6f01d5f0a96d2139a93d0b34b9fd81e1a
Author: Nikos Mavrogiannopoulos <address@hidden>
Date:   Mon Sep 17 19:46:29 2012 +0200

    do not complain on overlength strings

commit 22288ba7f1439caf5cdadfe0f0220a1d5a59ed42
Author: Nikos Mavrogiannopoulos <address@hidden>
Date:   Sun Sep 16 23:02:35 2012 +0200

    Added verification flags GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN, which is 
enabled by default for verifying TLS sessions.

commit 1c2115dad9f9b1907a3968c34e8ad134bca2ef00
Author: Nikos Mavrogiannopoulos <address@hidden>
Date:   Sun Sep 16 22:47:44 2012 +0200

    Added function to sort the provided certificate chain prior to verification.

-----------------------------------------------------------------------

Summary of changes:
 Makefile.am                  |    1 +
 NEWS                         |    9 +-
 configure.ac                 |    1 +
 doc/Makefile.am              | 2534 +++++++++++++++++++++---------------------
 lib/gnutls_cert.c            |    1 +
 lib/gnutls_ui.c              |    3 +-
 lib/includes/gnutls/x509.h   |    3 +
 lib/x509/verify-high.c       |   69 ++
 tests/Makefile.am            |    2 +-
 tests/chainverify-unsorted.c |  747 +++++++++++++
 10 files changed, 2099 insertions(+), 1271 deletions(-)
 create mode 100644 tests/chainverify-unsorted.c

diff --git a/Makefile.am b/Makefile.am
index 0afe4bd..c935106 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -36,6 +36,7 @@ EXTRA_DIST = cfg.mk maint.mk .clcopying
 dist-hook: 
        rm -f ChangeLog
        make ChangeLog
+       make -C doc/ compare-makefile
        cp -f ChangeLog $(distdir)/
        sed 's/address@hidden@/$(VERSION)/g' -i $(distdir)/src/args-std.def
        sed 's/address@hidden@address@hidden@/$(VERSION)/g' -i 
$(distdir)/doc/invoke-*.texi
diff --git a/NEWS b/NEWS
index 6532f04..77ca590 100644
--- a/NEWS
+++ b/NEWS
@@ -7,9 +7,16 @@ See the end for copying conditions.
 ** libgnutls: The %COMPAT keyword, if specified, will tolerate
 key usage violation errors (they are far too common to ignore).
 
+** libgnutls: Added X.509 certificate verification flag 
+GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN. This flag allows the verification
+of unsorted certificate chains and is enabled by default for
+TLS certificate verification (if gnutls_certificate_set_verify_flags() 
+does not override it).
+
 ** libgnutls: Added GNUTLS_STATELESS_COMPRESSION flag to gnutls_init(),
 which provides a tool to counter compression-related attacks where
-parts of the data are controlled by the attacker.
+parts of the data are controlled by the attacker _and_ placed in
+separate records (use with care - do not use compression if not sure).
 
 ** libgnutls: Depends on libtasn1 2.14 or later.
 
diff --git a/configure.ac b/configure.ac
index 91ed79e..436dfb2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -244,6 +244,7 @@ if test "$gl_gcc_warnings" = yes; then
   nw="$nw -Wconversion"             # Too many warnings for now
   nw="$nw -Wsign-conversion"        # Too many warnings for now
   nw="$nw -Wformat-y2k"             # Too many warnings for now
+  nw="$nw -Woverlength-strings"     # We use some in tests/
   nw="$nw -Wvla"                    # There is no point to avoid C99 variable 
length arrays
   nw="$nw -Wformat-nonliteral"      # Incompatible with gettext _()
   nw="$nw -Wunsafe-loop-optimizations"
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 34670d6..c43056b 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -360,13 +360,11 @@ stamp_functions: gnutls-api.texi x509-api.texi 
pgp-api.texi pkcs12-api.texi pkcs
        sed -i 's/address@hidden//g' functions/*
        cd functions && for i in *;do grep ^"@deftypefun" $$i | sed 
's/@deftypefun/@item/g;s/ {/ @var{/;s/ {/ @ref{/' > ../functions/$$i.short;done
        echo $@ > $@
-       $(MAKE) compare-makefile
 
 stamp_enums: enums.texi
        -mkdir enums
        $(srcdir)/scripts/split-texi.pl enums enum < $(srcdir)/enums.texi
        echo $@ > $@
-       $(MAKE) compare-makefile
 
 $(ENUMS): stamp_enums
 
@@ -382,14 +380,14 @@ compare-makefile: enums.texi
                perl -p -e "s,^ENUMS =,ENUMS =$$STR," > tmp-$@; \
        diff -u $(srcdir)/Makefile.am tmp-$@
        rm -f tmp-$@
-       FUNCS=`cat $(top_srcdir)/lib/includes/gnutls/*.h 
$(top_builddir)/lib/includes/gnutls/*.h | 
$(top_srcdir)/doc/scripts/getfuncs.pl`; \
+       FUNCS=`cat $(HEADER_FILES) | 
$(top_srcdir)/doc/scripts/getfuncs.pl|sort`; \
        MANS=""; \
        for i in $$FUNCS; do \
                MANS="$$MANS\nFUNCS += functions/$$i\nFUNCS += 
functions/$$i.short"; \
        done; \
-       grep -v -e '^FUNCS += ' $(srcdir)/Makefile.am | \
-               perl -p -e "s,^FUNCS =,FUNCS =$$MANS," | sort > tmp-$@; \
-       sort $(srcdir)/Makefile.am | diff -u - tmp-$@
+       grep -v -e '^FUNCS += ' $(srcdir)/Makefile.am > tmp-$@; \
+       echo "\"s,^FUNCS =,FUNCS =$$MANS,\" -i tmp-$@"|xargs sed
+       diff -u $(srcdir)/Makefile.am tmp-$@
        rm -f tmp-$@
 
 .PHONY: compare-makefile
@@ -477,1441 +475,1441 @@ ENUMS += enums/gnutls_x509_crt_fmt_t
 ENUMS += enums/gnutls_x509_subject_alt_name_t
 
 FUNCS =
-FUNCS += functions/gnutls_pubkey_init
-FUNCS += functions/gnutls_pubkey_init.short
-FUNCS += functions/gnutls_pubkey_deinit
-FUNCS += functions/gnutls_pubkey_deinit.short
-FUNCS += functions/gnutls_pubkey_get_pk_algorithm
-FUNCS += functions/gnutls_pubkey_get_pk_algorithm.short
-FUNCS += functions/gnutls_pubkey_import_x509
-FUNCS += functions/gnutls_pubkey_import_x509.short
-FUNCS += functions/gnutls_pubkey_import_pkcs11
-FUNCS += functions/gnutls_pubkey_import_pkcs11.short
-FUNCS += functions/gnutls_pubkey_import_openpgp
-FUNCS += functions/gnutls_pubkey_import_openpgp.short
-FUNCS += functions/gnutls_pubkey_import_privkey
-FUNCS += functions/gnutls_pubkey_import_privkey.short
-FUNCS += functions/gnutls_pubkey_get_preferred_hash_algorithm
-FUNCS += functions/gnutls_pubkey_get_preferred_hash_algorithm.short
-FUNCS += functions/gnutls_pubkey_get_pk_rsa_raw
-FUNCS += functions/gnutls_pubkey_get_pk_rsa_raw.short
-FUNCS += functions/gnutls_pubkey_get_pk_dsa_raw
-FUNCS += functions/gnutls_pubkey_get_pk_dsa_raw.short
-FUNCS += functions/gnutls_pubkey_get_pk_ecc_raw
-FUNCS += functions/gnutls_pubkey_get_pk_ecc_raw.short
-FUNCS += functions/gnutls_pubkey_get_pk_ecc_x962
-FUNCS += functions/gnutls_pubkey_get_pk_ecc_x962.short
-FUNCS += functions/gnutls_pubkey_export
-FUNCS += functions/gnutls_pubkey_export.short
-FUNCS += functions/gnutls_pubkey_get_key_id
-FUNCS += functions/gnutls_pubkey_get_key_id.short
-FUNCS += functions/gnutls_pubkey_get_openpgp_key_id
-FUNCS += functions/gnutls_pubkey_get_openpgp_key_id.short
-FUNCS += functions/gnutls_pubkey_get_key_usage
-FUNCS += functions/gnutls_pubkey_get_key_usage.short
-FUNCS += functions/gnutls_pubkey_set_key_usage
-FUNCS += functions/gnutls_pubkey_set_key_usage.short
-FUNCS += functions/gnutls_pubkey_import
-FUNCS += functions/gnutls_pubkey_import.short
-FUNCS += functions/gnutls_pubkey_import_pkcs11_url
-FUNCS += functions/gnutls_pubkey_import_pkcs11_url.short
-FUNCS += functions/gnutls_pubkey_import_dsa_raw
-FUNCS += functions/gnutls_pubkey_import_dsa_raw.short
-FUNCS += functions/gnutls_pubkey_import_rsa_raw
-FUNCS += functions/gnutls_pubkey_import_rsa_raw.short
-FUNCS += functions/gnutls_pubkey_import_ecc_x962
-FUNCS += functions/gnutls_pubkey_import_ecc_x962.short
-FUNCS += functions/gnutls_pubkey_import_ecc_raw
-FUNCS += functions/gnutls_pubkey_import_ecc_raw.short
-FUNCS += functions/gnutls_pubkey_encrypt_data
-FUNCS += functions/gnutls_pubkey_encrypt_data.short
-FUNCS += functions/gnutls_x509_crt_set_pubkey
-FUNCS += functions/gnutls_x509_crt_set_pubkey.short
-FUNCS += functions/gnutls_x509_crq_set_pubkey
-FUNCS += functions/gnutls_x509_crq_set_pubkey.short
-FUNCS += functions/gnutls_pubkey_verify_hash
-FUNCS += functions/gnutls_pubkey_verify_hash.short
-FUNCS += functions/gnutls_pubkey_verify_hash2
-FUNCS += functions/gnutls_pubkey_verify_hash2.short
-FUNCS += functions/gnutls_pubkey_get_verify_algorithm
-FUNCS += functions/gnutls_pubkey_get_verify_algorithm.short
-FUNCS += functions/gnutls_pubkey_verify_data
-FUNCS += functions/gnutls_pubkey_verify_data.short
-FUNCS += functions/gnutls_pubkey_verify_data2
-FUNCS += functions/gnutls_pubkey_verify_data2.short
-FUNCS += functions/gnutls_privkey_init
-FUNCS += functions/gnutls_privkey_init.short
-FUNCS += functions/gnutls_privkey_deinit
-FUNCS += functions/gnutls_privkey_deinit.short
-FUNCS += functions/gnutls_privkey_get_pk_algorithm
-FUNCS += functions/gnutls_privkey_get_pk_algorithm.short
-FUNCS += functions/gnutls_privkey_get_type
-FUNCS += functions/gnutls_privkey_get_type.short
-FUNCS += functions/gnutls_privkey_import_pkcs11
-FUNCS += functions/gnutls_privkey_import_pkcs11.short
-FUNCS += functions/gnutls_privkey_import_x509
-FUNCS += functions/gnutls_privkey_import_x509.short
-FUNCS += functions/gnutls_privkey_import_openpgp
-FUNCS += functions/gnutls_privkey_import_openpgp.short
-FUNCS += functions/gnutls_privkey_import_ext
-FUNCS += functions/gnutls_privkey_import_ext.short
-FUNCS += functions/gnutls_privkey_sign_data
-FUNCS += functions/gnutls_privkey_sign_data.short
-FUNCS += functions/gnutls_privkey_sign_hash
-FUNCS += functions/gnutls_privkey_sign_hash.short
-FUNCS += functions/gnutls_privkey_decrypt_data
-FUNCS += functions/gnutls_privkey_decrypt_data.short
-FUNCS += functions/gnutls_x509_crt_privkey_sign
-FUNCS += functions/gnutls_x509_crt_privkey_sign.short
-FUNCS += functions/gnutls_x509_crl_privkey_sign
-FUNCS += functions/gnutls_x509_crl_privkey_sign.short
-FUNCS += functions/gnutls_x509_crq_privkey_sign
-FUNCS += functions/gnutls_x509_crq_privkey_sign.short
-FUNCS += functions/gnutls_pcert_import_x509
-FUNCS += functions/gnutls_pcert_import_x509.short
-FUNCS += functions/gnutls_pcert_list_import_x509_raw
-FUNCS += functions/gnutls_pcert_list_import_x509_raw.short
-FUNCS += functions/gnutls_pcert_import_x509_raw
-FUNCS += functions/gnutls_pcert_import_x509_raw.short
-FUNCS += functions/gnutls_pcert_import_openpgp_raw
-FUNCS += functions/gnutls_pcert_import_openpgp_raw.short
-FUNCS += functions/gnutls_pcert_import_openpgp
-FUNCS += functions/gnutls_pcert_import_openpgp.short
-FUNCS += functions/gnutls_pcert_deinit
-FUNCS += functions/gnutls_pcert_deinit.short
-FUNCS += functions/gnutls_certificate_set_retrieve_function2
-FUNCS += functions/gnutls_certificate_set_retrieve_function2.short
-FUNCS += functions/gnutls_certificate_set_key
-FUNCS += functions/gnutls_certificate_set_key.short
-FUNCS += functions/gnutls_sign_callback_set
-FUNCS += functions/gnutls_sign_callback_set.short
-FUNCS += functions/gnutls_sign_callback_get
-FUNCS += functions/gnutls_sign_callback_get.short
-FUNCS += functions/gnutls_x509_privkey_sign_hash
-FUNCS += functions/gnutls_x509_privkey_sign_hash.short
-FUNCS += functions/gnutls_openpgp_privkey_sign_hash
-FUNCS += functions/gnutls_openpgp_privkey_sign_hash.short
-FUNCS += functions/gnutls_x509_privkey_sign_data
-FUNCS += functions/gnutls_x509_privkey_sign_data.short
-FUNCS += functions/gnutls_x509_crt_verify_data
-FUNCS += functions/gnutls_x509_crt_verify_data.short
-FUNCS += functions/gnutls_x509_crt_verify_hash
-FUNCS += functions/gnutls_x509_crt_verify_hash.short
-FUNCS += functions/gnutls_x509_crt_get_verify_algorithm
-FUNCS += functions/gnutls_x509_crt_get_verify_algorithm.short
-FUNCS += functions/gnutls_x509_crt_get_preferred_hash_algorithm
-FUNCS += functions/gnutls_x509_crt_get_preferred_hash_algorithm.short
-FUNCS += functions/gnutls_x509_crq_sign
-FUNCS += functions/gnutls_x509_crq_sign.short
-FUNCS += functions/gnutls_x509_crl_sign
-FUNCS += functions/gnutls_x509_crl_sign.short
-FUNCS += functions/gnutls_cipher_set_priority
-FUNCS += functions/gnutls_cipher_set_priority.short
-FUNCS += functions/gnutls_mac_set_priority
-FUNCS += functions/gnutls_mac_set_priority.short
-FUNCS += functions/gnutls_compression_set_priority
-FUNCS += functions/gnutls_compression_set_priority.short
-FUNCS += functions/gnutls_kx_set_priority
-FUNCS += functions/gnutls_kx_set_priority.short
-FUNCS += functions/gnutls_protocol_set_priority
-FUNCS += functions/gnutls_protocol_set_priority.short
-FUNCS += functions/gnutls_certificate_type_set_priority
-FUNCS += functions/gnutls_certificate_type_set_priority.short
-FUNCS += functions/gnutls_rsa_params_init
-FUNCS += functions/gnutls_rsa_params_init.short
-FUNCS += functions/gnutls_rsa_params_deinit
-FUNCS += functions/gnutls_rsa_params_deinit.short
-FUNCS += functions/gnutls_rsa_params_cpy
-FUNCS += functions/gnutls_rsa_params_cpy.short
-FUNCS += functions/gnutls_rsa_params_import_raw
-FUNCS += functions/gnutls_rsa_params_import_raw.short
-FUNCS += functions/gnutls_rsa_params_generate2
-FUNCS += functions/gnutls_rsa_params_generate2.short
-FUNCS += functions/gnutls_rsa_params_export_raw
-FUNCS += functions/gnutls_rsa_params_export_raw.short
-FUNCS += functions/gnutls_rsa_params_export_pkcs1
-FUNCS += functions/gnutls_rsa_params_export_pkcs1.short
-FUNCS += functions/gnutls_rsa_params_import_pkcs1
-FUNCS += functions/gnutls_rsa_params_import_pkcs1.short
-FUNCS += functions/gnutls_rsa_export_get_pubkey
-FUNCS += functions/gnutls_rsa_export_get_pubkey.short
-FUNCS += functions/gnutls_rsa_export_get_modulus_bits
-FUNCS += functions/gnutls_rsa_export_get_modulus_bits.short
-FUNCS += functions/gnutls_set_default_export_priority
-FUNCS += functions/gnutls_set_default_export_priority.short
-FUNCS += functions/gnutls_certificate_set_rsa_export_params
-FUNCS += functions/gnutls_certificate_set_rsa_export_params.short
-FUNCS += functions/gnutls_cipher_init
-FUNCS += functions/gnutls_cipher_init.short
-FUNCS += functions/gnutls_cipher_encrypt
-FUNCS += functions/gnutls_cipher_encrypt.short
-FUNCS += functions/gnutls_cipher_decrypt
-FUNCS += functions/gnutls_cipher_decrypt.short
-FUNCS += functions/gnutls_cipher_decrypt2
-FUNCS += functions/gnutls_cipher_decrypt2.short
-FUNCS += functions/gnutls_cipher_encrypt2
-FUNCS += functions/gnutls_cipher_encrypt2.short
-FUNCS += functions/gnutls_cipher_set_iv
-FUNCS += functions/gnutls_cipher_set_iv.short
-FUNCS += functions/gnutls_cipher_tag
-FUNCS += functions/gnutls_cipher_tag.short
-FUNCS += functions/gnutls_cipher_add_auth
-FUNCS += functions/gnutls_cipher_add_auth.short
-FUNCS += functions/gnutls_cipher_deinit
-FUNCS += functions/gnutls_cipher_deinit.short
-FUNCS += functions/gnutls_cipher_get_block_size
-FUNCS += functions/gnutls_cipher_get_block_size.short
-FUNCS += functions/gnutls_hmac_init
-FUNCS += functions/gnutls_hmac_init.short
-FUNCS += functions/gnutls_hmac
-FUNCS += functions/gnutls_hmac.short
-FUNCS += functions/gnutls_hmac_output
-FUNCS += functions/gnutls_hmac_output.short
-FUNCS += functions/gnutls_hmac_deinit
-FUNCS += functions/gnutls_hmac_deinit.short
-FUNCS += functions/gnutls_hmac_get_len
-FUNCS += functions/gnutls_hmac_get_len.short
-FUNCS += functions/gnutls_hmac_fast
-FUNCS += functions/gnutls_hmac_fast.short
-FUNCS += functions/gnutls_hash_init
-FUNCS += functions/gnutls_hash_init.short
-FUNCS += functions/gnutls_hash
-FUNCS += functions/gnutls_hash.short
-FUNCS += functions/gnutls_hash_output
-FUNCS += functions/gnutls_hash_output.short
-FUNCS += functions/gnutls_hash_deinit
-FUNCS += functions/gnutls_hash_deinit.short
-FUNCS += functions/gnutls_hash_get_len
-FUNCS += functions/gnutls_hash_get_len.short
-FUNCS += functions/gnutls_hash_fast
-FUNCS += functions/gnutls_hash_fast.short
-FUNCS += functions/gnutls_rnd
-FUNCS += functions/gnutls_rnd.short
-FUNCS += functions/gnutls_dtls_set_timeouts
-FUNCS += functions/gnutls_dtls_set_timeouts.short
-FUNCS += functions/gnutls_dtls_get_mtu
-FUNCS += functions/gnutls_dtls_get_mtu.short
-FUNCS += functions/gnutls_dtls_get_data_mtu
-FUNCS += functions/gnutls_dtls_get_data_mtu.short
-FUNCS += functions/gnutls_dtls_set_mtu
-FUNCS += functions/gnutls_dtls_set_mtu.short
-FUNCS += functions/gnutls_dtls_set_data_mtu
-FUNCS += functions/gnutls_dtls_set_data_mtu.short
-FUNCS += functions/gnutls_dtls_get_timeout
-FUNCS += functions/gnutls_dtls_get_timeout.short
-FUNCS += functions/gnutls_dtls_cookie_send
-FUNCS += functions/gnutls_dtls_cookie_send.short
-FUNCS += functions/gnutls_dtls_cookie_verify
-FUNCS += functions/gnutls_dtls_cookie_verify.short
-FUNCS += functions/gnutls_dtls_prestate_set
-FUNCS += functions/gnutls_dtls_prestate_set.short
-FUNCS += functions/gnutls_record_get_discarded
-FUNCS += functions/gnutls_record_get_discarded.short
-FUNCS += functions/gnutls_pk_algorithm_get_name
-FUNCS += functions/gnutls_pk_algorithm_get_name.short
-FUNCS += functions/gnutls_init
-FUNCS += functions/gnutls_init.short
-FUNCS += functions/gnutls_deinit
-FUNCS += functions/gnutls_deinit.short
-FUNCS += functions/gnutls_bye
-FUNCS += functions/gnutls_bye.short
-FUNCS += functions/gnutls_handshake
-FUNCS += functions/gnutls_handshake.short
-FUNCS += functions/gnutls_rehandshake
-FUNCS += functions/gnutls_rehandshake.short
 FUNCS += functions/gnutls_alert_get
 FUNCS += functions/gnutls_alert_get.short
-FUNCS += functions/gnutls_alert_send
-FUNCS += functions/gnutls_alert_send.short
-FUNCS += functions/gnutls_alert_send_appropriate
-FUNCS += functions/gnutls_alert_send_appropriate.short
 FUNCS += functions/gnutls_alert_get_name
 FUNCS += functions/gnutls_alert_get_name.short
 FUNCS += functions/gnutls_alert_get_strname
 FUNCS += functions/gnutls_alert_get_strname.short
-FUNCS += functions/gnutls_pk_bits_to_sec_param
-FUNCS += functions/gnutls_pk_bits_to_sec_param.short
-FUNCS += functions/gnutls_sec_param_get_name
-FUNCS += functions/gnutls_sec_param_get_name.short
-FUNCS += functions/gnutls_sec_param_to_pk_bits
-FUNCS += functions/gnutls_sec_param_to_pk_bits.short
-FUNCS += functions/gnutls_ecc_curve_get_name
-FUNCS += functions/gnutls_ecc_curve_get_name.short
-FUNCS += functions/gnutls_ecc_curve_get_size
-FUNCS += functions/gnutls_ecc_curve_get_size.short
-FUNCS += functions/gnutls_ecc_curve_get
-FUNCS += functions/gnutls_ecc_curve_get.short
-FUNCS += functions/gnutls_cipher_get
-FUNCS += functions/gnutls_cipher_get.short
-FUNCS += functions/gnutls_kx_get
-FUNCS += functions/gnutls_kx_get.short
-FUNCS += functions/gnutls_mac_get
-FUNCS += functions/gnutls_mac_get.short
-FUNCS += functions/gnutls_compression_get
-FUNCS += functions/gnutls_compression_get.short
-FUNCS += functions/gnutls_certificate_type_get
-FUNCS += functions/gnutls_certificate_type_get.short
-FUNCS += functions/gnutls_sign_algorithm_get_requested
-FUNCS += functions/gnutls_sign_algorithm_get_requested.short
-FUNCS += functions/gnutls_cipher_get_key_size
-FUNCS += functions/gnutls_cipher_get_key_size.short
-FUNCS += functions/gnutls_mac_get_key_size
-FUNCS += functions/gnutls_mac_get_key_size.short
-FUNCS += functions/gnutls_cipher_get_name
-FUNCS += functions/gnutls_cipher_get_name.short
-FUNCS += functions/gnutls_mac_get_name
-FUNCS += functions/gnutls_mac_get_name.short
-FUNCS += functions/gnutls_compression_get_name
-FUNCS += functions/gnutls_compression_get_name.short
-FUNCS += functions/gnutls_kx_get_name
-FUNCS += functions/gnutls_kx_get_name.short
-FUNCS += functions/gnutls_certificate_type_get_name
-FUNCS += functions/gnutls_certificate_type_get_name.short
-FUNCS += functions/gnutls_pk_get_name
-FUNCS += functions/gnutls_pk_get_name.short
-FUNCS += functions/gnutls_sign_get_name
-FUNCS += functions/gnutls_sign_get_name.short
-FUNCS += functions/gnutls_pk_to_sign
-FUNCS += functions/gnutls_pk_to_sign.short
-FUNCS += functions/gnutls_mac_get_id
-FUNCS += functions/gnutls_mac_get_id.short
-FUNCS += functions/gnutls_compression_get_id
-FUNCS += functions/gnutls_compression_get_id.short
-FUNCS += functions/gnutls_cipher_get_id
-FUNCS += functions/gnutls_cipher_get_id.short
-FUNCS += functions/gnutls_kx_get_id
-FUNCS += functions/gnutls_kx_get_id.short
-FUNCS += functions/gnutls_protocol_get_id
-FUNCS += functions/gnutls_protocol_get_id.short
-FUNCS += functions/gnutls_certificate_type_get_id
-FUNCS += functions/gnutls_certificate_type_get_id.short
-FUNCS += functions/gnutls_pk_get_id
-FUNCS += functions/gnutls_pk_get_id.short
-FUNCS += functions/gnutls_sign_get_id
-FUNCS += functions/gnutls_sign_get_id.short
-FUNCS += functions/gnutls_ecc_curve_list
-FUNCS += functions/gnutls_ecc_curve_list.short
-FUNCS += functions/gnutls_cipher_list
-FUNCS += functions/gnutls_cipher_list.short
-FUNCS += functions/gnutls_mac_list
-FUNCS += functions/gnutls_mac_list.short
-FUNCS += functions/gnutls_compression_list
-FUNCS += functions/gnutls_compression_list.short
-FUNCS += functions/gnutls_protocol_list
-FUNCS += functions/gnutls_protocol_list.short
-FUNCS += functions/gnutls_certificate_type_list
-FUNCS += functions/gnutls_certificate_type_list.short
-FUNCS += functions/gnutls_kx_list
-FUNCS += functions/gnutls_kx_list.short
-FUNCS += functions/gnutls_pk_list
-FUNCS += functions/gnutls_pk_list.short
-FUNCS += functions/gnutls_sign_list
-FUNCS += functions/gnutls_sign_list.short
-FUNCS += functions/gnutls_cipher_suite_info
-FUNCS += functions/gnutls_cipher_suite_info.short
-FUNCS += functions/gnutls_error_is_fatal
-FUNCS += functions/gnutls_error_is_fatal.short
-FUNCS += functions/gnutls_error_to_alert
-FUNCS += functions/gnutls_error_to_alert.short
-FUNCS += functions/gnutls_perror
-FUNCS += functions/gnutls_perror.short
-FUNCS += functions/gnutls_strerror
-FUNCS += functions/gnutls_strerror.short
-FUNCS += functions/gnutls_strerror_name
-FUNCS += functions/gnutls_strerror_name.short
-FUNCS += functions/gnutls_handshake_set_private_extensions
-FUNCS += functions/gnutls_handshake_set_private_extensions.short
-FUNCS += functions/gnutls_handshake_get_last_out
-FUNCS += functions/gnutls_handshake_get_last_out.short
-FUNCS += functions/gnutls_handshake_get_last_in
-FUNCS += functions/gnutls_handshake_get_last_in.short
-FUNCS += functions/gnutls_record_send
-FUNCS += functions/gnutls_record_send.short
-FUNCS += functions/gnutls_record_recv
-FUNCS += functions/gnutls_record_recv.short
-FUNCS += functions/gnutls_record_recv_seq
-FUNCS += functions/gnutls_record_recv_seq.short
-FUNCS += functions/gnutls_session_enable_compatibility_mode
-FUNCS += functions/gnutls_session_enable_compatibility_mode.short
-FUNCS += functions/gnutls_record_disable_padding
-FUNCS += functions/gnutls_record_disable_padding.short
-FUNCS += functions/gnutls_record_get_direction
-FUNCS += functions/gnutls_record_get_direction.short
-FUNCS += functions/gnutls_record_get_max_size
-FUNCS += functions/gnutls_record_get_max_size.short
-FUNCS += functions/gnutls_record_set_max_size
-FUNCS += functions/gnutls_record_set_max_size.short
-FUNCS += functions/gnutls_record_check_pending
-FUNCS += functions/gnutls_record_check_pending.short
-FUNCS += functions/gnutls_prf
-FUNCS += functions/gnutls_prf.short
-FUNCS += functions/gnutls_prf_raw
-FUNCS += functions/gnutls_prf_raw.short
-FUNCS += functions/gnutls_server_name_set
-FUNCS += functions/gnutls_server_name_set.short
-FUNCS += functions/gnutls_server_name_get
-FUNCS += functions/gnutls_server_name_get.short
-FUNCS += functions/gnutls_safe_renegotiation_status
-FUNCS += functions/gnutls_safe_renegotiation_status.short
-FUNCS += functions/gnutls_supplemental_get_name
-FUNCS += functions/gnutls_supplemental_get_name.short
-FUNCS += functions/gnutls_session_ticket_key_generate
-FUNCS += functions/gnutls_session_ticket_key_generate.short
-FUNCS += functions/gnutls_session_ticket_enable_client
-FUNCS += functions/gnutls_session_ticket_enable_client.short
-FUNCS += functions/gnutls_session_ticket_enable_server
-FUNCS += functions/gnutls_session_ticket_enable_server.short
-FUNCS += functions/gnutls_key_generate
-FUNCS += functions/gnutls_key_generate.short
-FUNCS += functions/gnutls_priority_init
-FUNCS += functions/gnutls_priority_init.short
-FUNCS += functions/gnutls_priority_deinit
-FUNCS += functions/gnutls_priority_deinit.short
-FUNCS += functions/gnutls_priority_get_cipher_suite_index
-FUNCS += functions/gnutls_priority_get_cipher_suite_index.short
-FUNCS += functions/gnutls_priority_set
-FUNCS += functions/gnutls_priority_set.short
-FUNCS += functions/gnutls_priority_set_direct
-FUNCS += functions/gnutls_priority_set_direct.short
-FUNCS += functions/gnutls_priority_certificate_type_list
-FUNCS += functions/gnutls_priority_certificate_type_list.short
-FUNCS += functions/gnutls_priority_sign_list
-FUNCS += functions/gnutls_priority_sign_list.short
-FUNCS += functions/gnutls_priority_protocol_list
-FUNCS += functions/gnutls_priority_protocol_list.short
-FUNCS += functions/gnutls_priority_compression_list
-FUNCS += functions/gnutls_priority_compression_list.short
-FUNCS += functions/gnutls_priority_ecc_curve_list
-FUNCS += functions/gnutls_priority_ecc_curve_list.short
-FUNCS += functions/gnutls_set_default_priority
-FUNCS += functions/gnutls_set_default_priority.short
-FUNCS += functions/gnutls_cipher_suite_get_name
-FUNCS += functions/gnutls_cipher_suite_get_name.short
-FUNCS += functions/gnutls_protocol_get_version
-FUNCS += functions/gnutls_protocol_get_version.short
-FUNCS += functions/gnutls_protocol_get_name
-FUNCS += functions/gnutls_protocol_get_name.short
-FUNCS += functions/gnutls_session_set_data
-FUNCS += functions/gnutls_session_set_data.short
-FUNCS += functions/gnutls_session_get_data
-FUNCS += functions/gnutls_session_get_data.short
-FUNCS += functions/gnutls_session_get_data2
-FUNCS += functions/gnutls_session_get_data2.short
-FUNCS += functions/gnutls_session_get_random
-FUNCS += functions/gnutls_session_get_random.short
-FUNCS += functions/gnutls_session_set_premaster
-FUNCS += functions/gnutls_session_set_premaster.short
-FUNCS += functions/gnutls_session_get_id
-FUNCS += functions/gnutls_session_get_id.short
-FUNCS += functions/gnutls_session_channel_binding
-FUNCS += functions/gnutls_session_channel_binding.short
-FUNCS += functions/gnutls_session_is_resumed
-FUNCS += functions/gnutls_session_is_resumed.short
-FUNCS += functions/gnutls_session_resumption_requested
-FUNCS += functions/gnutls_session_resumption_requested.short
-FUNCS += functions/gnutls_db_set_cache_expiration
-FUNCS += functions/gnutls_db_set_cache_expiration.short
-FUNCS += functions/gnutls_db_remove_session
-FUNCS += functions/gnutls_db_remove_session.short
-FUNCS += functions/gnutls_db_set_retrieve_function
-FUNCS += functions/gnutls_db_set_retrieve_function.short
-FUNCS += functions/gnutls_db_set_remove_function
-FUNCS += functions/gnutls_db_set_remove_function.short
-FUNCS += functions/gnutls_db_set_store_function
-FUNCS += functions/gnutls_db_set_store_function.short
-FUNCS += functions/gnutls_db_set_ptr
-FUNCS += functions/gnutls_db_set_ptr.short
-FUNCS += functions/gnutls_db_get_ptr
-FUNCS += functions/gnutls_db_get_ptr.short
-FUNCS += functions/gnutls_db_check_entry
-FUNCS += functions/gnutls_db_check_entry.short
-FUNCS += functions/gnutls_handshake_set_post_client_hello_function
-FUNCS += functions/gnutls_handshake_set_post_client_hello_function.short
-FUNCS += functions/gnutls_handshake_set_max_packet_length
-FUNCS += functions/gnutls_handshake_set_max_packet_length.short
-FUNCS += functions/gnutls_check_version
-FUNCS += functions/gnutls_check_version.short
-FUNCS += functions/gnutls_credentials_clear
-FUNCS += functions/gnutls_credentials_clear.short
-FUNCS += functions/gnutls_credentials_set
-FUNCS += functions/gnutls_credentials_set.short
-FUNCS += functions/gnutls_anon_free_server_credentials
-FUNCS += functions/gnutls_anon_free_server_credentials.short
+FUNCS += functions/gnutls_alert_send
+FUNCS += functions/gnutls_alert_send.short
+FUNCS += functions/gnutls_alert_send_appropriate
+FUNCS += functions/gnutls_alert_send_appropriate.short
+FUNCS += functions/gnutls_anon_allocate_client_credentials
+FUNCS += functions/gnutls_anon_allocate_client_credentials.short
 FUNCS += functions/gnutls_anon_allocate_server_credentials
 FUNCS += functions/gnutls_anon_allocate_server_credentials.short
+FUNCS += functions/gnutls_anon_free_client_credentials
+FUNCS += functions/gnutls_anon_free_client_credentials.short
+FUNCS += functions/gnutls_anon_free_server_credentials
+FUNCS += functions/gnutls_anon_free_server_credentials.short
+FUNCS += functions/gnutls_anon_set_params_function
+FUNCS += functions/gnutls_anon_set_params_function.short
 FUNCS += functions/gnutls_anon_set_server_dh_params
 FUNCS += functions/gnutls_anon_set_server_dh_params.short
 FUNCS += functions/gnutls_anon_set_server_params_function
 FUNCS += functions/gnutls_anon_set_server_params_function.short
-FUNCS += functions/gnutls_anon_free_client_credentials
-FUNCS += functions/gnutls_anon_free_client_credentials.short
-FUNCS += functions/gnutls_anon_allocate_client_credentials
-FUNCS += functions/gnutls_anon_allocate_client_credentials.short
-FUNCS += functions/gnutls_certificate_free_credentials
-FUNCS += functions/gnutls_certificate_free_credentials.short
+FUNCS += functions/gnutls_auth_client_get_type
+FUNCS += functions/gnutls_auth_client_get_type.short
+FUNCS += functions/gnutls_auth_get_type
+FUNCS += functions/gnutls_auth_get_type.short
+FUNCS += functions/gnutls_auth_server_get_type
+FUNCS += functions/gnutls_auth_server_get_type.short
+FUNCS += functions/gnutls_bye
+FUNCS += functions/gnutls_bye.short
+FUNCS += functions/gnutls_certificate_activation_time_peers
+FUNCS += functions/gnutls_certificate_activation_time_peers.short
 FUNCS += functions/gnutls_certificate_allocate_credentials
 FUNCS += functions/gnutls_certificate_allocate_credentials.short
-FUNCS += functions/gnutls_certificate_get_issuer
-FUNCS += functions/gnutls_certificate_get_issuer.short
-FUNCS += functions/gnutls_certificate_free_keys
-FUNCS += functions/gnutls_certificate_free_keys.short
-FUNCS += functions/gnutls_certificate_free_cas
-FUNCS += functions/gnutls_certificate_free_cas.short
+FUNCS += functions/gnutls_certificate_client_get_request_status
+FUNCS += functions/gnutls_certificate_client_get_request_status.short
+FUNCS += functions/gnutls_certificate_expiration_time_peers
+FUNCS += functions/gnutls_certificate_expiration_time_peers.short
 FUNCS += functions/gnutls_certificate_free_ca_names
 FUNCS += functions/gnutls_certificate_free_ca_names.short
+FUNCS += functions/gnutls_certificate_free_cas
+FUNCS += functions/gnutls_certificate_free_cas.short
+FUNCS += functions/gnutls_certificate_free_credentials
+FUNCS += functions/gnutls_certificate_free_credentials.short
 FUNCS += functions/gnutls_certificate_free_crls
 FUNCS += functions/gnutls_certificate_free_crls.short
+FUNCS += functions/gnutls_certificate_free_keys
+FUNCS += functions/gnutls_certificate_free_keys.short
+FUNCS += functions/gnutls_certificate_get_issuer
+FUNCS += functions/gnutls_certificate_get_issuer.short
+FUNCS += functions/gnutls_certificate_get_ours
+FUNCS += functions/gnutls_certificate_get_ours.short
+FUNCS += functions/gnutls_certificate_get_peers
+FUNCS += functions/gnutls_certificate_get_peers.short
+FUNCS += functions/gnutls_certificate_send_x509_rdn_sequence
+FUNCS += functions/gnutls_certificate_send_x509_rdn_sequence.short
+FUNCS += functions/gnutls_certificate_server_set_request
+FUNCS += functions/gnutls_certificate_server_set_request.short
 FUNCS += functions/gnutls_certificate_set_dh_params
 FUNCS += functions/gnutls_certificate_set_dh_params.short
-FUNCS += functions/gnutls_certificate_set_verify_flags
-FUNCS += functions/gnutls_certificate_set_verify_flags.short
-FUNCS += functions/gnutls_certificate_set_verify_limits
+FUNCS += functions/gnutls_certificate_set_key
+FUNCS += functions/gnutls_certificate_set_key.short
+FUNCS += functions/gnutls_certificate_set_openpgp_key
+FUNCS += functions/gnutls_certificate_set_openpgp_key.short
+FUNCS += functions/gnutls_certificate_set_openpgp_key_file
+FUNCS += functions/gnutls_certificate_set_openpgp_key_file.short
+FUNCS += functions/gnutls_certificate_set_openpgp_key_file2
+FUNCS += functions/gnutls_certificate_set_openpgp_key_file2.short
+FUNCS += functions/gnutls_certificate_set_openpgp_key_mem
+FUNCS += functions/gnutls_certificate_set_openpgp_key_mem.short
+FUNCS += functions/gnutls_certificate_set_openpgp_key_mem2
+FUNCS += functions/gnutls_certificate_set_openpgp_key_mem2.short
+FUNCS += functions/gnutls_certificate_set_openpgp_keyring_file
+FUNCS += functions/gnutls_certificate_set_openpgp_keyring_file.short
+FUNCS += functions/gnutls_certificate_set_openpgp_keyring_mem
+FUNCS += functions/gnutls_certificate_set_openpgp_keyring_mem.short
+FUNCS += functions/gnutls_certificate_set_params_function
+FUNCS += functions/gnutls_certificate_set_params_function.short
+FUNCS += functions/gnutls_certificate_set_retrieve_function
+FUNCS += functions/gnutls_certificate_set_retrieve_function.short
+FUNCS += functions/gnutls_certificate_set_retrieve_function2
+FUNCS += functions/gnutls_certificate_set_retrieve_function2.short
+FUNCS += functions/gnutls_certificate_set_rsa_export_params
+FUNCS += functions/gnutls_certificate_set_rsa_export_params.short
+FUNCS += functions/gnutls_certificate_set_verify_flags
+FUNCS += functions/gnutls_certificate_set_verify_flags.short
+FUNCS += functions/gnutls_certificate_set_verify_function
+FUNCS += functions/gnutls_certificate_set_verify_function.short
+FUNCS += functions/gnutls_certificate_set_verify_limits
 FUNCS += functions/gnutls_certificate_set_verify_limits.short
-FUNCS += functions/gnutls_certificate_set_x509_system_trust
-FUNCS += functions/gnutls_certificate_set_x509_system_trust.short
-FUNCS += functions/gnutls_certificate_set_x509_trust_file
-FUNCS += functions/gnutls_certificate_set_x509_trust_file.short
-FUNCS += functions/gnutls_certificate_set_x509_trust_mem
-FUNCS += functions/gnutls_certificate_set_x509_trust_mem.short
+FUNCS += functions/gnutls_certificate_set_x509_crl
+FUNCS += functions/gnutls_certificate_set_x509_crl.short
 FUNCS += functions/gnutls_certificate_set_x509_crl_file
 FUNCS += functions/gnutls_certificate_set_x509_crl_file.short
 FUNCS += functions/gnutls_certificate_set_x509_crl_mem
 FUNCS += functions/gnutls_certificate_set_x509_crl_mem.short
+FUNCS += functions/gnutls_certificate_set_x509_key
+FUNCS += functions/gnutls_certificate_set_x509_key.short
 FUNCS += functions/gnutls_certificate_set_x509_key_file
 FUNCS += functions/gnutls_certificate_set_x509_key_file.short
 FUNCS += functions/gnutls_certificate_set_x509_key_mem
 FUNCS += functions/gnutls_certificate_set_x509_key_mem.short
-FUNCS += functions/gnutls_certificate_send_x509_rdn_sequence
-FUNCS += functions/gnutls_certificate_send_x509_rdn_sequence.short
 FUNCS += functions/gnutls_certificate_set_x509_simple_pkcs12_file
 FUNCS += functions/gnutls_certificate_set_x509_simple_pkcs12_file.short
 FUNCS += functions/gnutls_certificate_set_x509_simple_pkcs12_mem
 FUNCS += functions/gnutls_certificate_set_x509_simple_pkcs12_mem.short
-FUNCS += functions/gnutls_certificate_set_x509_key
-FUNCS += functions/gnutls_certificate_set_x509_key.short
+FUNCS += functions/gnutls_certificate_set_x509_system_trust
+FUNCS += functions/gnutls_certificate_set_x509_system_trust.short
 FUNCS += functions/gnutls_certificate_set_x509_trust
 FUNCS += functions/gnutls_certificate_set_x509_trust.short
-FUNCS += functions/gnutls_certificate_set_x509_crl
-FUNCS += functions/gnutls_certificate_set_x509_crl.short
-FUNCS += functions/gnutls_global_init
-FUNCS += functions/gnutls_global_init.short
-FUNCS += functions/gnutls_global_deinit
-FUNCS += functions/gnutls_global_deinit.short
-FUNCS += functions/gnutls_global_set_mutex
-FUNCS += functions/gnutls_global_set_mutex.short
-FUNCS += functions/gnutls_global_set_mem_functions
-FUNCS += functions/gnutls_global_set_mem_functions.short
-FUNCS += functions/gnutls_global_set_time_function
-FUNCS += functions/gnutls_global_set_time_function.short
-FUNCS += functions/gnutls_global_set_log_function
-FUNCS += functions/gnutls_global_set_log_function.short
-FUNCS += functions/gnutls_global_set_audit_log_function
-FUNCS += functions/gnutls_global_set_audit_log_function.short
-FUNCS += functions/gnutls_global_set_log_level
-FUNCS += functions/gnutls_global_set_log_level.short
-FUNCS += functions/gnutls_dh_params_init
-FUNCS += functions/gnutls_dh_params_init.short
+FUNCS += functions/gnutls_certificate_set_x509_trust_file
+FUNCS += functions/gnutls_certificate_set_x509_trust_file.short
+FUNCS += functions/gnutls_certificate_set_x509_trust_mem
+FUNCS += functions/gnutls_certificate_set_x509_trust_mem.short
+FUNCS += functions/gnutls_certificate_type_get
+FUNCS += functions/gnutls_certificate_type_get.short
+FUNCS += functions/gnutls_certificate_type_get_id
+FUNCS += functions/gnutls_certificate_type_get_id.short
+FUNCS += functions/gnutls_certificate_type_get_name
+FUNCS += functions/gnutls_certificate_type_get_name.short
+FUNCS += functions/gnutls_certificate_type_list
+FUNCS += functions/gnutls_certificate_type_list.short
+FUNCS += functions/gnutls_certificate_type_set_priority
+FUNCS += functions/gnutls_certificate_type_set_priority.short
+FUNCS += functions/gnutls_certificate_verify_peers2
+FUNCS += functions/gnutls_certificate_verify_peers2.short
+FUNCS += functions/gnutls_check_version
+FUNCS += functions/gnutls_check_version.short
+FUNCS += functions/gnutls_cipher_add_auth
+FUNCS += functions/gnutls_cipher_add_auth.short
+FUNCS += functions/gnutls_cipher_decrypt
+FUNCS += functions/gnutls_cipher_decrypt.short
+FUNCS += functions/gnutls_cipher_decrypt2
+FUNCS += functions/gnutls_cipher_decrypt2.short
+FUNCS += functions/gnutls_cipher_deinit
+FUNCS += functions/gnutls_cipher_deinit.short
+FUNCS += functions/gnutls_cipher_encrypt
+FUNCS += functions/gnutls_cipher_encrypt.short
+FUNCS += functions/gnutls_cipher_encrypt2
+FUNCS += functions/gnutls_cipher_encrypt2.short
+FUNCS += functions/gnutls_cipher_get
+FUNCS += functions/gnutls_cipher_get.short
+FUNCS += functions/gnutls_cipher_get_block_size
+FUNCS += functions/gnutls_cipher_get_block_size.short
+FUNCS += functions/gnutls_cipher_get_id
+FUNCS += functions/gnutls_cipher_get_id.short
+FUNCS += functions/gnutls_cipher_get_key_size
+FUNCS += functions/gnutls_cipher_get_key_size.short
+FUNCS += functions/gnutls_cipher_get_name
+FUNCS += functions/gnutls_cipher_get_name.short
+FUNCS += functions/gnutls_cipher_init
+FUNCS += functions/gnutls_cipher_init.short
+FUNCS += functions/gnutls_cipher_list
+FUNCS += functions/gnutls_cipher_list.short
+FUNCS += functions/gnutls_cipher_set_iv
+FUNCS += functions/gnutls_cipher_set_iv.short
+FUNCS += functions/gnutls_cipher_set_priority
+FUNCS += functions/gnutls_cipher_set_priority.short
+FUNCS += functions/gnutls_cipher_suite_get_name
+FUNCS += functions/gnutls_cipher_suite_get_name.short
+FUNCS += functions/gnutls_cipher_suite_info
+FUNCS += functions/gnutls_cipher_suite_info.short
+FUNCS += functions/gnutls_cipher_tag
+FUNCS += functions/gnutls_cipher_tag.short
+FUNCS += functions/gnutls_compression_get
+FUNCS += functions/gnutls_compression_get.short
+FUNCS += functions/gnutls_compression_get_id
+FUNCS += functions/gnutls_compression_get_id.short
+FUNCS += functions/gnutls_compression_get_name
+FUNCS += functions/gnutls_compression_get_name.short
+FUNCS += functions/gnutls_compression_list
+FUNCS += functions/gnutls_compression_list.short
+FUNCS += functions/gnutls_compression_set_priority
+FUNCS += functions/gnutls_compression_set_priority.short
+FUNCS += functions/gnutls_credentials_clear
+FUNCS += functions/gnutls_credentials_clear.short
+FUNCS += functions/gnutls_credentials_set
+FUNCS += functions/gnutls_credentials_set.short
+FUNCS += functions/gnutls_db_check_entry
+FUNCS += functions/gnutls_db_check_entry.short
+FUNCS += functions/gnutls_db_get_ptr
+FUNCS += functions/gnutls_db_get_ptr.short
+FUNCS += functions/gnutls_db_remove_session
+FUNCS += functions/gnutls_db_remove_session.short
+FUNCS += functions/gnutls_db_set_cache_expiration
+FUNCS += functions/gnutls_db_set_cache_expiration.short
+FUNCS += functions/gnutls_db_set_ptr
+FUNCS += functions/gnutls_db_set_ptr.short
+FUNCS += functions/gnutls_db_set_remove_function
+FUNCS += functions/gnutls_db_set_remove_function.short
+FUNCS += functions/gnutls_db_set_retrieve_function
+FUNCS += functions/gnutls_db_set_retrieve_function.short
+FUNCS += functions/gnutls_db_set_store_function
+FUNCS += functions/gnutls_db_set_store_function.short
+FUNCS += functions/gnutls_deinit
+FUNCS += functions/gnutls_deinit.short
+FUNCS += functions/gnutls_dh_get_group
+FUNCS += functions/gnutls_dh_get_group.short
+FUNCS += functions/gnutls_dh_get_peers_public_bits
+FUNCS += functions/gnutls_dh_get_peers_public_bits.short
+FUNCS += functions/gnutls_dh_get_prime_bits
+FUNCS += functions/gnutls_dh_get_prime_bits.short
+FUNCS += functions/gnutls_dh_get_pubkey
+FUNCS += functions/gnutls_dh_get_pubkey.short
+FUNCS += functions/gnutls_dh_get_secret_bits
+FUNCS += functions/gnutls_dh_get_secret_bits.short
+FUNCS += functions/gnutls_dh_params_cpy
+FUNCS += functions/gnutls_dh_params_cpy.short
 FUNCS += functions/gnutls_dh_params_deinit
 FUNCS += functions/gnutls_dh_params_deinit.short
-FUNCS += functions/gnutls_dh_params_import_raw
-FUNCS += functions/gnutls_dh_params_import_raw.short
-FUNCS += functions/gnutls_dh_params_import_pkcs3
-FUNCS += functions/gnutls_dh_params_import_pkcs3.short
-FUNCS += functions/gnutls_dh_params_generate2
-FUNCS += functions/gnutls_dh_params_generate2.short
 FUNCS += functions/gnutls_dh_params_export_pkcs3
 FUNCS += functions/gnutls_dh_params_export_pkcs3.short
 FUNCS += functions/gnutls_dh_params_export_raw
 FUNCS += functions/gnutls_dh_params_export_raw.short
-FUNCS += functions/gnutls_dh_params_cpy
-FUNCS += functions/gnutls_dh_params_cpy.short
-FUNCS += functions/gnutls_transport_set_ptr
-FUNCS += functions/gnutls_transport_set_ptr.short
-FUNCS += functions/gnutls_transport_set_ptr2
-FUNCS += functions/gnutls_transport_set_ptr2.short
-FUNCS += functions/gnutls_transport_get_ptr
-FUNCS += functions/gnutls_transport_get_ptr.short
-FUNCS += functions/gnutls_transport_get_ptr2
-FUNCS += functions/gnutls_transport_get_ptr2.short
-FUNCS += functions/gnutls_transport_set_vec_push_function
-FUNCS += functions/gnutls_transport_set_vec_push_function.short
-FUNCS += functions/gnutls_transport_set_push_function
-FUNCS += functions/gnutls_transport_set_push_function.short
-FUNCS += functions/gnutls_transport_set_pull_function
-FUNCS += functions/gnutls_transport_set_pull_function.short
-FUNCS += functions/gnutls_transport_set_pull_timeout_function
-FUNCS += functions/gnutls_transport_set_pull_timeout_function.short
-FUNCS += functions/gnutls_transport_set_errno_function
-FUNCS += functions/gnutls_transport_set_errno_function.short
-FUNCS += functions/gnutls_transport_set_errno
-FUNCS += functions/gnutls_transport_set_errno.short
-FUNCS += functions/gnutls_session_set_ptr
-FUNCS += functions/gnutls_session_set_ptr.short
-FUNCS += functions/gnutls_session_get_ptr
-FUNCS += functions/gnutls_session_get_ptr.short
-FUNCS += functions/gnutls_openpgp_send_cert
-FUNCS += functions/gnutls_openpgp_send_cert.short
+FUNCS += functions/gnutls_dh_params_generate2
+FUNCS += functions/gnutls_dh_params_generate2.short
+FUNCS += functions/gnutls_dh_params_import_pkcs3
+FUNCS += functions/gnutls_dh_params_import_pkcs3.short
+FUNCS += functions/gnutls_dh_params_import_raw
+FUNCS += functions/gnutls_dh_params_import_raw.short
+FUNCS += functions/gnutls_dh_params_init
+FUNCS += functions/gnutls_dh_params_init.short
+FUNCS += functions/gnutls_dh_set_prime_bits
+FUNCS += functions/gnutls_dh_set_prime_bits.short
+FUNCS += functions/gnutls_dtls_cookie_send
+FUNCS += functions/gnutls_dtls_cookie_send.short
+FUNCS += functions/gnutls_dtls_cookie_verify
+FUNCS += functions/gnutls_dtls_cookie_verify.short
+FUNCS += functions/gnutls_dtls_get_data_mtu
+FUNCS += functions/gnutls_dtls_get_data_mtu.short
+FUNCS += functions/gnutls_dtls_get_mtu
+FUNCS += functions/gnutls_dtls_get_mtu.short
+FUNCS += functions/gnutls_dtls_get_timeout
+FUNCS += functions/gnutls_dtls_get_timeout.short
+FUNCS += functions/gnutls_dtls_prestate_set
+FUNCS += functions/gnutls_dtls_prestate_set.short
+FUNCS += functions/gnutls_dtls_set_data_mtu
+FUNCS += functions/gnutls_dtls_set_data_mtu.short
+FUNCS += functions/gnutls_dtls_set_mtu
+FUNCS += functions/gnutls_dtls_set_mtu.short
+FUNCS += functions/gnutls_dtls_set_timeouts
+FUNCS += functions/gnutls_dtls_set_timeouts.short
+FUNCS += functions/gnutls_ecc_curve_get
+FUNCS += functions/gnutls_ecc_curve_get.short
+FUNCS += functions/gnutls_ecc_curve_get_name
+FUNCS += functions/gnutls_ecc_curve_get_name.short
+FUNCS += functions/gnutls_ecc_curve_get_size
+FUNCS += functions/gnutls_ecc_curve_get_size.short
+FUNCS += functions/gnutls_ecc_curve_list
+FUNCS += functions/gnutls_ecc_curve_list.short
+FUNCS += functions/gnutls_error_is_fatal
+FUNCS += functions/gnutls_error_is_fatal.short
+FUNCS += functions/gnutls_error_to_alert
+FUNCS += functions/gnutls_error_to_alert.short
 FUNCS += functions/gnutls_fingerprint
 FUNCS += functions/gnutls_fingerprint.short
-FUNCS += functions/gnutls_random_art
-FUNCS += functions/gnutls_random_art.short
-FUNCS += functions/gnutls_srp_free_client_credentials
-FUNCS += functions/gnutls_srp_free_client_credentials.short
-FUNCS += functions/gnutls_srp_allocate_client_credentials
-FUNCS += functions/gnutls_srp_allocate_client_credentials.short
-FUNCS += functions/gnutls_srp_set_client_credentials
-FUNCS += functions/gnutls_srp_set_client_credentials.short
-FUNCS += functions/gnutls_srp_free_server_credentials
-FUNCS += functions/gnutls_srp_free_server_credentials.short
-FUNCS += functions/gnutls_srp_allocate_server_credentials
-FUNCS += functions/gnutls_srp_allocate_server_credentials.short
-FUNCS += functions/gnutls_srp_set_server_credentials_file
-FUNCS += functions/gnutls_srp_set_server_credentials_file.short
-FUNCS += functions/gnutls_srp_server_get_username
-FUNCS += functions/gnutls_srp_server_get_username.short
-FUNCS += functions/gnutls_srp_set_prime_bits
-FUNCS += functions/gnutls_srp_set_prime_bits.short
-FUNCS += functions/gnutls_srp_verifier
-FUNCS += functions/gnutls_srp_verifier.short
-FUNCS += functions/gnutls_srp_set_server_credentials_function
-FUNCS += functions/gnutls_srp_set_server_credentials_function.short
-FUNCS += functions/gnutls_srp_set_client_credentials_function
-FUNCS += functions/gnutls_srp_set_client_credentials_function.short
-FUNCS += functions/gnutls_srp_base64_encode
-FUNCS += functions/gnutls_srp_base64_encode.short
-FUNCS += functions/gnutls_srp_base64_encode_alloc
-FUNCS += functions/gnutls_srp_base64_encode_alloc.short
-FUNCS += functions/gnutls_srp_base64_decode
-FUNCS += functions/gnutls_srp_base64_decode.short
-FUNCS += functions/gnutls_srp_base64_decode_alloc
-FUNCS += functions/gnutls_srp_base64_decode_alloc.short
-FUNCS += functions/gnutls_psk_free_client_credentials
-FUNCS += functions/gnutls_psk_free_client_credentials.short
-FUNCS += functions/gnutls_psk_allocate_client_credentials
-FUNCS += functions/gnutls_psk_allocate_client_credentials.short
-FUNCS += functions/gnutls_psk_set_client_credentials
-FUNCS += functions/gnutls_psk_set_client_credentials.short
-FUNCS += functions/gnutls_psk_free_server_credentials
-FUNCS += functions/gnutls_psk_free_server_credentials.short
-FUNCS += functions/gnutls_psk_allocate_server_credentials
-FUNCS += functions/gnutls_psk_allocate_server_credentials.short
-FUNCS += functions/gnutls_psk_set_server_credentials_file
-FUNCS += functions/gnutls_psk_set_server_credentials_file.short
-FUNCS += functions/gnutls_psk_set_server_credentials_hint
-FUNCS += functions/gnutls_psk_set_server_credentials_hint.short
-FUNCS += functions/gnutls_psk_server_get_username
-FUNCS += functions/gnutls_psk_server_get_username.short
-FUNCS += functions/gnutls_psk_client_get_hint
-FUNCS += functions/gnutls_psk_client_get_hint.short
-FUNCS += functions/gnutls_psk_set_server_credentials_function
-FUNCS += functions/gnutls_psk_set_server_credentials_function.short
-FUNCS += functions/gnutls_psk_set_client_credentials_function
-FUNCS += functions/gnutls_psk_set_client_credentials_function.short
-FUNCS += functions/gnutls_hex_encode
-FUNCS += functions/gnutls_hex_encode.short
-FUNCS += functions/gnutls_hex_decode
-FUNCS += functions/gnutls_hex_decode.short
-FUNCS += functions/gnutls_psk_set_server_dh_params
-FUNCS += functions/gnutls_psk_set_server_dh_params.short
-FUNCS += functions/gnutls_psk_set_server_params_function
-FUNCS += functions/gnutls_psk_set_server_params_function.short
-FUNCS += functions/gnutls_auth_get_type
-FUNCS += functions/gnutls_auth_get_type.short
-FUNCS += functions/gnutls_auth_server_get_type
-FUNCS += functions/gnutls_auth_server_get_type.short
-FUNCS += functions/gnutls_auth_client_get_type
-FUNCS += functions/gnutls_auth_client_get_type.short
-FUNCS += functions/gnutls_dh_set_prime_bits
-FUNCS += functions/gnutls_dh_set_prime_bits.short
-FUNCS += functions/gnutls_dh_get_secret_bits
-FUNCS += functions/gnutls_dh_get_secret_bits.short
-FUNCS += functions/gnutls_dh_get_peers_public_bits
-FUNCS += functions/gnutls_dh_get_peers_public_bits.short
-FUNCS += functions/gnutls_dh_get_prime_bits
-FUNCS += functions/gnutls_dh_get_prime_bits.short
-FUNCS += functions/gnutls_dh_get_group
-FUNCS += functions/gnutls_dh_get_group.short
-FUNCS += functions/gnutls_dh_get_pubkey
-FUNCS += functions/gnutls_dh_get_pubkey.short
-FUNCS += functions/gnutls_certificate_set_retrieve_function
-FUNCS += functions/gnutls_certificate_set_retrieve_function.short
-FUNCS += functions/gnutls_certificate_set_verify_function
-FUNCS += functions/gnutls_certificate_set_verify_function.short
-FUNCS += functions/gnutls_certificate_server_set_request
-FUNCS += functions/gnutls_certificate_server_set_request.short
-FUNCS += functions/gnutls_certificate_get_peers
-FUNCS += functions/gnutls_certificate_get_peers.short
-FUNCS += functions/gnutls_certificate_get_ours
-FUNCS += functions/gnutls_certificate_get_ours.short
-FUNCS += functions/gnutls_certificate_activation_time_peers
-FUNCS += functions/gnutls_certificate_activation_time_peers.short
-FUNCS += functions/gnutls_certificate_expiration_time_peers
-FUNCS += functions/gnutls_certificate_expiration_time_peers.short
-FUNCS += functions/gnutls_certificate_client_get_request_status
-FUNCS += functions/gnutls_certificate_client_get_request_status.short
-FUNCS += functions/gnutls_certificate_verify_peers2
-FUNCS += functions/gnutls_certificate_verify_peers2.short
-FUNCS += functions/gnutls_pem_base64_encode
-FUNCS += functions/gnutls_pem_base64_encode.short
-FUNCS += functions/gnutls_pem_base64_decode
-FUNCS += functions/gnutls_pem_base64_decode.short
-FUNCS += functions/gnutls_pem_base64_encode_alloc
-FUNCS += functions/gnutls_pem_base64_encode_alloc.short
-FUNCS += functions/gnutls_pem_base64_decode_alloc
-FUNCS += functions/gnutls_pem_base64_decode_alloc.short
-FUNCS += functions/gnutls_certificate_set_params_function
-FUNCS += functions/gnutls_certificate_set_params_function.short
-FUNCS += functions/gnutls_anon_set_params_function
-FUNCS += functions/gnutls_anon_set_params_function.short
-FUNCS += functions/gnutls_psk_set_params_function
-FUNCS += functions/gnutls_psk_set_params_function.short
+FUNCS += functions/gnutls_global_deinit
+FUNCS += functions/gnutls_global_deinit.short
+FUNCS += functions/gnutls_global_init
+FUNCS += functions/gnutls_global_init.short
+FUNCS += functions/gnutls_global_set_audit_log_function
+FUNCS += functions/gnutls_global_set_audit_log_function.short
+FUNCS += functions/gnutls_global_set_log_function
+FUNCS += functions/gnutls_global_set_log_function.short
+FUNCS += functions/gnutls_global_set_log_level
+FUNCS += functions/gnutls_global_set_log_level.short
+FUNCS += functions/gnutls_global_set_mem_functions
+FUNCS += functions/gnutls_global_set_mem_functions.short
+FUNCS += functions/gnutls_global_set_mutex
+FUNCS += functions/gnutls_global_set_mutex.short
+FUNCS += functions/gnutls_global_set_time_function
+FUNCS += functions/gnutls_global_set_time_function.short
+FUNCS += functions/gnutls_handshake
+FUNCS += functions/gnutls_handshake.short
+FUNCS += functions/gnutls_handshake_get_last_in
+FUNCS += functions/gnutls_handshake_get_last_in.short
+FUNCS += functions/gnutls_handshake_get_last_out
+FUNCS += functions/gnutls_handshake_get_last_out.short
+FUNCS += functions/gnutls_handshake_set_max_packet_length
+FUNCS += functions/gnutls_handshake_set_max_packet_length.short
+FUNCS += functions/gnutls_handshake_set_post_client_hello_function
+FUNCS += functions/gnutls_handshake_set_post_client_hello_function.short
+FUNCS += functions/gnutls_handshake_set_private_extensions
+FUNCS += functions/gnutls_handshake_set_private_extensions.short
+FUNCS += functions/gnutls_hash
+FUNCS += functions/gnutls_hash.short
+FUNCS += functions/gnutls_hash_deinit
+FUNCS += functions/gnutls_hash_deinit.short
+FUNCS += functions/gnutls_hash_fast
+FUNCS += functions/gnutls_hash_fast.short
+FUNCS += functions/gnutls_hash_get_len
+FUNCS += functions/gnutls_hash_get_len.short
+FUNCS += functions/gnutls_hash_init
+FUNCS += functions/gnutls_hash_init.short
+FUNCS += functions/gnutls_hash_output
+FUNCS += functions/gnutls_hash_output.short
 FUNCS += functions/gnutls_hex2bin
 FUNCS += functions/gnutls_hex2bin.short
-FUNCS += functions/gnutls_tdb_init
-FUNCS += functions/gnutls_tdb_init.short
-FUNCS += functions/gnutls_tdb_set_store_func
-FUNCS += functions/gnutls_tdb_set_store_func.short
-FUNCS += functions/gnutls_tdb_set_store_commitment_func
-FUNCS += functions/gnutls_tdb_set_store_commitment_func.short
-FUNCS += functions/gnutls_tdb_set_verify_func
-FUNCS += functions/gnutls_tdb_set_verify_func.short
-FUNCS += functions/gnutls_tdb_deinit
-FUNCS += functions/gnutls_tdb_deinit.short
-FUNCS += functions/gnutls_verify_stored_pubkey
-FUNCS += functions/gnutls_verify_stored_pubkey.short
-FUNCS += functions/gnutls_store_commitment
-FUNCS += functions/gnutls_store_commitment.short
-FUNCS += functions/gnutls_store_pubkey
-FUNCS += functions/gnutls_store_pubkey.short
-FUNCS += functions/gnutls_ocsp_req_init
-FUNCS += functions/gnutls_ocsp_req_init.short
+FUNCS += functions/gnutls_hex_decode
+FUNCS += functions/gnutls_hex_decode.short
+FUNCS += functions/gnutls_hex_encode
+FUNCS += functions/gnutls_hex_encode.short
+FUNCS += functions/gnutls_hmac
+FUNCS += functions/gnutls_hmac.short
+FUNCS += functions/gnutls_hmac_deinit
+FUNCS += functions/gnutls_hmac_deinit.short
+FUNCS += functions/gnutls_hmac_fast
+FUNCS += functions/gnutls_hmac_fast.short
+FUNCS += functions/gnutls_hmac_get_len
+FUNCS += functions/gnutls_hmac_get_len.short
+FUNCS += functions/gnutls_hmac_init
+FUNCS += functions/gnutls_hmac_init.short
+FUNCS += functions/gnutls_hmac_output
+FUNCS += functions/gnutls_hmac_output.short
+FUNCS += functions/gnutls_init
+FUNCS += functions/gnutls_init.short
+FUNCS += functions/gnutls_key_generate
+FUNCS += functions/gnutls_key_generate.short
+FUNCS += functions/gnutls_kx_get
+FUNCS += functions/gnutls_kx_get.short
+FUNCS += functions/gnutls_kx_get_id
+FUNCS += functions/gnutls_kx_get_id.short
+FUNCS += functions/gnutls_kx_get_name
+FUNCS += functions/gnutls_kx_get_name.short
+FUNCS += functions/gnutls_kx_list
+FUNCS += functions/gnutls_kx_list.short
+FUNCS += functions/gnutls_kx_set_priority
+FUNCS += functions/gnutls_kx_set_priority.short
+FUNCS += functions/gnutls_mac_get
+FUNCS += functions/gnutls_mac_get.short
+FUNCS += functions/gnutls_mac_get_id
+FUNCS += functions/gnutls_mac_get_id.short
+FUNCS += functions/gnutls_mac_get_key_size
+FUNCS += functions/gnutls_mac_get_key_size.short
+FUNCS += functions/gnutls_mac_get_name
+FUNCS += functions/gnutls_mac_get_name.short
+FUNCS += functions/gnutls_mac_list
+FUNCS += functions/gnutls_mac_list.short
+FUNCS += functions/gnutls_mac_set_priority
+FUNCS += functions/gnutls_mac_set_priority.short
+FUNCS += functions/gnutls_ocsp_req_add_cert
+FUNCS += functions/gnutls_ocsp_req_add_cert.short
+FUNCS += functions/gnutls_ocsp_req_add_cert_id
+FUNCS += functions/gnutls_ocsp_req_add_cert_id.short
 FUNCS += functions/gnutls_ocsp_req_deinit
 FUNCS += functions/gnutls_ocsp_req_deinit.short
-FUNCS += functions/gnutls_ocsp_req_import
-FUNCS += functions/gnutls_ocsp_req_import.short
 FUNCS += functions/gnutls_ocsp_req_export
 FUNCS += functions/gnutls_ocsp_req_export.short
-FUNCS += functions/gnutls_ocsp_req_print
-FUNCS += functions/gnutls_ocsp_req_print.short
-FUNCS += functions/gnutls_ocsp_req_get_version
-FUNCS += functions/gnutls_ocsp_req_get_version.short
 FUNCS += functions/gnutls_ocsp_req_get_cert_id
 FUNCS += functions/gnutls_ocsp_req_get_cert_id.short
-FUNCS += functions/gnutls_ocsp_req_add_cert_id
-FUNCS += functions/gnutls_ocsp_req_add_cert_id.short
-FUNCS += functions/gnutls_ocsp_req_add_cert
-FUNCS += functions/gnutls_ocsp_req_add_cert.short
 FUNCS += functions/gnutls_ocsp_req_get_extension
 FUNCS += functions/gnutls_ocsp_req_get_extension.short
-FUNCS += functions/gnutls_ocsp_req_set_extension
-FUNCS += functions/gnutls_ocsp_req_set_extension.short
 FUNCS += functions/gnutls_ocsp_req_get_nonce
 FUNCS += functions/gnutls_ocsp_req_get_nonce.short
-FUNCS += functions/gnutls_ocsp_req_set_nonce
-FUNCS += functions/gnutls_ocsp_req_set_nonce.short
+FUNCS += functions/gnutls_ocsp_req_get_version
+FUNCS += functions/gnutls_ocsp_req_get_version.short
+FUNCS += functions/gnutls_ocsp_req_import
+FUNCS += functions/gnutls_ocsp_req_import.short
+FUNCS += functions/gnutls_ocsp_req_init
+FUNCS += functions/gnutls_ocsp_req_init.short
+FUNCS += functions/gnutls_ocsp_req_print
+FUNCS += functions/gnutls_ocsp_req_print.short
 FUNCS += functions/gnutls_ocsp_req_randomize_nonce
 FUNCS += functions/gnutls_ocsp_req_randomize_nonce.short
-FUNCS += functions/gnutls_ocsp_resp_init
-FUNCS += functions/gnutls_ocsp_resp_init.short
+FUNCS += functions/gnutls_ocsp_req_set_extension
+FUNCS += functions/gnutls_ocsp_req_set_extension.short
+FUNCS += functions/gnutls_ocsp_req_set_nonce
+FUNCS += functions/gnutls_ocsp_req_set_nonce.short
 FUNCS += functions/gnutls_ocsp_resp_deinit
 FUNCS += functions/gnutls_ocsp_resp_deinit.short
-FUNCS += functions/gnutls_ocsp_resp_import
-FUNCS += functions/gnutls_ocsp_resp_import.short
 FUNCS += functions/gnutls_ocsp_resp_export
 FUNCS += functions/gnutls_ocsp_resp_export.short
-FUNCS += functions/gnutls_ocsp_resp_print
-FUNCS += functions/gnutls_ocsp_resp_print.short
-FUNCS += functions/gnutls_ocsp_resp_get_status
-FUNCS += functions/gnutls_ocsp_resp_get_status.short
-FUNCS += functions/gnutls_ocsp_resp_get_response
-FUNCS += functions/gnutls_ocsp_resp_get_response.short
-FUNCS += functions/gnutls_ocsp_resp_get_version
-FUNCS += functions/gnutls_ocsp_resp_get_version.short
-FUNCS += functions/gnutls_ocsp_resp_get_responder
-FUNCS += functions/gnutls_ocsp_resp_get_responder.short
-FUNCS += functions/gnutls_ocsp_resp_get_produced
-FUNCS += functions/gnutls_ocsp_resp_get_produced.short
-FUNCS += functions/gnutls_ocsp_resp_get_single
-FUNCS += functions/gnutls_ocsp_resp_get_single.short
+FUNCS += functions/gnutls_ocsp_resp_get_certs
+FUNCS += functions/gnutls_ocsp_resp_get_certs.short
 FUNCS += functions/gnutls_ocsp_resp_get_extension
 FUNCS += functions/gnutls_ocsp_resp_get_extension.short
 FUNCS += functions/gnutls_ocsp_resp_get_nonce
 FUNCS += functions/gnutls_ocsp_resp_get_nonce.short
-FUNCS += functions/gnutls_ocsp_resp_get_signature_algorithm
-FUNCS += functions/gnutls_ocsp_resp_get_signature_algorithm.short
+FUNCS += functions/gnutls_ocsp_resp_get_produced
+FUNCS += functions/gnutls_ocsp_resp_get_produced.short
+FUNCS += functions/gnutls_ocsp_resp_get_responder
+FUNCS += functions/gnutls_ocsp_resp_get_responder.short
+FUNCS += functions/gnutls_ocsp_resp_get_response
+FUNCS += functions/gnutls_ocsp_resp_get_response.short
 FUNCS += functions/gnutls_ocsp_resp_get_signature
 FUNCS += functions/gnutls_ocsp_resp_get_signature.short
-FUNCS += functions/gnutls_ocsp_resp_get_certs
-FUNCS += functions/gnutls_ocsp_resp_get_certs.short
-FUNCS += functions/gnutls_ocsp_resp_verify_direct
-FUNCS += functions/gnutls_ocsp_resp_verify_direct.short
-FUNCS += functions/gnutls_ocsp_resp_verify
+FUNCS += functions/gnutls_ocsp_resp_get_signature_algorithm
+FUNCS += functions/gnutls_ocsp_resp_get_signature_algorithm.short
+FUNCS += functions/gnutls_ocsp_resp_get_single
+FUNCS += functions/gnutls_ocsp_resp_get_single.short
+FUNCS += functions/gnutls_ocsp_resp_get_status
+FUNCS += functions/gnutls_ocsp_resp_get_status.short
+FUNCS += functions/gnutls_ocsp_resp_get_version
+FUNCS += functions/gnutls_ocsp_resp_get_version.short
+FUNCS += functions/gnutls_ocsp_resp_import
+FUNCS += functions/gnutls_ocsp_resp_import.short
+FUNCS += functions/gnutls_ocsp_resp_init
+FUNCS += functions/gnutls_ocsp_resp_init.short
+FUNCS += functions/gnutls_ocsp_resp_print
+FUNCS += functions/gnutls_ocsp_resp_print.short
+FUNCS += functions/gnutls_ocsp_resp_verify
 FUNCS += functions/gnutls_ocsp_resp_verify.short
-FUNCS += functions/gnutls_openpgp_crt_init
-FUNCS += functions/gnutls_openpgp_crt_init.short
+FUNCS += functions/gnutls_ocsp_resp_verify_direct
+FUNCS += functions/gnutls_ocsp_resp_verify_direct.short
+FUNCS += functions/gnutls_openpgp_crt_check_hostname
+FUNCS += functions/gnutls_openpgp_crt_check_hostname.short
 FUNCS += functions/gnutls_openpgp_crt_deinit
 FUNCS += functions/gnutls_openpgp_crt_deinit.short
-FUNCS += functions/gnutls_openpgp_crt_import
-FUNCS += functions/gnutls_openpgp_crt_import.short
 FUNCS += functions/gnutls_openpgp_crt_export
 FUNCS += functions/gnutls_openpgp_crt_export.short
-FUNCS += functions/gnutls_openpgp_crt_print
-FUNCS += functions/gnutls_openpgp_crt_print.short
-FUNCS += functions/gnutls_openpgp_crt_get_key_usage
-FUNCS += functions/gnutls_openpgp_crt_get_key_usage.short
-FUNCS += functions/gnutls_openpgp_crt_get_fingerprint
-FUNCS += functions/gnutls_openpgp_crt_get_fingerprint.short
-FUNCS += functions/gnutls_openpgp_crt_get_subkey_fingerprint
-FUNCS += functions/gnutls_openpgp_crt_get_subkey_fingerprint.short
-FUNCS += functions/gnutls_openpgp_crt_get_name
-FUNCS += functions/gnutls_openpgp_crt_get_name.short
-FUNCS += functions/gnutls_openpgp_crt_get_pk_algorithm
-FUNCS += functions/gnutls_openpgp_crt_get_pk_algorithm.short
-FUNCS += functions/gnutls_openpgp_crt_get_version
-FUNCS += functions/gnutls_openpgp_crt_get_version.short
+FUNCS += functions/gnutls_openpgp_crt_get_auth_subkey
+FUNCS += functions/gnutls_openpgp_crt_get_auth_subkey.short
 FUNCS += functions/gnutls_openpgp_crt_get_creation_time
 FUNCS += functions/gnutls_openpgp_crt_get_creation_time.short
 FUNCS += functions/gnutls_openpgp_crt_get_expiration_time
 FUNCS += functions/gnutls_openpgp_crt_get_expiration_time.short
+FUNCS += functions/gnutls_openpgp_crt_get_fingerprint
+FUNCS += functions/gnutls_openpgp_crt_get_fingerprint.short
 FUNCS += functions/gnutls_openpgp_crt_get_key_id
 FUNCS += functions/gnutls_openpgp_crt_get_key_id.short
-FUNCS += functions/gnutls_openpgp_crt_check_hostname
-FUNCS += functions/gnutls_openpgp_crt_check_hostname.short
+FUNCS += functions/gnutls_openpgp_crt_get_key_usage
+FUNCS += functions/gnutls_openpgp_crt_get_key_usage.short
+FUNCS += functions/gnutls_openpgp_crt_get_name
+FUNCS += functions/gnutls_openpgp_crt_get_name.short
+FUNCS += functions/gnutls_openpgp_crt_get_pk_algorithm
+FUNCS += functions/gnutls_openpgp_crt_get_pk_algorithm.short
+FUNCS += functions/gnutls_openpgp_crt_get_pk_dsa_raw
+FUNCS += functions/gnutls_openpgp_crt_get_pk_dsa_raw.short
+FUNCS += functions/gnutls_openpgp_crt_get_pk_rsa_raw
+FUNCS += functions/gnutls_openpgp_crt_get_pk_rsa_raw.short
+FUNCS += functions/gnutls_openpgp_crt_get_preferred_key_id
+FUNCS += functions/gnutls_openpgp_crt_get_preferred_key_id.short
 FUNCS += functions/gnutls_openpgp_crt_get_revoked_status
 FUNCS += functions/gnutls_openpgp_crt_get_revoked_status.short
 FUNCS += functions/gnutls_openpgp_crt_get_subkey_count
 FUNCS += functions/gnutls_openpgp_crt_get_subkey_count.short
-FUNCS += functions/gnutls_openpgp_crt_get_subkey_idx
-FUNCS += functions/gnutls_openpgp_crt_get_subkey_idx.short
-FUNCS += functions/gnutls_openpgp_crt_get_subkey_revoked_status
-FUNCS += functions/gnutls_openpgp_crt_get_subkey_revoked_status.short
-FUNCS += functions/gnutls_openpgp_crt_get_subkey_pk_algorithm
-FUNCS += functions/gnutls_openpgp_crt_get_subkey_pk_algorithm.short
 FUNCS += functions/gnutls_openpgp_crt_get_subkey_creation_time
 FUNCS += functions/gnutls_openpgp_crt_get_subkey_creation_time.short
 FUNCS += functions/gnutls_openpgp_crt_get_subkey_expiration_time
 FUNCS += functions/gnutls_openpgp_crt_get_subkey_expiration_time.short
+FUNCS += functions/gnutls_openpgp_crt_get_subkey_fingerprint
+FUNCS += functions/gnutls_openpgp_crt_get_subkey_fingerprint.short
 FUNCS += functions/gnutls_openpgp_crt_get_subkey_id
 FUNCS += functions/gnutls_openpgp_crt_get_subkey_id.short
-FUNCS += functions/gnutls_openpgp_crt_get_subkey_usage
-FUNCS += functions/gnutls_openpgp_crt_get_subkey_usage.short
+FUNCS += functions/gnutls_openpgp_crt_get_subkey_idx
+FUNCS += functions/gnutls_openpgp_crt_get_subkey_idx.short
+FUNCS += functions/gnutls_openpgp_crt_get_subkey_pk_algorithm
+FUNCS += functions/gnutls_openpgp_crt_get_subkey_pk_algorithm.short
 FUNCS += functions/gnutls_openpgp_crt_get_subkey_pk_dsa_raw
 FUNCS += functions/gnutls_openpgp_crt_get_subkey_pk_dsa_raw.short
 FUNCS += functions/gnutls_openpgp_crt_get_subkey_pk_rsa_raw
 FUNCS += functions/gnutls_openpgp_crt_get_subkey_pk_rsa_raw.short
-FUNCS += functions/gnutls_openpgp_crt_get_pk_dsa_raw
-FUNCS += functions/gnutls_openpgp_crt_get_pk_dsa_raw.short
-FUNCS += functions/gnutls_openpgp_crt_get_pk_rsa_raw
-FUNCS += functions/gnutls_openpgp_crt_get_pk_rsa_raw.short
-FUNCS += functions/gnutls_openpgp_crt_get_preferred_key_id
-FUNCS += functions/gnutls_openpgp_crt_get_preferred_key_id.short
+FUNCS += functions/gnutls_openpgp_crt_get_subkey_revoked_status
+FUNCS += functions/gnutls_openpgp_crt_get_subkey_revoked_status.short
+FUNCS += functions/gnutls_openpgp_crt_get_subkey_usage
+FUNCS += functions/gnutls_openpgp_crt_get_subkey_usage.short
+FUNCS += functions/gnutls_openpgp_crt_get_version
+FUNCS += functions/gnutls_openpgp_crt_get_version.short
+FUNCS += functions/gnutls_openpgp_crt_import
+FUNCS += functions/gnutls_openpgp_crt_import.short
+FUNCS += functions/gnutls_openpgp_crt_init
+FUNCS += functions/gnutls_openpgp_crt_init.short
+FUNCS += functions/gnutls_openpgp_crt_print
+FUNCS += functions/gnutls_openpgp_crt_print.short
 FUNCS += functions/gnutls_openpgp_crt_set_preferred_key_id
 FUNCS += functions/gnutls_openpgp_crt_set_preferred_key_id.short
-FUNCS += functions/gnutls_openpgp_privkey_init
-FUNCS += functions/gnutls_openpgp_privkey_init.short
+FUNCS += functions/gnutls_openpgp_crt_verify_ring
+FUNCS += functions/gnutls_openpgp_crt_verify_ring.short
+FUNCS += functions/gnutls_openpgp_crt_verify_self
+FUNCS += functions/gnutls_openpgp_crt_verify_self.short
+FUNCS += functions/gnutls_openpgp_keyring_check_id
+FUNCS += functions/gnutls_openpgp_keyring_check_id.short
+FUNCS += functions/gnutls_openpgp_keyring_deinit
+FUNCS += functions/gnutls_openpgp_keyring_deinit.short
+FUNCS += functions/gnutls_openpgp_keyring_get_crt
+FUNCS += functions/gnutls_openpgp_keyring_get_crt.short
+FUNCS += functions/gnutls_openpgp_keyring_get_crt_count
+FUNCS += functions/gnutls_openpgp_keyring_get_crt_count.short
+FUNCS += functions/gnutls_openpgp_keyring_import
+FUNCS += functions/gnutls_openpgp_keyring_import.short
+FUNCS += functions/gnutls_openpgp_keyring_init
+FUNCS += functions/gnutls_openpgp_keyring_init.short
 FUNCS += functions/gnutls_openpgp_privkey_deinit
 FUNCS += functions/gnutls_openpgp_privkey_deinit.short
-FUNCS += functions/gnutls_openpgp_privkey_get_pk_algorithm
-FUNCS += functions/gnutls_openpgp_privkey_get_pk_algorithm.short
-FUNCS += functions/gnutls_openpgp_privkey_sec_param
-FUNCS += functions/gnutls_openpgp_privkey_sec_param.short
-FUNCS += functions/gnutls_openpgp_privkey_import
-FUNCS += functions/gnutls_openpgp_privkey_import.short
+FUNCS += functions/gnutls_openpgp_privkey_export
+FUNCS += functions/gnutls_openpgp_privkey_export.short
+FUNCS += functions/gnutls_openpgp_privkey_export_dsa_raw
+FUNCS += functions/gnutls_openpgp_privkey_export_dsa_raw.short
+FUNCS += functions/gnutls_openpgp_privkey_export_rsa_raw
+FUNCS += functions/gnutls_openpgp_privkey_export_rsa_raw.short
+FUNCS += functions/gnutls_openpgp_privkey_export_subkey_dsa_raw
+FUNCS += functions/gnutls_openpgp_privkey_export_subkey_dsa_raw.short
+FUNCS += functions/gnutls_openpgp_privkey_export_subkey_rsa_raw
+FUNCS += functions/gnutls_openpgp_privkey_export_subkey_rsa_raw.short
 FUNCS += functions/gnutls_openpgp_privkey_get_fingerprint
 FUNCS += functions/gnutls_openpgp_privkey_get_fingerprint.short
-FUNCS += functions/gnutls_openpgp_privkey_get_subkey_fingerprint
-FUNCS += functions/gnutls_openpgp_privkey_get_subkey_fingerprint.short
 FUNCS += functions/gnutls_openpgp_privkey_get_key_id
 FUNCS += functions/gnutls_openpgp_privkey_get_key_id.short
+FUNCS += functions/gnutls_openpgp_privkey_get_pk_algorithm
+FUNCS += functions/gnutls_openpgp_privkey_get_pk_algorithm.short
+FUNCS += functions/gnutls_openpgp_privkey_get_preferred_key_id
+FUNCS += functions/gnutls_openpgp_privkey_get_preferred_key_id.short
+FUNCS += functions/gnutls_openpgp_privkey_get_revoked_status
+FUNCS += functions/gnutls_openpgp_privkey_get_revoked_status.short
 FUNCS += functions/gnutls_openpgp_privkey_get_subkey_count
 FUNCS += functions/gnutls_openpgp_privkey_get_subkey_count.short
+FUNCS += functions/gnutls_openpgp_privkey_get_subkey_creation_time
+FUNCS += functions/gnutls_openpgp_privkey_get_subkey_creation_time.short
+FUNCS += functions/gnutls_openpgp_privkey_get_subkey_fingerprint
+FUNCS += functions/gnutls_openpgp_privkey_get_subkey_fingerprint.short
+FUNCS += functions/gnutls_openpgp_privkey_get_subkey_id
+FUNCS += functions/gnutls_openpgp_privkey_get_subkey_id.short
 FUNCS += functions/gnutls_openpgp_privkey_get_subkey_idx
 FUNCS += functions/gnutls_openpgp_privkey_get_subkey_idx.short
-FUNCS += functions/gnutls_openpgp_privkey_get_subkey_revoked_status
-FUNCS += functions/gnutls_openpgp_privkey_get_subkey_revoked_status.short
-FUNCS += functions/gnutls_openpgp_privkey_get_revoked_status
-FUNCS += functions/gnutls_openpgp_privkey_get_revoked_status.short
 FUNCS += functions/gnutls_openpgp_privkey_get_subkey_pk_algorithm
 FUNCS += functions/gnutls_openpgp_privkey_get_subkey_pk_algorithm.short
-FUNCS += functions/gnutls_openpgp_privkey_get_subkey_id
-FUNCS += functions/gnutls_openpgp_privkey_get_subkey_id.short
-FUNCS += functions/gnutls_openpgp_privkey_get_subkey_creation_time
-FUNCS += functions/gnutls_openpgp_privkey_get_subkey_creation_time.short
-FUNCS += functions/gnutls_openpgp_privkey_export_subkey_dsa_raw
-FUNCS += functions/gnutls_openpgp_privkey_export_subkey_dsa_raw.short
-FUNCS += functions/gnutls_openpgp_privkey_export_subkey_rsa_raw
-FUNCS += functions/gnutls_openpgp_privkey_export_subkey_rsa_raw.short
-FUNCS += functions/gnutls_openpgp_privkey_export_dsa_raw
-FUNCS += functions/gnutls_openpgp_privkey_export_dsa_raw.short
-FUNCS += functions/gnutls_openpgp_privkey_export_rsa_raw
-FUNCS += functions/gnutls_openpgp_privkey_export_rsa_raw.short
-FUNCS += functions/gnutls_openpgp_privkey_export
-FUNCS += functions/gnutls_openpgp_privkey_export.short
+FUNCS += functions/gnutls_openpgp_privkey_get_subkey_revoked_status
+FUNCS += functions/gnutls_openpgp_privkey_get_subkey_revoked_status.short
+FUNCS += functions/gnutls_openpgp_privkey_import
+FUNCS += functions/gnutls_openpgp_privkey_import.short
+FUNCS += functions/gnutls_openpgp_privkey_init
+FUNCS += functions/gnutls_openpgp_privkey_init.short
+FUNCS += functions/gnutls_openpgp_privkey_sec_param
+FUNCS += functions/gnutls_openpgp_privkey_sec_param.short
 FUNCS += functions/gnutls_openpgp_privkey_set_preferred_key_id
 FUNCS += functions/gnutls_openpgp_privkey_set_preferred_key_id.short
-FUNCS += functions/gnutls_openpgp_privkey_get_preferred_key_id
-FUNCS += functions/gnutls_openpgp_privkey_get_preferred_key_id.short
-FUNCS += functions/gnutls_openpgp_crt_get_auth_subkey
-FUNCS += functions/gnutls_openpgp_crt_get_auth_subkey.short
-FUNCS += functions/gnutls_openpgp_keyring_init
-FUNCS += functions/gnutls_openpgp_keyring_init.short
-FUNCS += functions/gnutls_openpgp_keyring_deinit
-FUNCS += functions/gnutls_openpgp_keyring_deinit.short
-FUNCS += functions/gnutls_openpgp_keyring_import
-FUNCS += functions/gnutls_openpgp_keyring_import.short
-FUNCS += functions/gnutls_openpgp_keyring_check_id
-FUNCS += functions/gnutls_openpgp_keyring_check_id.short
-FUNCS += functions/gnutls_openpgp_crt_verify_ring
-FUNCS += functions/gnutls_openpgp_crt_verify_ring.short
-FUNCS += functions/gnutls_openpgp_crt_verify_self
-FUNCS += functions/gnutls_openpgp_crt_verify_self.short
-FUNCS += functions/gnutls_openpgp_keyring_get_crt
-FUNCS += functions/gnutls_openpgp_keyring_get_crt.short
-FUNCS += functions/gnutls_openpgp_keyring_get_crt_count
-FUNCS += functions/gnutls_openpgp_keyring_get_crt_count.short
+FUNCS += functions/gnutls_openpgp_privkey_sign_hash
+FUNCS += functions/gnutls_openpgp_privkey_sign_hash.short
+FUNCS += functions/gnutls_openpgp_send_cert
+FUNCS += functions/gnutls_openpgp_send_cert.short
 FUNCS += functions/gnutls_openpgp_set_recv_key_function
 FUNCS += functions/gnutls_openpgp_set_recv_key_function.short
-FUNCS += functions/gnutls_certificate_set_openpgp_key
-FUNCS += functions/gnutls_certificate_set_openpgp_key.short
-FUNCS += functions/gnutls_certificate_set_openpgp_key_file
-FUNCS += functions/gnutls_certificate_set_openpgp_key_file.short
-FUNCS += functions/gnutls_certificate_set_openpgp_key_mem
-FUNCS += functions/gnutls_certificate_set_openpgp_key_mem.short
-FUNCS += functions/gnutls_certificate_set_openpgp_key_file2
-FUNCS += functions/gnutls_certificate_set_openpgp_key_file2.short
-FUNCS += functions/gnutls_certificate_set_openpgp_key_mem2
-FUNCS += functions/gnutls_certificate_set_openpgp_key_mem2.short
-FUNCS += functions/gnutls_certificate_set_openpgp_keyring_mem
-FUNCS += functions/gnutls_certificate_set_openpgp_keyring_mem.short
-FUNCS += functions/gnutls_certificate_set_openpgp_keyring_file
-FUNCS += functions/gnutls_certificate_set_openpgp_keyring_file.short
-FUNCS += functions/gnutls_pkcs11_init
-FUNCS += functions/gnutls_pkcs11_init.short
-FUNCS += functions/gnutls_pkcs11_reinit
-FUNCS += functions/gnutls_pkcs11_reinit.short
-FUNCS += functions/gnutls_pkcs11_deinit
-FUNCS += functions/gnutls_pkcs11_deinit.short
-FUNCS += functions/gnutls_pkcs11_set_token_function
-FUNCS += functions/gnutls_pkcs11_set_token_function.short
-FUNCS += functions/gnutls_pkcs11_set_pin_function
-FUNCS += functions/gnutls_pkcs11_set_pin_function.short
+FUNCS += functions/gnutls_pcert_deinit
+FUNCS += functions/gnutls_pcert_deinit.short
+FUNCS += functions/gnutls_pcert_import_openpgp
+FUNCS += functions/gnutls_pcert_import_openpgp.short
+FUNCS += functions/gnutls_pcert_import_openpgp_raw
+FUNCS += functions/gnutls_pcert_import_openpgp_raw.short
+FUNCS += functions/gnutls_pcert_import_x509
+FUNCS += functions/gnutls_pcert_import_x509.short
+FUNCS += functions/gnutls_pcert_import_x509_raw
+FUNCS += functions/gnutls_pcert_import_x509_raw.short
+FUNCS += functions/gnutls_pcert_list_import_x509_raw
+FUNCS += functions/gnutls_pcert_list_import_x509_raw.short
+FUNCS += functions/gnutls_pem_base64_decode
+FUNCS += functions/gnutls_pem_base64_decode.short
+FUNCS += functions/gnutls_pem_base64_decode_alloc
+FUNCS += functions/gnutls_pem_base64_decode_alloc.short
+FUNCS += functions/gnutls_pem_base64_encode
+FUNCS += functions/gnutls_pem_base64_encode.short
+FUNCS += functions/gnutls_pem_base64_encode_alloc
+FUNCS += functions/gnutls_pem_base64_encode_alloc.short
+FUNCS += functions/gnutls_perror
+FUNCS += functions/gnutls_perror.short
+FUNCS += functions/gnutls_pk_algorithm_get_name
+FUNCS += functions/gnutls_pk_algorithm_get_name.short
+FUNCS += functions/gnutls_pk_bits_to_sec_param
+FUNCS += functions/gnutls_pk_bits_to_sec_param.short
 FUNCS += functions/gnutls_pkcs11_add_provider
 FUNCS += functions/gnutls_pkcs11_add_provider.short
-FUNCS += functions/gnutls_pkcs11_obj_init
-FUNCS += functions/gnutls_pkcs11_obj_init.short
-FUNCS += functions/gnutls_pkcs11_obj_import_url
-FUNCS += functions/gnutls_pkcs11_obj_import_url.short
-FUNCS += functions/gnutls_pkcs11_obj_export_url
-FUNCS += functions/gnutls_pkcs11_obj_export_url.short
-FUNCS += functions/gnutls_pkcs11_obj_deinit
-FUNCS += functions/gnutls_pkcs11_obj_deinit.short
-FUNCS += functions/gnutls_pkcs11_obj_export
-FUNCS += functions/gnutls_pkcs11_obj_export.short
+FUNCS += functions/gnutls_pkcs11_copy_secret_key
+FUNCS += functions/gnutls_pkcs11_copy_secret_key.short
 FUNCS += functions/gnutls_pkcs11_copy_x509_crt
 FUNCS += functions/gnutls_pkcs11_copy_x509_crt.short
 FUNCS += functions/gnutls_pkcs11_copy_x509_privkey
 FUNCS += functions/gnutls_pkcs11_copy_x509_privkey.short
+FUNCS += functions/gnutls_pkcs11_deinit
+FUNCS += functions/gnutls_pkcs11_deinit.short
 FUNCS += functions/gnutls_pkcs11_delete_url
 FUNCS += functions/gnutls_pkcs11_delete_url.short
-FUNCS += functions/gnutls_pkcs11_copy_secret_key
-FUNCS += functions/gnutls_pkcs11_copy_secret_key.short
-FUNCS += functions/gnutls_pkcs11_obj_get_info
-FUNCS += functions/gnutls_pkcs11_obj_get_info.short
-FUNCS += functions/gnutls_pkcs11_token_init
-FUNCS += functions/gnutls_pkcs11_token_init.short
-FUNCS += functions/gnutls_pkcs11_token_get_mechanism
-FUNCS += functions/gnutls_pkcs11_token_get_mechanism.short
-FUNCS += functions/gnutls_pkcs11_token_set_pin
-FUNCS += functions/gnutls_pkcs11_token_set_pin.short
-FUNCS += functions/gnutls_pkcs11_token_get_url
-FUNCS += functions/gnutls_pkcs11_token_get_url.short
-FUNCS += functions/gnutls_pkcs11_token_get_info
-FUNCS += functions/gnutls_pkcs11_token_get_info.short
-FUNCS += functions/gnutls_pkcs11_token_get_flags
-FUNCS += functions/gnutls_pkcs11_token_get_flags.short
-FUNCS += functions/gnutls_pkcs11_obj_list_import_url
-FUNCS += functions/gnutls_pkcs11_obj_list_import_url.short
-FUNCS += functions/gnutls_x509_crt_import_pkcs11
-FUNCS += functions/gnutls_x509_crt_import_pkcs11.short
-FUNCS += functions/gnutls_x509_crt_import_pkcs11_url
-FUNCS += functions/gnutls_x509_crt_import_pkcs11_url.short
+FUNCS += functions/gnutls_pkcs11_init
+FUNCS += functions/gnutls_pkcs11_init.short
+FUNCS += functions/gnutls_pkcs11_obj_deinit
+FUNCS += functions/gnutls_pkcs11_obj_deinit.short
+FUNCS += functions/gnutls_pkcs11_obj_export
+FUNCS += functions/gnutls_pkcs11_obj_export.short
+FUNCS += functions/gnutls_pkcs11_obj_export_url
+FUNCS += functions/gnutls_pkcs11_obj_export_url.short
+FUNCS += functions/gnutls_pkcs11_obj_get_info
+FUNCS += functions/gnutls_pkcs11_obj_get_info.short
 FUNCS += functions/gnutls_pkcs11_obj_get_type
 FUNCS += functions/gnutls_pkcs11_obj_get_type.short
-FUNCS += functions/gnutls_pkcs11_type_get_name
-FUNCS += functions/gnutls_pkcs11_type_get_name.short
-FUNCS += functions/gnutls_x509_crt_list_import_pkcs11
-FUNCS += functions/gnutls_x509_crt_list_import_pkcs11.short
-FUNCS += functions/gnutls_pkcs11_privkey_init
-FUNCS += functions/gnutls_pkcs11_privkey_init.short
+FUNCS += functions/gnutls_pkcs11_obj_import_url
+FUNCS += functions/gnutls_pkcs11_obj_import_url.short
+FUNCS += functions/gnutls_pkcs11_obj_init
+FUNCS += functions/gnutls_pkcs11_obj_init.short
+FUNCS += functions/gnutls_pkcs11_obj_list_import_url
+FUNCS += functions/gnutls_pkcs11_obj_list_import_url.short
 FUNCS += functions/gnutls_pkcs11_privkey_deinit
 FUNCS += functions/gnutls_pkcs11_privkey_deinit.short
-FUNCS += functions/gnutls_pkcs11_privkey_get_pk_algorithm
-FUNCS += functions/gnutls_pkcs11_privkey_get_pk_algorithm.short
-FUNCS += functions/gnutls_pkcs11_privkey_get_info
-FUNCS += functions/gnutls_pkcs11_privkey_get_info.short
-FUNCS += functions/gnutls_pkcs11_privkey_import_url
-FUNCS += functions/gnutls_pkcs11_privkey_import_url.short
 FUNCS += functions/gnutls_pkcs11_privkey_export_url
 FUNCS += functions/gnutls_pkcs11_privkey_export_url.short
 FUNCS += functions/gnutls_pkcs11_privkey_generate
 FUNCS += functions/gnutls_pkcs11_privkey_generate.short
-FUNCS += functions/gnutls_pkcs12_init
-FUNCS += functions/gnutls_pkcs12_init.short
-FUNCS += functions/gnutls_pkcs12_deinit
-FUNCS += functions/gnutls_pkcs12_deinit.short
-FUNCS += functions/gnutls_pkcs12_import
-FUNCS += functions/gnutls_pkcs12_import.short
-FUNCS += functions/gnutls_pkcs12_export
-FUNCS += functions/gnutls_pkcs12_export.short
-FUNCS += functions/gnutls_pkcs12_get_bag
-FUNCS += functions/gnutls_pkcs12_get_bag.short
-FUNCS += functions/gnutls_pkcs12_set_bag
-FUNCS += functions/gnutls_pkcs12_set_bag.short
-FUNCS += functions/gnutls_pkcs12_generate_mac
-FUNCS += functions/gnutls_pkcs12_generate_mac.short
-FUNCS += functions/gnutls_pkcs12_verify_mac
-FUNCS += functions/gnutls_pkcs12_verify_mac.short
+FUNCS += functions/gnutls_pkcs11_privkey_get_info
+FUNCS += functions/gnutls_pkcs11_privkey_get_info.short
+FUNCS += functions/gnutls_pkcs11_privkey_get_pk_algorithm
+FUNCS += functions/gnutls_pkcs11_privkey_get_pk_algorithm.short
+FUNCS += functions/gnutls_pkcs11_privkey_import_url
+FUNCS += functions/gnutls_pkcs11_privkey_import_url.short
+FUNCS += functions/gnutls_pkcs11_privkey_init
+FUNCS += functions/gnutls_pkcs11_privkey_init.short
+FUNCS += functions/gnutls_pkcs11_reinit
+FUNCS += functions/gnutls_pkcs11_reinit.short
+FUNCS += functions/gnutls_pkcs11_set_pin_function
+FUNCS += functions/gnutls_pkcs11_set_pin_function.short
+FUNCS += functions/gnutls_pkcs11_set_token_function
+FUNCS += functions/gnutls_pkcs11_set_token_function.short
+FUNCS += functions/gnutls_pkcs11_token_get_flags
+FUNCS += functions/gnutls_pkcs11_token_get_flags.short
+FUNCS += functions/gnutls_pkcs11_token_get_info
+FUNCS += functions/gnutls_pkcs11_token_get_info.short
+FUNCS += functions/gnutls_pkcs11_token_get_mechanism
+FUNCS += functions/gnutls_pkcs11_token_get_mechanism.short
+FUNCS += functions/gnutls_pkcs11_token_get_url
+FUNCS += functions/gnutls_pkcs11_token_get_url.short
+FUNCS += functions/gnutls_pkcs11_token_init
+FUNCS += functions/gnutls_pkcs11_token_init.short
+FUNCS += functions/gnutls_pkcs11_token_set_pin
+FUNCS += functions/gnutls_pkcs11_token_set_pin.short
+FUNCS += functions/gnutls_pkcs11_type_get_name
+FUNCS += functions/gnutls_pkcs11_type_get_name.short
 FUNCS += functions/gnutls_pkcs12_bag_decrypt
 FUNCS += functions/gnutls_pkcs12_bag_decrypt.short
+FUNCS += functions/gnutls_pkcs12_bag_deinit
+FUNCS += functions/gnutls_pkcs12_bag_deinit.short
 FUNCS += functions/gnutls_pkcs12_bag_encrypt
 FUNCS += functions/gnutls_pkcs12_bag_encrypt.short
-FUNCS += functions/gnutls_pkcs12_bag_get_type
-FUNCS += functions/gnutls_pkcs12_bag_get_type.short
+FUNCS += functions/gnutls_pkcs12_bag_get_count
+FUNCS += functions/gnutls_pkcs12_bag_get_count.short
 FUNCS += functions/gnutls_pkcs12_bag_get_data
 FUNCS += functions/gnutls_pkcs12_bag_get_data.short
-FUNCS += functions/gnutls_pkcs12_bag_set_data
-FUNCS += functions/gnutls_pkcs12_bag_set_data.short
+FUNCS += functions/gnutls_pkcs12_bag_get_friendly_name
+FUNCS += functions/gnutls_pkcs12_bag_get_friendly_name.short
+FUNCS += functions/gnutls_pkcs12_bag_get_key_id
+FUNCS += functions/gnutls_pkcs12_bag_get_key_id.short
+FUNCS += functions/gnutls_pkcs12_bag_get_type
+FUNCS += functions/gnutls_pkcs12_bag_get_type.short
+FUNCS += functions/gnutls_pkcs12_bag_init
+FUNCS += functions/gnutls_pkcs12_bag_init.short
 FUNCS += functions/gnutls_pkcs12_bag_set_crl
 FUNCS += functions/gnutls_pkcs12_bag_set_crl.short
 FUNCS += functions/gnutls_pkcs12_bag_set_crt
 FUNCS += functions/gnutls_pkcs12_bag_set_crt.short
-FUNCS += functions/gnutls_pkcs12_bag_init
-FUNCS += functions/gnutls_pkcs12_bag_init.short
-FUNCS += functions/gnutls_pkcs12_bag_deinit
-FUNCS += functions/gnutls_pkcs12_bag_deinit.short
-FUNCS += functions/gnutls_pkcs12_bag_get_count
-FUNCS += functions/gnutls_pkcs12_bag_get_count.short
-FUNCS += functions/gnutls_pkcs12_bag_get_key_id
-FUNCS += functions/gnutls_pkcs12_bag_get_key_id.short
-FUNCS += functions/gnutls_pkcs12_bag_set_key_id
-FUNCS += functions/gnutls_pkcs12_bag_set_key_id.short
-FUNCS += functions/gnutls_pkcs12_bag_get_friendly_name
-FUNCS += functions/gnutls_pkcs12_bag_get_friendly_name.short
+FUNCS += functions/gnutls_pkcs12_bag_set_data
+FUNCS += functions/gnutls_pkcs12_bag_set_data.short
 FUNCS += functions/gnutls_pkcs12_bag_set_friendly_name
 FUNCS += functions/gnutls_pkcs12_bag_set_friendly_name.short
-FUNCS += functions/gnutls_x509_crt_init
-FUNCS += functions/gnutls_x509_crt_init.short
-FUNCS += functions/gnutls_x509_crt_deinit
-FUNCS += functions/gnutls_x509_crt_deinit.short
-FUNCS += functions/gnutls_x509_crt_import
-FUNCS += functions/gnutls_x509_crt_import.short
-FUNCS += functions/gnutls_x509_crt_list_import2
-FUNCS += functions/gnutls_x509_crt_list_import2.short
-FUNCS += functions/gnutls_x509_crt_list_import
-FUNCS += functions/gnutls_x509_crt_list_import.short
-FUNCS += functions/gnutls_x509_crt_export
-FUNCS += functions/gnutls_x509_crt_export.short
-FUNCS += functions/gnutls_x509_crt_get_private_key_usage_period
-FUNCS += functions/gnutls_x509_crt_get_private_key_usage_period.short
-FUNCS += functions/gnutls_x509_crt_get_issuer_dn
-FUNCS += functions/gnutls_x509_crt_get_issuer_dn.short
-FUNCS += functions/gnutls_x509_crt_get_issuer_dn_oid
-FUNCS += functions/gnutls_x509_crt_get_issuer_dn_oid.short
-FUNCS += functions/gnutls_x509_crt_get_issuer_dn_by_oid
-FUNCS += functions/gnutls_x509_crt_get_issuer_dn_by_oid.short
-FUNCS += functions/gnutls_x509_crt_get_dn
-FUNCS += functions/gnutls_x509_crt_get_dn.short
-FUNCS += functions/gnutls_x509_crt_get_dn_oid
-FUNCS += functions/gnutls_x509_crt_get_dn_oid.short
-FUNCS += functions/gnutls_x509_crt_get_dn_by_oid
-FUNCS += functions/gnutls_x509_crt_get_dn_by_oid.short
-FUNCS += functions/gnutls_x509_crt_check_hostname
-FUNCS += functions/gnutls_x509_crt_check_hostname.short
-FUNCS += functions/gnutls_x509_crt_get_signature_algorithm
-FUNCS += functions/gnutls_x509_crt_get_signature_algorithm.short
-FUNCS += functions/gnutls_x509_crt_get_signature
-FUNCS += functions/gnutls_x509_crt_get_signature.short
-FUNCS += functions/gnutls_x509_crt_get_version
-FUNCS += functions/gnutls_x509_crt_get_version.short
-FUNCS += functions/gnutls_x509_crt_get_key_id
-FUNCS += functions/gnutls_x509_crt_get_key_id.short
-FUNCS += functions/gnutls_x509_crt_set_private_key_usage_period
-FUNCS += functions/gnutls_x509_crt_set_private_key_usage_period.short
-FUNCS += functions/gnutls_x509_crt_set_authority_key_id
-FUNCS += functions/gnutls_x509_crt_set_authority_key_id.short
-FUNCS += functions/gnutls_x509_crt_get_authority_key_id
-FUNCS += functions/gnutls_x509_crt_get_authority_key_id.short
-FUNCS += functions/gnutls_x509_crt_get_authority_key_gn_serial
-FUNCS += functions/gnutls_x509_crt_get_authority_key_gn_serial.short
-FUNCS += functions/gnutls_x509_crt_get_subject_key_id
-FUNCS += functions/gnutls_x509_crt_get_subject_key_id.short
-FUNCS += functions/gnutls_x509_crt_get_subject_unique_id
-FUNCS += functions/gnutls_x509_crt_get_subject_unique_id.short
-FUNCS += functions/gnutls_x509_crt_get_issuer_unique_id
-FUNCS += functions/gnutls_x509_crt_get_issuer_unique_id.short
-FUNCS += functions/gnutls_x509_crt_get_authority_info_access
-FUNCS += functions/gnutls_x509_crt_get_authority_info_access.short
-FUNCS += functions/gnutls_x509_crt_get_crl_dist_points
-FUNCS += functions/gnutls_x509_crt_get_crl_dist_points.short
-FUNCS += functions/gnutls_x509_crt_set_crl_dist_points2
-FUNCS += functions/gnutls_x509_crt_set_crl_dist_points2.short
-FUNCS += functions/gnutls_x509_crt_set_crl_dist_points
-FUNCS += functions/gnutls_x509_crt_set_crl_dist_points.short
-FUNCS += functions/gnutls_x509_crt_cpy_crl_dist_points
-FUNCS += functions/gnutls_x509_crt_cpy_crl_dist_points.short
-FUNCS += functions/gnutls_x509_crl_sign2
-FUNCS += functions/gnutls_x509_crl_sign2.short
-FUNCS += functions/gnutls_x509_crt_get_activation_time
-FUNCS += functions/gnutls_x509_crt_get_activation_time.short
+FUNCS += functions/gnutls_pkcs12_bag_set_key_id
+FUNCS += functions/gnutls_pkcs12_bag_set_key_id.short
+FUNCS += functions/gnutls_pkcs12_deinit
+FUNCS += functions/gnutls_pkcs12_deinit.short
+FUNCS += functions/gnutls_pkcs12_export
+FUNCS += functions/gnutls_pkcs12_export.short
+FUNCS += functions/gnutls_pkcs12_generate_mac
+FUNCS += functions/gnutls_pkcs12_generate_mac.short
+FUNCS += functions/gnutls_pkcs12_get_bag
+FUNCS += functions/gnutls_pkcs12_get_bag.short
+FUNCS += functions/gnutls_pkcs12_import
+FUNCS += functions/gnutls_pkcs12_import.short
+FUNCS += functions/gnutls_pkcs12_init
+FUNCS += functions/gnutls_pkcs12_init.short
+FUNCS += functions/gnutls_pkcs12_set_bag
+FUNCS += functions/gnutls_pkcs12_set_bag.short
+FUNCS += functions/gnutls_pkcs12_verify_mac
+FUNCS += functions/gnutls_pkcs12_verify_mac.short
+FUNCS += functions/gnutls_pkcs7_deinit
+FUNCS += functions/gnutls_pkcs7_deinit.short
+FUNCS += functions/gnutls_pkcs7_delete_crl
+FUNCS += functions/gnutls_pkcs7_delete_crl.short
+FUNCS += functions/gnutls_pkcs7_delete_crt
+FUNCS += functions/gnutls_pkcs7_delete_crt.short
+FUNCS += functions/gnutls_pkcs7_export
+FUNCS += functions/gnutls_pkcs7_export.short
+FUNCS += functions/gnutls_pkcs7_get_crl_count
+FUNCS += functions/gnutls_pkcs7_get_crl_count.short
+FUNCS += functions/gnutls_pkcs7_get_crl_raw
+FUNCS += functions/gnutls_pkcs7_get_crl_raw.short
+FUNCS += functions/gnutls_pkcs7_get_crt_count
+FUNCS += functions/gnutls_pkcs7_get_crt_count.short
+FUNCS += functions/gnutls_pkcs7_get_crt_raw
+FUNCS += functions/gnutls_pkcs7_get_crt_raw.short
+FUNCS += functions/gnutls_pkcs7_import
+FUNCS += functions/gnutls_pkcs7_import.short
+FUNCS += functions/gnutls_pkcs7_init
+FUNCS += functions/gnutls_pkcs7_init.short
+FUNCS += functions/gnutls_pkcs7_set_crl
+FUNCS += functions/gnutls_pkcs7_set_crl.short
+FUNCS += functions/gnutls_pkcs7_set_crl_raw
+FUNCS += functions/gnutls_pkcs7_set_crl_raw.short
+FUNCS += functions/gnutls_pkcs7_set_crt
+FUNCS += functions/gnutls_pkcs7_set_crt.short
+FUNCS += functions/gnutls_pkcs7_set_crt_raw
+FUNCS += functions/gnutls_pkcs7_set_crt_raw.short
+FUNCS += functions/gnutls_pk_get_id
+FUNCS += functions/gnutls_pk_get_id.short
+FUNCS += functions/gnutls_pk_get_name
+FUNCS += functions/gnutls_pk_get_name.short
+FUNCS += functions/gnutls_pk_list
+FUNCS += functions/gnutls_pk_list.short
+FUNCS += functions/gnutls_pk_to_sign
+FUNCS += functions/gnutls_pk_to_sign.short
+FUNCS += functions/gnutls_prf
+FUNCS += functions/gnutls_prf.short
+FUNCS += functions/gnutls_prf_raw
+FUNCS += functions/gnutls_prf_raw.short
+FUNCS += functions/gnutls_priority_certificate_type_list
+FUNCS += functions/gnutls_priority_certificate_type_list.short
+FUNCS += functions/gnutls_priority_compression_list
+FUNCS += functions/gnutls_priority_compression_list.short
+FUNCS += functions/gnutls_priority_deinit
+FUNCS += functions/gnutls_priority_deinit.short
+FUNCS += functions/gnutls_priority_ecc_curve_list
+FUNCS += functions/gnutls_priority_ecc_curve_list.short
+FUNCS += functions/gnutls_priority_get_cipher_suite_index
+FUNCS += functions/gnutls_priority_get_cipher_suite_index.short
+FUNCS += functions/gnutls_priority_init
+FUNCS += functions/gnutls_priority_init.short
+FUNCS += functions/gnutls_priority_protocol_list
+FUNCS += functions/gnutls_priority_protocol_list.short
+FUNCS += functions/gnutls_priority_set
+FUNCS += functions/gnutls_priority_set.short
+FUNCS += functions/gnutls_priority_set_direct
+FUNCS += functions/gnutls_priority_set_direct.short
+FUNCS += functions/gnutls_priority_sign_list
+FUNCS += functions/gnutls_priority_sign_list.short
+FUNCS += functions/gnutls_privkey_decrypt_data
+FUNCS += functions/gnutls_privkey_decrypt_data.short
+FUNCS += functions/gnutls_privkey_deinit
+FUNCS += functions/gnutls_privkey_deinit.short
+FUNCS += functions/gnutls_privkey_get_pk_algorithm
+FUNCS += functions/gnutls_privkey_get_pk_algorithm.short
+FUNCS += functions/gnutls_privkey_get_type
+FUNCS += functions/gnutls_privkey_get_type.short
+FUNCS += functions/gnutls_privkey_import_ext
+FUNCS += functions/gnutls_privkey_import_ext.short
+FUNCS += functions/gnutls_privkey_import_openpgp
+FUNCS += functions/gnutls_privkey_import_openpgp.short
+FUNCS += functions/gnutls_privkey_import_pkcs11
+FUNCS += functions/gnutls_privkey_import_pkcs11.short
+FUNCS += functions/gnutls_privkey_import_x509
+FUNCS += functions/gnutls_privkey_import_x509.short
+FUNCS += functions/gnutls_privkey_init
+FUNCS += functions/gnutls_privkey_init.short
+FUNCS += functions/gnutls_privkey_sign_data
+FUNCS += functions/gnutls_privkey_sign_data.short
+FUNCS += functions/gnutls_privkey_sign_hash
+FUNCS += functions/gnutls_privkey_sign_hash.short
+FUNCS += functions/gnutls_protocol_get_id
+FUNCS += functions/gnutls_protocol_get_id.short
+FUNCS += functions/gnutls_protocol_get_name
+FUNCS += functions/gnutls_protocol_get_name.short
+FUNCS += functions/gnutls_protocol_get_version
+FUNCS += functions/gnutls_protocol_get_version.short
+FUNCS += functions/gnutls_protocol_list
+FUNCS += functions/gnutls_protocol_list.short
+FUNCS += functions/gnutls_protocol_set_priority
+FUNCS += functions/gnutls_protocol_set_priority.short
+FUNCS += functions/gnutls_psk_allocate_client_credentials
+FUNCS += functions/gnutls_psk_allocate_client_credentials.short
+FUNCS += functions/gnutls_psk_allocate_server_credentials
+FUNCS += functions/gnutls_psk_allocate_server_credentials.short
+FUNCS += functions/gnutls_psk_client_get_hint
+FUNCS += functions/gnutls_psk_client_get_hint.short
+FUNCS += functions/gnutls_psk_free_client_credentials
+FUNCS += functions/gnutls_psk_free_client_credentials.short
+FUNCS += functions/gnutls_psk_free_server_credentials
+FUNCS += functions/gnutls_psk_free_server_credentials.short
+FUNCS += functions/gnutls_psk_server_get_username
+FUNCS += functions/gnutls_psk_server_get_username.short
+FUNCS += functions/gnutls_psk_set_client_credentials
+FUNCS += functions/gnutls_psk_set_client_credentials.short
+FUNCS += functions/gnutls_psk_set_client_credentials_function
+FUNCS += functions/gnutls_psk_set_client_credentials_function.short
+FUNCS += functions/gnutls_psk_set_params_function
+FUNCS += functions/gnutls_psk_set_params_function.short
+FUNCS += functions/gnutls_psk_set_server_credentials_file
+FUNCS += functions/gnutls_psk_set_server_credentials_file.short
+FUNCS += functions/gnutls_psk_set_server_credentials_function
+FUNCS += functions/gnutls_psk_set_server_credentials_function.short
+FUNCS += functions/gnutls_psk_set_server_credentials_hint
+FUNCS += functions/gnutls_psk_set_server_credentials_hint.short
+FUNCS += functions/gnutls_psk_set_server_dh_params
+FUNCS += functions/gnutls_psk_set_server_dh_params.short
+FUNCS += functions/gnutls_psk_set_server_params_function
+FUNCS += functions/gnutls_psk_set_server_params_function.short
+FUNCS += functions/gnutls_pubkey_deinit
+FUNCS += functions/gnutls_pubkey_deinit.short
+FUNCS += functions/gnutls_pubkey_encrypt_data
+FUNCS += functions/gnutls_pubkey_encrypt_data.short
+FUNCS += functions/gnutls_pubkey_export
+FUNCS += functions/gnutls_pubkey_export.short
+FUNCS += functions/gnutls_pubkey_get_key_id
+FUNCS += functions/gnutls_pubkey_get_key_id.short
+FUNCS += functions/gnutls_pubkey_get_key_usage
+FUNCS += functions/gnutls_pubkey_get_key_usage.short
+FUNCS += functions/gnutls_pubkey_get_openpgp_key_id
+FUNCS += functions/gnutls_pubkey_get_openpgp_key_id.short
+FUNCS += functions/gnutls_pubkey_get_pk_algorithm
+FUNCS += functions/gnutls_pubkey_get_pk_algorithm.short
+FUNCS += functions/gnutls_pubkey_get_pk_dsa_raw
+FUNCS += functions/gnutls_pubkey_get_pk_dsa_raw.short
+FUNCS += functions/gnutls_pubkey_get_pk_ecc_raw
+FUNCS += functions/gnutls_pubkey_get_pk_ecc_raw.short
+FUNCS += functions/gnutls_pubkey_get_pk_ecc_x962
+FUNCS += functions/gnutls_pubkey_get_pk_ecc_x962.short
+FUNCS += functions/gnutls_pubkey_get_pk_rsa_raw
+FUNCS += functions/gnutls_pubkey_get_pk_rsa_raw.short
+FUNCS += functions/gnutls_pubkey_get_preferred_hash_algorithm
+FUNCS += functions/gnutls_pubkey_get_preferred_hash_algorithm.short
+FUNCS += functions/gnutls_pubkey_get_verify_algorithm
+FUNCS += functions/gnutls_pubkey_get_verify_algorithm.short
+FUNCS += functions/gnutls_pubkey_import
+FUNCS += functions/gnutls_pubkey_import.short
+FUNCS += functions/gnutls_pubkey_import_dsa_raw
+FUNCS += functions/gnutls_pubkey_import_dsa_raw.short
+FUNCS += functions/gnutls_pubkey_import_ecc_raw
+FUNCS += functions/gnutls_pubkey_import_ecc_raw.short
+FUNCS += functions/gnutls_pubkey_import_ecc_x962
+FUNCS += functions/gnutls_pubkey_import_ecc_x962.short
+FUNCS += functions/gnutls_pubkey_import_openpgp
+FUNCS += functions/gnutls_pubkey_import_openpgp.short
+FUNCS += functions/gnutls_pubkey_import_pkcs11
+FUNCS += functions/gnutls_pubkey_import_pkcs11.short
+FUNCS += functions/gnutls_pubkey_import_pkcs11_url
+FUNCS += functions/gnutls_pubkey_import_pkcs11_url.short
+FUNCS += functions/gnutls_pubkey_import_privkey
+FUNCS += functions/gnutls_pubkey_import_privkey.short
+FUNCS += functions/gnutls_pubkey_import_rsa_raw
+FUNCS += functions/gnutls_pubkey_import_rsa_raw.short
+FUNCS += functions/gnutls_pubkey_import_x509
+FUNCS += functions/gnutls_pubkey_import_x509.short
+FUNCS += functions/gnutls_pubkey_init
+FUNCS += functions/gnutls_pubkey_init.short
+FUNCS += functions/gnutls_pubkey_set_key_usage
+FUNCS += functions/gnutls_pubkey_set_key_usage.short
+FUNCS += functions/gnutls_pubkey_verify_data
+FUNCS += functions/gnutls_pubkey_verify_data.short
+FUNCS += functions/gnutls_pubkey_verify_data2
+FUNCS += functions/gnutls_pubkey_verify_data2.short
+FUNCS += functions/gnutls_pubkey_verify_hash
+FUNCS += functions/gnutls_pubkey_verify_hash.short
+FUNCS += functions/gnutls_pubkey_verify_hash2
+FUNCS += functions/gnutls_pubkey_verify_hash2.short
+FUNCS += functions/gnutls_random_art
+FUNCS += functions/gnutls_random_art.short
+FUNCS += functions/gnutls_record_check_pending
+FUNCS += functions/gnutls_record_check_pending.short
+FUNCS += functions/gnutls_record_disable_padding
+FUNCS += functions/gnutls_record_disable_padding.short
+FUNCS += functions/gnutls_record_get_direction
+FUNCS += functions/gnutls_record_get_direction.short
+FUNCS += functions/gnutls_record_get_discarded
+FUNCS += functions/gnutls_record_get_discarded.short
+FUNCS += functions/gnutls_record_get_max_size
+FUNCS += functions/gnutls_record_get_max_size.short
+FUNCS += functions/gnutls_record_recv
+FUNCS += functions/gnutls_record_recv.short
+FUNCS += functions/gnutls_record_recv_seq
+FUNCS += functions/gnutls_record_recv_seq.short
+FUNCS += functions/gnutls_record_send
+FUNCS += functions/gnutls_record_send.short
+FUNCS += functions/gnutls_record_set_max_size
+FUNCS += functions/gnutls_record_set_max_size.short
+FUNCS += functions/gnutls_rehandshake
+FUNCS += functions/gnutls_rehandshake.short
+FUNCS += functions/gnutls_rnd
+FUNCS += functions/gnutls_rnd.short
+FUNCS += functions/gnutls_rsa_export_get_modulus_bits
+FUNCS += functions/gnutls_rsa_export_get_modulus_bits.short
+FUNCS += functions/gnutls_rsa_export_get_pubkey
+FUNCS += functions/gnutls_rsa_export_get_pubkey.short
+FUNCS += functions/gnutls_rsa_params_cpy
+FUNCS += functions/gnutls_rsa_params_cpy.short
+FUNCS += functions/gnutls_rsa_params_deinit
+FUNCS += functions/gnutls_rsa_params_deinit.short
+FUNCS += functions/gnutls_rsa_params_export_pkcs1
+FUNCS += functions/gnutls_rsa_params_export_pkcs1.short
+FUNCS += functions/gnutls_rsa_params_export_raw
+FUNCS += functions/gnutls_rsa_params_export_raw.short
+FUNCS += functions/gnutls_rsa_params_generate2
+FUNCS += functions/gnutls_rsa_params_generate2.short
+FUNCS += functions/gnutls_rsa_params_import_pkcs1
+FUNCS += functions/gnutls_rsa_params_import_pkcs1.short
+FUNCS += functions/gnutls_rsa_params_import_raw
+FUNCS += functions/gnutls_rsa_params_import_raw.short
+FUNCS += functions/gnutls_rsa_params_init
+FUNCS += functions/gnutls_rsa_params_init.short
+FUNCS += functions/gnutls_safe_renegotiation_status
+FUNCS += functions/gnutls_safe_renegotiation_status.short
+FUNCS += functions/gnutls_sec_param_get_name
+FUNCS += functions/gnutls_sec_param_get_name.short
+FUNCS += functions/gnutls_sec_param_to_pk_bits
+FUNCS += functions/gnutls_sec_param_to_pk_bits.short
+FUNCS += functions/gnutls_server_name_get
+FUNCS += functions/gnutls_server_name_get.short
+FUNCS += functions/gnutls_server_name_set
+FUNCS += functions/gnutls_server_name_set.short
+FUNCS += functions/gnutls_session_channel_binding
+FUNCS += functions/gnutls_session_channel_binding.short
+FUNCS += functions/gnutls_session_enable_compatibility_mode
+FUNCS += functions/gnutls_session_enable_compatibility_mode.short
+FUNCS += functions/gnutls_session_get_data
+FUNCS += functions/gnutls_session_get_data.short
+FUNCS += functions/gnutls_session_get_data2
+FUNCS += functions/gnutls_session_get_data2.short
+FUNCS += functions/gnutls_session_get_id
+FUNCS += functions/gnutls_session_get_id.short
+FUNCS += functions/gnutls_session_get_ptr
+FUNCS += functions/gnutls_session_get_ptr.short
+FUNCS += functions/gnutls_session_get_random
+FUNCS += functions/gnutls_session_get_random.short
+FUNCS += functions/gnutls_session_is_resumed
+FUNCS += functions/gnutls_session_is_resumed.short
+FUNCS += functions/gnutls_session_resumption_requested
+FUNCS += functions/gnutls_session_resumption_requested.short
+FUNCS += functions/gnutls_session_set_data
+FUNCS += functions/gnutls_session_set_data.short
+FUNCS += functions/gnutls_session_set_premaster
+FUNCS += functions/gnutls_session_set_premaster.short
+FUNCS += functions/gnutls_session_set_ptr
+FUNCS += functions/gnutls_session_set_ptr.short
+FUNCS += functions/gnutls_session_ticket_enable_client
+FUNCS += functions/gnutls_session_ticket_enable_client.short
+FUNCS += functions/gnutls_session_ticket_enable_server
+FUNCS += functions/gnutls_session_ticket_enable_server.short
+FUNCS += functions/gnutls_session_ticket_key_generate
+FUNCS += functions/gnutls_session_ticket_key_generate.short
+FUNCS += functions/gnutls_set_default_export_priority
+FUNCS += functions/gnutls_set_default_export_priority.short
+FUNCS += functions/gnutls_set_default_priority
+FUNCS += functions/gnutls_set_default_priority.short
+FUNCS += functions/gnutls_sign_algorithm_get_requested
+FUNCS += functions/gnutls_sign_algorithm_get_requested.short
+FUNCS += functions/gnutls_sign_callback_get
+FUNCS += functions/gnutls_sign_callback_get.short
+FUNCS += functions/gnutls_sign_callback_set
+FUNCS += functions/gnutls_sign_callback_set.short
+FUNCS += functions/gnutls_sign_get_id
+FUNCS += functions/gnutls_sign_get_id.short
+FUNCS += functions/gnutls_sign_get_name
+FUNCS += functions/gnutls_sign_get_name.short
+FUNCS += functions/gnutls_sign_list
+FUNCS += functions/gnutls_sign_list.short
+FUNCS += functions/gnutls_srp_allocate_client_credentials
+FUNCS += functions/gnutls_srp_allocate_client_credentials.short
+FUNCS += functions/gnutls_srp_allocate_server_credentials
+FUNCS += functions/gnutls_srp_allocate_server_credentials.short
+FUNCS += functions/gnutls_srp_base64_decode
+FUNCS += functions/gnutls_srp_base64_decode.short
+FUNCS += functions/gnutls_srp_base64_decode_alloc
+FUNCS += functions/gnutls_srp_base64_decode_alloc.short
+FUNCS += functions/gnutls_srp_base64_encode
+FUNCS += functions/gnutls_srp_base64_encode.short
+FUNCS += functions/gnutls_srp_base64_encode_alloc
+FUNCS += functions/gnutls_srp_base64_encode_alloc.short
+FUNCS += functions/gnutls_srp_free_client_credentials
+FUNCS += functions/gnutls_srp_free_client_credentials.short
+FUNCS += functions/gnutls_srp_free_server_credentials
+FUNCS += functions/gnutls_srp_free_server_credentials.short
+FUNCS += functions/gnutls_srp_server_get_username
+FUNCS += functions/gnutls_srp_server_get_username.short
+FUNCS += functions/gnutls_srp_set_client_credentials
+FUNCS += functions/gnutls_srp_set_client_credentials.short
+FUNCS += functions/gnutls_srp_set_client_credentials_function
+FUNCS += functions/gnutls_srp_set_client_credentials_function.short
+FUNCS += functions/gnutls_srp_set_prime_bits
+FUNCS += functions/gnutls_srp_set_prime_bits.short
+FUNCS += functions/gnutls_srp_set_server_credentials_file
+FUNCS += functions/gnutls_srp_set_server_credentials_file.short
+FUNCS += functions/gnutls_srp_set_server_credentials_function
+FUNCS += functions/gnutls_srp_set_server_credentials_function.short
+FUNCS += functions/gnutls_srp_verifier
+FUNCS += functions/gnutls_srp_verifier.short
+FUNCS += functions/gnutls_store_commitment
+FUNCS += functions/gnutls_store_commitment.short
+FUNCS += functions/gnutls_store_pubkey
+FUNCS += functions/gnutls_store_pubkey.short
+FUNCS += functions/gnutls_strerror
+FUNCS += functions/gnutls_strerror.short
+FUNCS += functions/gnutls_strerror_name
+FUNCS += functions/gnutls_strerror_name.short
+FUNCS += functions/gnutls_supplemental_get_name
+FUNCS += functions/gnutls_supplemental_get_name.short
+FUNCS += functions/gnutls_tdb_deinit
+FUNCS += functions/gnutls_tdb_deinit.short
+FUNCS += functions/gnutls_tdb_init
+FUNCS += functions/gnutls_tdb_init.short
+FUNCS += functions/gnutls_tdb_set_store_commitment_func
+FUNCS += functions/gnutls_tdb_set_store_commitment_func.short
+FUNCS += functions/gnutls_tdb_set_store_func
+FUNCS += functions/gnutls_tdb_set_store_func.short
+FUNCS += functions/gnutls_tdb_set_verify_func
+FUNCS += functions/gnutls_tdb_set_verify_func.short
+FUNCS += functions/gnutls_transport_get_ptr
+FUNCS += functions/gnutls_transport_get_ptr.short
+FUNCS += functions/gnutls_transport_get_ptr2
+FUNCS += functions/gnutls_transport_get_ptr2.short
+FUNCS += functions/gnutls_transport_set_errno
+FUNCS += functions/gnutls_transport_set_errno.short
+FUNCS += functions/gnutls_transport_set_errno_function
+FUNCS += functions/gnutls_transport_set_errno_function.short
+FUNCS += functions/gnutls_transport_set_ptr
+FUNCS += functions/gnutls_transport_set_ptr.short
+FUNCS += functions/gnutls_transport_set_ptr2
+FUNCS += functions/gnutls_transport_set_ptr2.short
+FUNCS += functions/gnutls_transport_set_pull_function
+FUNCS += functions/gnutls_transport_set_pull_function.short
+FUNCS += functions/gnutls_transport_set_pull_timeout_function
+FUNCS += functions/gnutls_transport_set_pull_timeout_function.short
+FUNCS += functions/gnutls_transport_set_push_function
+FUNCS += functions/gnutls_transport_set_push_function.short
+FUNCS += functions/gnutls_transport_set_vec_push_function
+FUNCS += functions/gnutls_transport_set_vec_push_function.short
+FUNCS += functions/gnutls_verify_stored_pubkey
+FUNCS += functions/gnutls_verify_stored_pubkey.short
+FUNCS += functions/gnutls_x509_crl_check_issuer
+FUNCS += functions/gnutls_x509_crl_check_issuer.short
+FUNCS += functions/gnutls_x509_crl_deinit
+FUNCS += functions/gnutls_x509_crl_deinit.short
+FUNCS += functions/gnutls_x509_crl_export
+FUNCS += functions/gnutls_x509_crl_export.short
+FUNCS += functions/gnutls_x509_crl_get_authority_key_gn_serial
+FUNCS += functions/gnutls_x509_crl_get_authority_key_gn_serial.short
+FUNCS += functions/gnutls_x509_crl_get_authority_key_id
+FUNCS += functions/gnutls_x509_crl_get_authority_key_id.short
+FUNCS += functions/gnutls_x509_crl_get_crt_count
+FUNCS += functions/gnutls_x509_crl_get_crt_count.short
+FUNCS += functions/gnutls_x509_crl_get_crt_serial
+FUNCS += functions/gnutls_x509_crl_get_crt_serial.short
+FUNCS += functions/gnutls_x509_crl_get_dn_oid
+FUNCS += functions/gnutls_x509_crl_get_dn_oid.short
+FUNCS += functions/gnutls_x509_crl_get_extension_data
+FUNCS += functions/gnutls_x509_crl_get_extension_data.short
+FUNCS += functions/gnutls_x509_crl_get_extension_info
+FUNCS += functions/gnutls_x509_crl_get_extension_info.short
+FUNCS += functions/gnutls_x509_crl_get_extension_oid
+FUNCS += functions/gnutls_x509_crl_get_extension_oid.short
+FUNCS += functions/gnutls_x509_crl_get_issuer_dn
+FUNCS += functions/gnutls_x509_crl_get_issuer_dn.short
+FUNCS += functions/gnutls_x509_crl_get_issuer_dn_by_oid
+FUNCS += functions/gnutls_x509_crl_get_issuer_dn_by_oid.short
+FUNCS += functions/gnutls_x509_crl_get_next_update
+FUNCS += functions/gnutls_x509_crl_get_next_update.short
+FUNCS += functions/gnutls_x509_crl_get_number
+FUNCS += functions/gnutls_x509_crl_get_number.short
+FUNCS += functions/gnutls_x509_crl_get_raw_issuer_dn
+FUNCS += functions/gnutls_x509_crl_get_raw_issuer_dn.short
+FUNCS += functions/gnutls_x509_crl_get_signature
+FUNCS += functions/gnutls_x509_crl_get_signature.short
+FUNCS += functions/gnutls_x509_crl_get_signature_algorithm
+FUNCS += functions/gnutls_x509_crl_get_signature_algorithm.short
+FUNCS += functions/gnutls_x509_crl_get_this_update
+FUNCS += functions/gnutls_x509_crl_get_this_update.short
+FUNCS += functions/gnutls_x509_crl_get_version
+FUNCS += functions/gnutls_x509_crl_get_version.short
+FUNCS += functions/gnutls_x509_crl_import
+FUNCS += functions/gnutls_x509_crl_import.short
+FUNCS += functions/gnutls_x509_crl_init
+FUNCS += functions/gnutls_x509_crl_init.short
+FUNCS += functions/gnutls_x509_crl_list_import
+FUNCS += functions/gnutls_x509_crl_list_import.short
+FUNCS += functions/gnutls_x509_crl_list_import2
+FUNCS += functions/gnutls_x509_crl_list_import2.short
+FUNCS += functions/gnutls_x509_crl_print
+FUNCS += functions/gnutls_x509_crl_print.short
+FUNCS += functions/gnutls_x509_crl_privkey_sign
+FUNCS += functions/gnutls_x509_crl_privkey_sign.short
+FUNCS += functions/gnutls_x509_crl_set_authority_key_id
+FUNCS += functions/gnutls_x509_crl_set_authority_key_id.short
+FUNCS += functions/gnutls_x509_crl_set_crt
+FUNCS += functions/gnutls_x509_crl_set_crt.short
+FUNCS += functions/gnutls_x509_crl_set_crt_serial
+FUNCS += functions/gnutls_x509_crl_set_crt_serial.short
+FUNCS += functions/gnutls_x509_crl_set_next_update
+FUNCS += functions/gnutls_x509_crl_set_next_update.short
+FUNCS += functions/gnutls_x509_crl_set_number
+FUNCS += functions/gnutls_x509_crl_set_number.short
+FUNCS += functions/gnutls_x509_crl_set_this_update
+FUNCS += functions/gnutls_x509_crl_set_this_update.short
+FUNCS += functions/gnutls_x509_crl_set_version
+FUNCS += functions/gnutls_x509_crl_set_version.short
+FUNCS += functions/gnutls_x509_crl_sign
+FUNCS += functions/gnutls_x509_crl_sign.short
+FUNCS += functions/gnutls_x509_crl_sign2
+FUNCS += functions/gnutls_x509_crl_sign2.short
+FUNCS += functions/gnutls_x509_crl_verify
+FUNCS += functions/gnutls_x509_crl_verify.short
+FUNCS += functions/gnutls_x509_crq_deinit
+FUNCS += functions/gnutls_x509_crq_deinit.short
+FUNCS += functions/gnutls_x509_crq_export
+FUNCS += functions/gnutls_x509_crq_export.short
+FUNCS += functions/gnutls_x509_crq_get_attribute_by_oid
+FUNCS += functions/gnutls_x509_crq_get_attribute_by_oid.short
+FUNCS += functions/gnutls_x509_crq_get_attribute_data
+FUNCS += functions/gnutls_x509_crq_get_attribute_data.short
+FUNCS += functions/gnutls_x509_crq_get_attribute_info
+FUNCS += functions/gnutls_x509_crq_get_attribute_info.short
+FUNCS += functions/gnutls_x509_crq_get_basic_constraints
+FUNCS += functions/gnutls_x509_crq_get_basic_constraints.short
+FUNCS += functions/gnutls_x509_crq_get_challenge_password
+FUNCS += functions/gnutls_x509_crq_get_challenge_password.short
+FUNCS += functions/gnutls_x509_crq_get_dn
+FUNCS += functions/gnutls_x509_crq_get_dn.short
+FUNCS += functions/gnutls_x509_crq_get_dn_by_oid
+FUNCS += functions/gnutls_x509_crq_get_dn_by_oid.short
+FUNCS += functions/gnutls_x509_crq_get_dn_oid
+FUNCS += functions/gnutls_x509_crq_get_dn_oid.short
+FUNCS += functions/gnutls_x509_crq_get_extension_by_oid
+FUNCS += functions/gnutls_x509_crq_get_extension_by_oid.short
+FUNCS += functions/gnutls_x509_crq_get_extension_data
+FUNCS += functions/gnutls_x509_crq_get_extension_data.short
+FUNCS += functions/gnutls_x509_crq_get_extension_info
+FUNCS += functions/gnutls_x509_crq_get_extension_info.short
+FUNCS += functions/gnutls_x509_crq_get_key_id
+FUNCS += functions/gnutls_x509_crq_get_key_id.short
+FUNCS += functions/gnutls_x509_crq_get_key_purpose_oid
+FUNCS += functions/gnutls_x509_crq_get_key_purpose_oid.short
+FUNCS += functions/gnutls_x509_crq_get_key_rsa_raw
+FUNCS += functions/gnutls_x509_crq_get_key_rsa_raw.short
+FUNCS += functions/gnutls_x509_crq_get_key_usage
+FUNCS += functions/gnutls_x509_crq_get_key_usage.short
+FUNCS += functions/gnutls_x509_crq_get_pk_algorithm
+FUNCS += functions/gnutls_x509_crq_get_pk_algorithm.short
+FUNCS += functions/gnutls_x509_crq_get_private_key_usage_period
+FUNCS += functions/gnutls_x509_crq_get_private_key_usage_period.short
+FUNCS += functions/gnutls_x509_crq_get_subject_alt_name
+FUNCS += functions/gnutls_x509_crq_get_subject_alt_name.short
+FUNCS += functions/gnutls_x509_crq_get_subject_alt_othername_oid
+FUNCS += functions/gnutls_x509_crq_get_subject_alt_othername_oid.short
+FUNCS += functions/gnutls_x509_crq_get_version
+FUNCS += functions/gnutls_x509_crq_get_version.short
+FUNCS += functions/gnutls_x509_crq_import
+FUNCS += functions/gnutls_x509_crq_import.short
+FUNCS += functions/gnutls_x509_crq_init
+FUNCS += functions/gnutls_x509_crq_init.short
+FUNCS += functions/gnutls_x509_crq_print
+FUNCS += functions/gnutls_x509_crq_print.short
+FUNCS += functions/gnutls_x509_crq_privkey_sign
+FUNCS += functions/gnutls_x509_crq_privkey_sign.short
+FUNCS += functions/gnutls_x509_crq_set_attribute_by_oid
+FUNCS += functions/gnutls_x509_crq_set_attribute_by_oid.short
+FUNCS += functions/gnutls_x509_crq_set_basic_constraints
+FUNCS += functions/gnutls_x509_crq_set_basic_constraints.short
+FUNCS += functions/gnutls_x509_crq_set_challenge_password
+FUNCS += functions/gnutls_x509_crq_set_challenge_password.short
+FUNCS += functions/gnutls_x509_crq_set_dn_by_oid
+FUNCS += functions/gnutls_x509_crq_set_dn_by_oid.short
+FUNCS += functions/gnutls_x509_crq_set_key
+FUNCS += functions/gnutls_x509_crq_set_key.short
+FUNCS += functions/gnutls_x509_crq_set_key_purpose_oid
+FUNCS += functions/gnutls_x509_crq_set_key_purpose_oid.short
+FUNCS += functions/gnutls_x509_crq_set_key_rsa_raw
+FUNCS += functions/gnutls_x509_crq_set_key_rsa_raw.short
+FUNCS += functions/gnutls_x509_crq_set_key_usage
+FUNCS += functions/gnutls_x509_crq_set_key_usage.short
+FUNCS += functions/gnutls_x509_crq_set_private_key_usage_period
+FUNCS += functions/gnutls_x509_crq_set_private_key_usage_period.short
+FUNCS += functions/gnutls_x509_crq_set_pubkey
+FUNCS += functions/gnutls_x509_crq_set_pubkey.short
+FUNCS += functions/gnutls_x509_crq_set_subject_alt_name
+FUNCS += functions/gnutls_x509_crq_set_subject_alt_name.short
+FUNCS += functions/gnutls_x509_crq_set_version
+FUNCS += functions/gnutls_x509_crq_set_version.short
+FUNCS += functions/gnutls_x509_crq_sign
+FUNCS += functions/gnutls_x509_crq_sign.short
+FUNCS += functions/gnutls_x509_crq_sign2
+FUNCS += functions/gnutls_x509_crq_sign2.short
+FUNCS += functions/gnutls_x509_crq_verify
+FUNCS += functions/gnutls_x509_crq_verify.short
+FUNCS += functions/gnutls_x509_crt_check_hostname
+FUNCS += functions/gnutls_x509_crt_check_hostname.short
+FUNCS += functions/gnutls_x509_crt_check_issuer
+FUNCS += functions/gnutls_x509_crt_check_issuer.short
+FUNCS += functions/gnutls_x509_crt_check_revocation
+FUNCS += functions/gnutls_x509_crt_check_revocation.short
+FUNCS += functions/gnutls_x509_crt_cpy_crl_dist_points
+FUNCS += functions/gnutls_x509_crt_cpy_crl_dist_points.short
+FUNCS += functions/gnutls_x509_crt_deinit
+FUNCS += functions/gnutls_x509_crt_deinit.short
+FUNCS += functions/gnutls_x509_crt_export
+FUNCS += functions/gnutls_x509_crt_export.short
+FUNCS += functions/gnutls_x509_crt_get_activation_time
+FUNCS += functions/gnutls_x509_crt_get_activation_time.short
+FUNCS += functions/gnutls_x509_crt_get_authority_info_access
+FUNCS += functions/gnutls_x509_crt_get_authority_info_access.short
+FUNCS += functions/gnutls_x509_crt_get_authority_key_gn_serial
+FUNCS += functions/gnutls_x509_crt_get_authority_key_gn_serial.short
+FUNCS += functions/gnutls_x509_crt_get_authority_key_id
+FUNCS += functions/gnutls_x509_crt_get_authority_key_id.short
+FUNCS += functions/gnutls_x509_crt_get_basic_constraints
+FUNCS += functions/gnutls_x509_crt_get_basic_constraints.short
+FUNCS += functions/gnutls_x509_crt_get_ca_status
+FUNCS += functions/gnutls_x509_crt_get_ca_status.short
+FUNCS += functions/gnutls_x509_crt_get_crl_dist_points
+FUNCS += functions/gnutls_x509_crt_get_crl_dist_points.short
+FUNCS += functions/gnutls_x509_crt_get_dn
+FUNCS += functions/gnutls_x509_crt_get_dn.short
+FUNCS += functions/gnutls_x509_crt_get_dn_by_oid
+FUNCS += functions/gnutls_x509_crt_get_dn_by_oid.short
+FUNCS += functions/gnutls_x509_crt_get_dn_oid
+FUNCS += functions/gnutls_x509_crt_get_dn_oid.short
 FUNCS += functions/gnutls_x509_crt_get_expiration_time
 FUNCS += functions/gnutls_x509_crt_get_expiration_time.short
-FUNCS += functions/gnutls_x509_crt_get_serial
-FUNCS += functions/gnutls_x509_crt_get_serial.short
-FUNCS += functions/gnutls_x509_crt_get_pk_algorithm
-FUNCS += functions/gnutls_x509_crt_get_pk_algorithm.short
-FUNCS += functions/gnutls_x509_crt_get_pk_rsa_raw
-FUNCS += functions/gnutls_x509_crt_get_pk_rsa_raw.short
-FUNCS += functions/gnutls_x509_crt_get_pk_dsa_raw
-FUNCS += functions/gnutls_x509_crt_get_pk_dsa_raw.short
-FUNCS += functions/gnutls_x509_crt_get_subject_alt_name
-FUNCS += functions/gnutls_x509_crt_get_subject_alt_name.short
-FUNCS += functions/gnutls_x509_crt_get_subject_alt_name2
-FUNCS += functions/gnutls_x509_crt_get_subject_alt_name2.short
-FUNCS += functions/gnutls_x509_crt_get_subject_alt_othername_oid
-FUNCS += functions/gnutls_x509_crt_get_subject_alt_othername_oid.short
+FUNCS += functions/gnutls_x509_crt_get_extension_by_oid
+FUNCS += functions/gnutls_x509_crt_get_extension_by_oid.short
+FUNCS += functions/gnutls_x509_crt_get_extension_data
+FUNCS += functions/gnutls_x509_crt_get_extension_data.short
+FUNCS += functions/gnutls_x509_crt_get_extension_info
+FUNCS += functions/gnutls_x509_crt_get_extension_info.short
+FUNCS += functions/gnutls_x509_crt_get_extension_oid
+FUNCS += functions/gnutls_x509_crt_get_extension_oid.short
+FUNCS += functions/gnutls_x509_crt_get_fingerprint
+FUNCS += functions/gnutls_x509_crt_get_fingerprint.short
+FUNCS += functions/gnutls_x509_crt_get_issuer
+FUNCS += functions/gnutls_x509_crt_get_issuer.short
 FUNCS += functions/gnutls_x509_crt_get_issuer_alt_name
 FUNCS += functions/gnutls_x509_crt_get_issuer_alt_name.short
 FUNCS += functions/gnutls_x509_crt_get_issuer_alt_name2
 FUNCS += functions/gnutls_x509_crt_get_issuer_alt_name2.short
 FUNCS += functions/gnutls_x509_crt_get_issuer_alt_othername_oid
 FUNCS += functions/gnutls_x509_crt_get_issuer_alt_othername_oid.short
-FUNCS += functions/gnutls_x509_crt_get_ca_status
-FUNCS += functions/gnutls_x509_crt_get_ca_status.short
-FUNCS += functions/gnutls_x509_crt_get_basic_constraints
-FUNCS += functions/gnutls_x509_crt_get_basic_constraints.short
+FUNCS += functions/gnutls_x509_crt_get_issuer_dn
+FUNCS += functions/gnutls_x509_crt_get_issuer_dn.short
+FUNCS += functions/gnutls_x509_crt_get_issuer_dn_by_oid
+FUNCS += functions/gnutls_x509_crt_get_issuer_dn_by_oid.short
+FUNCS += functions/gnutls_x509_crt_get_issuer_dn_oid
+FUNCS += functions/gnutls_x509_crt_get_issuer_dn_oid.short
+FUNCS += functions/gnutls_x509_crt_get_issuer_unique_id
+FUNCS += functions/gnutls_x509_crt_get_issuer_unique_id.short
+FUNCS += functions/gnutls_x509_crt_get_key_id
+FUNCS += functions/gnutls_x509_crt_get_key_id.short
+FUNCS += functions/gnutls_x509_crt_get_key_purpose_oid
+FUNCS += functions/gnutls_x509_crt_get_key_purpose_oid.short
 FUNCS += functions/gnutls_x509_crt_get_key_usage
 FUNCS += functions/gnutls_x509_crt_get_key_usage.short
-FUNCS += functions/gnutls_x509_crt_set_key_usage
-FUNCS += functions/gnutls_x509_crt_set_key_usage.short
-FUNCS += functions/gnutls_x509_crt_set_authority_info_access
-FUNCS += functions/gnutls_x509_crt_set_authority_info_access.short
+FUNCS += functions/gnutls_x509_crt_get_pk_algorithm
+FUNCS += functions/gnutls_x509_crt_get_pk_algorithm.short
+FUNCS += functions/gnutls_x509_crt_get_pk_dsa_raw
+FUNCS += functions/gnutls_x509_crt_get_pk_dsa_raw.short
+FUNCS += functions/gnutls_x509_crt_get_pk_rsa_raw
+FUNCS += functions/gnutls_x509_crt_get_pk_rsa_raw.short
+FUNCS += functions/gnutls_x509_crt_get_preferred_hash_algorithm
+FUNCS += functions/gnutls_x509_crt_get_preferred_hash_algorithm.short
+FUNCS += functions/gnutls_x509_crt_get_private_key_usage_period
+FUNCS += functions/gnutls_x509_crt_get_private_key_usage_period.short
 FUNCS += functions/gnutls_x509_crt_get_proxy
 FUNCS += functions/gnutls_x509_crt_get_proxy.short
-FUNCS += functions/gnutls_x509_dn_oid_known
-FUNCS += functions/gnutls_x509_dn_oid_known.short
-FUNCS += functions/gnutls_x509_dn_oid_name
-FUNCS += functions/gnutls_x509_dn_oid_name.short
-FUNCS += functions/gnutls_x509_crt_get_extension_oid
-FUNCS += functions/gnutls_x509_crt_get_extension_oid.short
-FUNCS += functions/gnutls_x509_crt_get_extension_by_oid
-FUNCS += functions/gnutls_x509_crt_get_extension_by_oid.short
-FUNCS += functions/gnutls_x509_crt_get_extension_info
-FUNCS += functions/gnutls_x509_crt_get_extension_info.short
-FUNCS += functions/gnutls_x509_crt_get_extension_data
-FUNCS += functions/gnutls_x509_crt_get_extension_data.short
-FUNCS += functions/gnutls_x509_crt_set_extension_by_oid
-FUNCS += functions/gnutls_x509_crt_set_extension_by_oid.short
-FUNCS += functions/gnutls_x509_crt_set_dn_by_oid
-FUNCS += functions/gnutls_x509_crt_set_dn_by_oid.short
-FUNCS += functions/gnutls_x509_crt_set_issuer_dn_by_oid
-FUNCS += functions/gnutls_x509_crt_set_issuer_dn_by_oid.short
-FUNCS += functions/gnutls_x509_crt_set_version
-FUNCS += functions/gnutls_x509_crt_set_version.short
-FUNCS += functions/gnutls_x509_crt_set_key
-FUNCS += functions/gnutls_x509_crt_set_key.short
-FUNCS += functions/gnutls_x509_crt_set_ca_status
-FUNCS += functions/gnutls_x509_crt_set_ca_status.short
-FUNCS += functions/gnutls_x509_crt_set_basic_constraints
-FUNCS += functions/gnutls_x509_crt_set_basic_constraints.short
-FUNCS += functions/gnutls_x509_crt_set_subject_alternative_name
-FUNCS += functions/gnutls_x509_crt_set_subject_alternative_name.short
-FUNCS += functions/gnutls_x509_crt_set_subject_alt_name
-FUNCS += functions/gnutls_x509_crt_set_subject_alt_name.short
-FUNCS += functions/gnutls_x509_crt_sign
-FUNCS += functions/gnutls_x509_crt_sign.short
-FUNCS += functions/gnutls_x509_crt_sign2
-FUNCS += functions/gnutls_x509_crt_sign2.short
-FUNCS += functions/gnutls_x509_crt_set_activation_time
-FUNCS += functions/gnutls_x509_crt_set_activation_time.short
-FUNCS += functions/gnutls_x509_crt_set_expiration_time
-FUNCS += functions/gnutls_x509_crt_set_expiration_time.short
-FUNCS += functions/gnutls_x509_crt_set_serial
-FUNCS += functions/gnutls_x509_crt_set_serial.short
-FUNCS += functions/gnutls_x509_crt_set_subject_key_id
-FUNCS += functions/gnutls_x509_crt_set_subject_key_id.short
-FUNCS += functions/gnutls_x509_crt_set_proxy_dn
-FUNCS += functions/gnutls_x509_crt_set_proxy_dn.short
-FUNCS += functions/gnutls_x509_crt_set_proxy
-FUNCS += functions/gnutls_x509_crt_set_proxy.short
-FUNCS += functions/gnutls_x509_crt_print
-FUNCS += functions/gnutls_x509_crt_print.short
-FUNCS += functions/gnutls_x509_crl_print
-FUNCS += functions/gnutls_x509_crl_print.short
-FUNCS += functions/gnutls_x509_crt_get_raw_issuer_dn
-FUNCS += functions/gnutls_x509_crt_get_raw_issuer_dn.short
 FUNCS += functions/gnutls_x509_crt_get_raw_dn
 FUNCS += functions/gnutls_x509_crt_get_raw_dn.short
-FUNCS += functions/gnutls_x509_rdn_get
-FUNCS += functions/gnutls_x509_rdn_get.short
-FUNCS += functions/gnutls_x509_rdn_get_oid
-FUNCS += functions/gnutls_x509_rdn_get_oid.short
-FUNCS += functions/gnutls_x509_rdn_get_by_oid
-FUNCS += functions/gnutls_x509_rdn_get_by_oid.short
+FUNCS += functions/gnutls_x509_crt_get_raw_issuer_dn
+FUNCS += functions/gnutls_x509_crt_get_raw_issuer_dn.short
+FUNCS += functions/gnutls_x509_crt_get_serial
+FUNCS += functions/gnutls_x509_crt_get_serial.short
+FUNCS += functions/gnutls_x509_crt_get_signature
+FUNCS += functions/gnutls_x509_crt_get_signature.short
+FUNCS += functions/gnutls_x509_crt_get_signature_algorithm
+FUNCS += functions/gnutls_x509_crt_get_signature_algorithm.short
 FUNCS += functions/gnutls_x509_crt_get_subject
 FUNCS += functions/gnutls_x509_crt_get_subject.short
-FUNCS += functions/gnutls_x509_crt_get_issuer
-FUNCS += functions/gnutls_x509_crt_get_issuer.short
-FUNCS += functions/gnutls_x509_dn_get_rdn_ava
-FUNCS += functions/gnutls_x509_dn_get_rdn_ava.short
-FUNCS += functions/gnutls_x509_dn_init
-FUNCS += functions/gnutls_x509_dn_init.short
-FUNCS += functions/gnutls_x509_dn_import
-FUNCS += functions/gnutls_x509_dn_import.short
-FUNCS += functions/gnutls_x509_dn_export
-FUNCS += functions/gnutls_x509_dn_export.short
-FUNCS += functions/gnutls_x509_dn_deinit
-FUNCS += functions/gnutls_x509_dn_deinit.short
-FUNCS += functions/gnutls_x509_crl_init
-FUNCS += functions/gnutls_x509_crl_init.short
-FUNCS += functions/gnutls_x509_crl_deinit
-FUNCS += functions/gnutls_x509_crl_deinit.short
-FUNCS += functions/gnutls_x509_crl_import
-FUNCS += functions/gnutls_x509_crl_import.short
-FUNCS += functions/gnutls_x509_crl_export
-FUNCS += functions/gnutls_x509_crl_export.short
-FUNCS += functions/gnutls_x509_crl_get_raw_issuer_dn
-FUNCS += functions/gnutls_x509_crl_get_raw_issuer_dn.short
-FUNCS += functions/gnutls_x509_crl_get_issuer_dn
-FUNCS += functions/gnutls_x509_crl_get_issuer_dn.short
-FUNCS += functions/gnutls_x509_crl_get_issuer_dn_by_oid
-FUNCS += functions/gnutls_x509_crl_get_issuer_dn_by_oid.short
-FUNCS += functions/gnutls_x509_crl_get_dn_oid
-FUNCS += functions/gnutls_x509_crl_get_dn_oid.short
-FUNCS += functions/gnutls_x509_crl_get_signature_algorithm
-FUNCS += functions/gnutls_x509_crl_get_signature_algorithm.short
-FUNCS += functions/gnutls_x509_crl_get_signature
-FUNCS += functions/gnutls_x509_crl_get_signature.short
-FUNCS += functions/gnutls_x509_crl_get_version
-FUNCS += functions/gnutls_x509_crl_get_version.short
-FUNCS += functions/gnutls_x509_crl_get_this_update
-FUNCS += functions/gnutls_x509_crl_get_this_update.short
-FUNCS += functions/gnutls_x509_crl_get_next_update
-FUNCS += functions/gnutls_x509_crl_get_next_update.short
-FUNCS += functions/gnutls_x509_crl_get_crt_count
-FUNCS += functions/gnutls_x509_crl_get_crt_count.short
-FUNCS += functions/gnutls_x509_crl_get_crt_serial
-FUNCS += functions/gnutls_x509_crl_get_crt_serial.short
-FUNCS += functions/gnutls_x509_crl_check_issuer
-FUNCS += functions/gnutls_x509_crl_check_issuer.short
-FUNCS += functions/gnutls_x509_crl_list_import2
-FUNCS += functions/gnutls_x509_crl_list_import2.short
-FUNCS += functions/gnutls_x509_crl_list_import
-FUNCS += functions/gnutls_x509_crl_list_import.short
-FUNCS += functions/gnutls_x509_crl_set_version
-FUNCS += functions/gnutls_x509_crl_set_version.short
-FUNCS += functions/gnutls_x509_crl_set_this_update
-FUNCS += functions/gnutls_x509_crl_set_this_update.short
-FUNCS += functions/gnutls_x509_crl_set_next_update
-FUNCS += functions/gnutls_x509_crl_set_next_update.short
-FUNCS += functions/gnutls_x509_crl_set_crt_serial
-FUNCS += functions/gnutls_x509_crl_set_crt_serial.short
-FUNCS += functions/gnutls_x509_crl_set_crt
-FUNCS += functions/gnutls_x509_crl_set_crt.short
-FUNCS += functions/gnutls_x509_crl_get_authority_key_id
-FUNCS += functions/gnutls_x509_crl_get_authority_key_id.short
-FUNCS += functions/gnutls_x509_crl_get_authority_key_gn_serial
-FUNCS += functions/gnutls_x509_crl_get_authority_key_gn_serial.short
-FUNCS += functions/gnutls_x509_crl_get_number
-FUNCS += functions/gnutls_x509_crl_get_number.short
-FUNCS += functions/gnutls_x509_crl_get_extension_oid
-FUNCS += functions/gnutls_x509_crl_get_extension_oid.short
-FUNCS += functions/gnutls_x509_crl_get_extension_info
-FUNCS += functions/gnutls_x509_crl_get_extension_info.short
-FUNCS += functions/gnutls_x509_crl_get_extension_data
-FUNCS += functions/gnutls_x509_crl_get_extension_data.short
-FUNCS += functions/gnutls_x509_crl_set_authority_key_id
-FUNCS += functions/gnutls_x509_crl_set_authority_key_id.short
-FUNCS += functions/gnutls_x509_crl_set_number
-FUNCS += functions/gnutls_x509_crl_set_number.short
-FUNCS += functions/gnutls_pkcs7_init
-FUNCS += functions/gnutls_pkcs7_init.short
-FUNCS += functions/gnutls_pkcs7_deinit
-FUNCS += functions/gnutls_pkcs7_deinit.short
-FUNCS += functions/gnutls_pkcs7_import
-FUNCS += functions/gnutls_pkcs7_import.short
-FUNCS += functions/gnutls_pkcs7_export
-FUNCS += functions/gnutls_pkcs7_export.short
-FUNCS += functions/gnutls_pkcs7_get_crt_count
-FUNCS += functions/gnutls_pkcs7_get_crt_count.short
-FUNCS += functions/gnutls_pkcs7_get_crt_raw
-FUNCS += functions/gnutls_pkcs7_get_crt_raw.short
-FUNCS += functions/gnutls_pkcs7_set_crt_raw
-FUNCS += functions/gnutls_pkcs7_set_crt_raw.short
-FUNCS += functions/gnutls_pkcs7_set_crt
-FUNCS += functions/gnutls_pkcs7_set_crt.short
-FUNCS += functions/gnutls_pkcs7_delete_crt
-FUNCS += functions/gnutls_pkcs7_delete_crt.short
-FUNCS += functions/gnutls_pkcs7_get_crl_raw
-FUNCS += functions/gnutls_pkcs7_get_crl_raw.short
-FUNCS += functions/gnutls_pkcs7_get_crl_count
-FUNCS += functions/gnutls_pkcs7_get_crl_count.short
-FUNCS += functions/gnutls_pkcs7_set_crl_raw
-FUNCS += functions/gnutls_pkcs7_set_crl_raw.short
-FUNCS += functions/gnutls_pkcs7_set_crl
-FUNCS += functions/gnutls_pkcs7_set_crl.short
-FUNCS += functions/gnutls_pkcs7_delete_crl
-FUNCS += functions/gnutls_pkcs7_delete_crl.short
-FUNCS += functions/gnutls_x509_crt_check_issuer
-FUNCS += functions/gnutls_x509_crt_check_issuer.short
+FUNCS += functions/gnutls_x509_crt_get_subject_alt_name
+FUNCS += functions/gnutls_x509_crt_get_subject_alt_name.short
+FUNCS += functions/gnutls_x509_crt_get_subject_alt_name2
+FUNCS += functions/gnutls_x509_crt_get_subject_alt_name2.short
+FUNCS += functions/gnutls_x509_crt_get_subject_alt_othername_oid
+FUNCS += functions/gnutls_x509_crt_get_subject_alt_othername_oid.short
+FUNCS += functions/gnutls_x509_crt_get_subject_key_id
+FUNCS += functions/gnutls_x509_crt_get_subject_key_id.short
+FUNCS += functions/gnutls_x509_crt_get_subject_unique_id
+FUNCS += functions/gnutls_x509_crt_get_subject_unique_id.short
+FUNCS += functions/gnutls_x509_crt_get_verify_algorithm
+FUNCS += functions/gnutls_x509_crt_get_verify_algorithm.short
+FUNCS += functions/gnutls_x509_crt_get_version
+FUNCS += functions/gnutls_x509_crt_get_version.short
+FUNCS += functions/gnutls_x509_crt_import
+FUNCS += functions/gnutls_x509_crt_import.short
+FUNCS += functions/gnutls_x509_crt_import_pkcs11
+FUNCS += functions/gnutls_x509_crt_import_pkcs11.short
+FUNCS += functions/gnutls_x509_crt_import_pkcs11_url
+FUNCS += functions/gnutls_x509_crt_import_pkcs11_url.short
+FUNCS += functions/gnutls_x509_crt_init
+FUNCS += functions/gnutls_x509_crt_init.short
+FUNCS += functions/gnutls_x509_crt_list_import
+FUNCS += functions/gnutls_x509_crt_list_import.short
+FUNCS += functions/gnutls_x509_crt_list_import2
+FUNCS += functions/gnutls_x509_crt_list_import2.short
+FUNCS += functions/gnutls_x509_crt_list_import_pkcs11
+FUNCS += functions/gnutls_x509_crt_list_import_pkcs11.short
 FUNCS += functions/gnutls_x509_crt_list_verify
 FUNCS += functions/gnutls_x509_crt_list_verify.short
-FUNCS += functions/gnutls_x509_crt_verify
-FUNCS += functions/gnutls_x509_crt_verify.short
-FUNCS += functions/gnutls_x509_crl_verify
-FUNCS += functions/gnutls_x509_crl_verify.short
-FUNCS += functions/gnutls_x509_crt_check_revocation
-FUNCS += functions/gnutls_x509_crt_check_revocation.short
-FUNCS += functions/gnutls_x509_crt_get_fingerprint
-FUNCS += functions/gnutls_x509_crt_get_fingerprint.short
-FUNCS += functions/gnutls_x509_crt_get_key_purpose_oid
-FUNCS += functions/gnutls_x509_crt_get_key_purpose_oid.short
+FUNCS += functions/gnutls_x509_crt_print
+FUNCS += functions/gnutls_x509_crt_print.short
+FUNCS += functions/gnutls_x509_crt_privkey_sign
+FUNCS += functions/gnutls_x509_crt_privkey_sign.short
+FUNCS += functions/gnutls_x509_crt_set_activation_time
+FUNCS += functions/gnutls_x509_crt_set_activation_time.short
+FUNCS += functions/gnutls_x509_crt_set_authority_info_access
+FUNCS += functions/gnutls_x509_crt_set_authority_info_access.short
+FUNCS += functions/gnutls_x509_crt_set_authority_key_id
+FUNCS += functions/gnutls_x509_crt_set_authority_key_id.short
+FUNCS += functions/gnutls_x509_crt_set_basic_constraints
+FUNCS += functions/gnutls_x509_crt_set_basic_constraints.short
+FUNCS += functions/gnutls_x509_crt_set_ca_status
+FUNCS += functions/gnutls_x509_crt_set_ca_status.short
+FUNCS += functions/gnutls_x509_crt_set_crl_dist_points
+FUNCS += functions/gnutls_x509_crt_set_crl_dist_points.short
+FUNCS += functions/gnutls_x509_crt_set_crl_dist_points2
+FUNCS += functions/gnutls_x509_crt_set_crl_dist_points2.short
+FUNCS += functions/gnutls_x509_crt_set_crq
+FUNCS += functions/gnutls_x509_crt_set_crq.short
+FUNCS += functions/gnutls_x509_crt_set_crq_extensions
+FUNCS += functions/gnutls_x509_crt_set_crq_extensions.short
+FUNCS += functions/gnutls_x509_crt_set_dn_by_oid
+FUNCS += functions/gnutls_x509_crt_set_dn_by_oid.short
+FUNCS += functions/gnutls_x509_crt_set_expiration_time
+FUNCS += functions/gnutls_x509_crt_set_expiration_time.short
+FUNCS += functions/gnutls_x509_crt_set_extension_by_oid
+FUNCS += functions/gnutls_x509_crt_set_extension_by_oid.short
+FUNCS += functions/gnutls_x509_crt_set_issuer_dn_by_oid
+FUNCS += functions/gnutls_x509_crt_set_issuer_dn_by_oid.short
+FUNCS += functions/gnutls_x509_crt_set_key
+FUNCS += functions/gnutls_x509_crt_set_key.short
 FUNCS += functions/gnutls_x509_crt_set_key_purpose_oid
 FUNCS += functions/gnutls_x509_crt_set_key_purpose_oid.short
-FUNCS += functions/gnutls_x509_privkey_init
-FUNCS += functions/gnutls_x509_privkey_init.short
-FUNCS += functions/gnutls_x509_privkey_deinit
-FUNCS += functions/gnutls_x509_privkey_deinit.short
-FUNCS += functions/gnutls_x509_privkey_sec_param
-FUNCS += functions/gnutls_x509_privkey_sec_param.short
+FUNCS += functions/gnutls_x509_crt_set_key_usage
+FUNCS += functions/gnutls_x509_crt_set_key_usage.short
+FUNCS += functions/gnutls_x509_crt_set_private_key_usage_period
+FUNCS += functions/gnutls_x509_crt_set_private_key_usage_period.short
+FUNCS += functions/gnutls_x509_crt_set_proxy
+FUNCS += functions/gnutls_x509_crt_set_proxy.short
+FUNCS += functions/gnutls_x509_crt_set_proxy_dn
+FUNCS += functions/gnutls_x509_crt_set_proxy_dn.short
+FUNCS += functions/gnutls_x509_crt_set_pubkey
+FUNCS += functions/gnutls_x509_crt_set_pubkey.short
+FUNCS += functions/gnutls_x509_crt_set_serial
+FUNCS += functions/gnutls_x509_crt_set_serial.short
+FUNCS += functions/gnutls_x509_crt_set_subject_alternative_name
+FUNCS += functions/gnutls_x509_crt_set_subject_alternative_name.short
+FUNCS += functions/gnutls_x509_crt_set_subject_alt_name
+FUNCS += functions/gnutls_x509_crt_set_subject_alt_name.short
+FUNCS += functions/gnutls_x509_crt_set_subject_key_id
+FUNCS += functions/gnutls_x509_crt_set_subject_key_id.short
+FUNCS += functions/gnutls_x509_crt_set_version
+FUNCS += functions/gnutls_x509_crt_set_version.short
+FUNCS += functions/gnutls_x509_crt_sign
+FUNCS += functions/gnutls_x509_crt_sign.short
+FUNCS += functions/gnutls_x509_crt_sign2
+FUNCS += functions/gnutls_x509_crt_sign2.short
+FUNCS += functions/gnutls_x509_crt_verify
+FUNCS += functions/gnutls_x509_crt_verify.short
+FUNCS += functions/gnutls_x509_crt_verify_data
+FUNCS += functions/gnutls_x509_crt_verify_data.short
+FUNCS += functions/gnutls_x509_crt_verify_hash
+FUNCS += functions/gnutls_x509_crt_verify_hash.short
+FUNCS += functions/gnutls_x509_dn_deinit
+FUNCS += functions/gnutls_x509_dn_deinit.short
+FUNCS += functions/gnutls_x509_dn_export
+FUNCS += functions/gnutls_x509_dn_export.short
+FUNCS += functions/gnutls_x509_dn_get_rdn_ava
+FUNCS += functions/gnutls_x509_dn_get_rdn_ava.short
+FUNCS += functions/gnutls_x509_dn_import
+FUNCS += functions/gnutls_x509_dn_import.short
+FUNCS += functions/gnutls_x509_dn_init
+FUNCS += functions/gnutls_x509_dn_init.short
+FUNCS += functions/gnutls_x509_dn_oid_known
+FUNCS += functions/gnutls_x509_dn_oid_known.short
+FUNCS += functions/gnutls_x509_dn_oid_name
+FUNCS += functions/gnutls_x509_dn_oid_name.short
 FUNCS += functions/gnutls_x509_privkey_cpy
 FUNCS += functions/gnutls_x509_privkey_cpy.short
+FUNCS += functions/gnutls_x509_privkey_deinit
+FUNCS += functions/gnutls_x509_privkey_deinit.short
+FUNCS += functions/gnutls_x509_privkey_export
+FUNCS += functions/gnutls_x509_privkey_export.short
+FUNCS += functions/gnutls_x509_privkey_export_dsa_raw
+FUNCS += functions/gnutls_x509_privkey_export_dsa_raw.short
+FUNCS += functions/gnutls_x509_privkey_export_ecc_raw
+FUNCS += functions/gnutls_x509_privkey_export_ecc_raw.short
+FUNCS += functions/gnutls_x509_privkey_export_pkcs8
+FUNCS += functions/gnutls_x509_privkey_export_pkcs8.short
+FUNCS += functions/gnutls_x509_privkey_export_rsa_raw
+FUNCS += functions/gnutls_x509_privkey_export_rsa_raw.short
+FUNCS += functions/gnutls_x509_privkey_export_rsa_raw2
+FUNCS += functions/gnutls_x509_privkey_export_rsa_raw2.short
+FUNCS += functions/gnutls_x509_privkey_fix
+FUNCS += functions/gnutls_x509_privkey_fix.short
+FUNCS += functions/gnutls_x509_privkey_generate
+FUNCS += functions/gnutls_x509_privkey_generate.short
+FUNCS += functions/gnutls_x509_privkey_get_key_id
+FUNCS += functions/gnutls_x509_privkey_get_key_id.short
+FUNCS += functions/gnutls_x509_privkey_get_pk_algorithm
+FUNCS += functions/gnutls_x509_privkey_get_pk_algorithm.short
 FUNCS += functions/gnutls_x509_privkey_import
 FUNCS += functions/gnutls_x509_privkey_import.short
+FUNCS += functions/gnutls_x509_privkey_import_dsa_raw
+FUNCS += functions/gnutls_x509_privkey_import_dsa_raw.short
+FUNCS += functions/gnutls_x509_privkey_import_ecc_raw
+FUNCS += functions/gnutls_x509_privkey_import_ecc_raw.short
 FUNCS += functions/gnutls_x509_privkey_import_pkcs8
 FUNCS += functions/gnutls_x509_privkey_import_pkcs8.short
 FUNCS += functions/gnutls_x509_privkey_import_rsa_raw
 FUNCS += functions/gnutls_x509_privkey_import_rsa_raw.short
 FUNCS += functions/gnutls_x509_privkey_import_rsa_raw2
 FUNCS += functions/gnutls_x509_privkey_import_rsa_raw2.short
-FUNCS += functions/gnutls_x509_privkey_import_ecc_raw
-FUNCS += functions/gnutls_x509_privkey_import_ecc_raw.short
-FUNCS += functions/gnutls_x509_privkey_fix
-FUNCS += functions/gnutls_x509_privkey_fix.short
-FUNCS += functions/gnutls_x509_privkey_export_dsa_raw
-FUNCS += functions/gnutls_x509_privkey_export_dsa_raw.short
-FUNCS += functions/gnutls_x509_privkey_import_dsa_raw
-FUNCS += functions/gnutls_x509_privkey_import_dsa_raw.short
-FUNCS += functions/gnutls_x509_privkey_get_pk_algorithm
-FUNCS += functions/gnutls_x509_privkey_get_pk_algorithm.short
-FUNCS += functions/gnutls_x509_privkey_get_key_id
-FUNCS += functions/gnutls_x509_privkey_get_key_id.short
-FUNCS += functions/gnutls_x509_privkey_generate
-FUNCS += functions/gnutls_x509_privkey_generate.short
+FUNCS += functions/gnutls_x509_privkey_init
+FUNCS += functions/gnutls_x509_privkey_init.short
+FUNCS += functions/gnutls_x509_privkey_sec_param
+FUNCS += functions/gnutls_x509_privkey_sec_param.short
+FUNCS += functions/gnutls_x509_privkey_sign_data
+FUNCS += functions/gnutls_x509_privkey_sign_data.short
+FUNCS += functions/gnutls_x509_privkey_sign_hash
+FUNCS += functions/gnutls_x509_privkey_sign_hash.short
 FUNCS += functions/gnutls_x509_privkey_verify_params
 FUNCS += functions/gnutls_x509_privkey_verify_params.short
-FUNCS += functions/gnutls_x509_privkey_export
-FUNCS += functions/gnutls_x509_privkey_export.short
-FUNCS += functions/gnutls_x509_privkey_export_pkcs8
-FUNCS += functions/gnutls_x509_privkey_export_pkcs8.short
-FUNCS += functions/gnutls_x509_privkey_export_rsa_raw2
-FUNCS += functions/gnutls_x509_privkey_export_rsa_raw2.short
-FUNCS += functions/gnutls_x509_privkey_export_rsa_raw
-FUNCS += functions/gnutls_x509_privkey_export_rsa_raw.short
-FUNCS += functions/gnutls_x509_privkey_export_ecc_raw
-FUNCS += functions/gnutls_x509_privkey_export_ecc_raw.short
-FUNCS += functions/gnutls_x509_crq_sign2
-FUNCS += functions/gnutls_x509_crq_sign2.short
-FUNCS += functions/gnutls_x509_crq_print
-FUNCS += functions/gnutls_x509_crq_print.short
-FUNCS += functions/gnutls_x509_crq_verify
-FUNCS += functions/gnutls_x509_crq_verify.short
-FUNCS += functions/gnutls_x509_crq_init
-FUNCS += functions/gnutls_x509_crq_init.short
-FUNCS += functions/gnutls_x509_crq_deinit
-FUNCS += functions/gnutls_x509_crq_deinit.short
-FUNCS += functions/gnutls_x509_crq_import
-FUNCS += functions/gnutls_x509_crq_import.short
-FUNCS += functions/gnutls_x509_crq_get_private_key_usage_period
-FUNCS += functions/gnutls_x509_crq_get_private_key_usage_period.short
-FUNCS += functions/gnutls_x509_crq_get_dn
-FUNCS += functions/gnutls_x509_crq_get_dn.short
-FUNCS += functions/gnutls_x509_crq_get_dn_oid
-FUNCS += functions/gnutls_x509_crq_get_dn_oid.short
-FUNCS += functions/gnutls_x509_crq_get_dn_by_oid
-FUNCS += functions/gnutls_x509_crq_get_dn_by_oid.short
-FUNCS += functions/gnutls_x509_crq_set_dn_by_oid
-FUNCS += functions/gnutls_x509_crq_set_dn_by_oid.short
-FUNCS += functions/gnutls_x509_crq_set_version
-FUNCS += functions/gnutls_x509_crq_set_version.short
-FUNCS += functions/gnutls_x509_crq_get_version
-FUNCS += functions/gnutls_x509_crq_get_version.short
-FUNCS += functions/gnutls_x509_crq_set_key
-FUNCS += functions/gnutls_x509_crq_set_key.short
-FUNCS += functions/gnutls_x509_crq_set_challenge_password
-FUNCS += functions/gnutls_x509_crq_set_challenge_password.short
-FUNCS += functions/gnutls_x509_crq_get_challenge_password
-FUNCS += functions/gnutls_x509_crq_get_challenge_password.short
-FUNCS += functions/gnutls_x509_crq_set_attribute_by_oid
-FUNCS += functions/gnutls_x509_crq_set_attribute_by_oid.short
-FUNCS += functions/gnutls_x509_crq_get_attribute_by_oid
-FUNCS += functions/gnutls_x509_crq_get_attribute_by_oid.short
-FUNCS += functions/gnutls_x509_crq_export
-FUNCS += functions/gnutls_x509_crq_export.short
-FUNCS += functions/gnutls_x509_crt_set_crq
-FUNCS += functions/gnutls_x509_crt_set_crq.short
-FUNCS += functions/gnutls_x509_crt_set_crq_extensions
-FUNCS += functions/gnutls_x509_crt_set_crq_extensions.short
-FUNCS += functions/gnutls_x509_crq_set_private_key_usage_period
-FUNCS += functions/gnutls_x509_crq_set_private_key_usage_period.short
-FUNCS += functions/gnutls_x509_crq_set_key_rsa_raw
-FUNCS += functions/gnutls_x509_crq_set_key_rsa_raw.short
-FUNCS += functions/gnutls_x509_crq_set_subject_alt_name
-FUNCS += functions/gnutls_x509_crq_set_subject_alt_name.short
-FUNCS += functions/gnutls_x509_crq_set_key_usage
-FUNCS += functions/gnutls_x509_crq_set_key_usage.short
-FUNCS += functions/gnutls_x509_crq_set_basic_constraints
-FUNCS += functions/gnutls_x509_crq_set_basic_constraints.short
-FUNCS += functions/gnutls_x509_crq_set_key_purpose_oid
-FUNCS += functions/gnutls_x509_crq_set_key_purpose_oid.short
-FUNCS += functions/gnutls_x509_crq_get_key_purpose_oid
-FUNCS += functions/gnutls_x509_crq_get_key_purpose_oid.short
-FUNCS += functions/gnutls_x509_crq_get_extension_data
-FUNCS += functions/gnutls_x509_crq_get_extension_data.short
-FUNCS += functions/gnutls_x509_crq_get_extension_info
-FUNCS += functions/gnutls_x509_crq_get_extension_info.short
-FUNCS += functions/gnutls_x509_crq_get_attribute_data
-FUNCS += functions/gnutls_x509_crq_get_attribute_data.short
-FUNCS += functions/gnutls_x509_crq_get_attribute_info
-FUNCS += functions/gnutls_x509_crq_get_attribute_info.short
-FUNCS += functions/gnutls_x509_crq_get_pk_algorithm
-FUNCS += functions/gnutls_x509_crq_get_pk_algorithm.short
-FUNCS += functions/gnutls_x509_crq_get_key_id
-FUNCS += functions/gnutls_x509_crq_get_key_id.short
-FUNCS += functions/gnutls_x509_crq_get_key_rsa_raw
-FUNCS += functions/gnutls_x509_crq_get_key_rsa_raw.short
-FUNCS += functions/gnutls_x509_crq_get_key_usage
-FUNCS += functions/gnutls_x509_crq_get_key_usage.short
-FUNCS += functions/gnutls_x509_crq_get_basic_constraints
-FUNCS += functions/gnutls_x509_crq_get_basic_constraints.short
-FUNCS += functions/gnutls_x509_crq_get_subject_alt_name
-FUNCS += functions/gnutls_x509_crq_get_subject_alt_name.short
-FUNCS += functions/gnutls_x509_crq_get_subject_alt_othername_oid
-FUNCS += functions/gnutls_x509_crq_get_subject_alt_othername_oid.short
-FUNCS += functions/gnutls_x509_crq_get_extension_by_oid
-FUNCS += functions/gnutls_x509_crq_get_extension_by_oid.short
-FUNCS += functions/gnutls_x509_trust_list_init
-FUNCS += functions/gnutls_x509_trust_list_init.short
-FUNCS += functions/gnutls_x509_trust_list_deinit
-FUNCS += functions/gnutls_x509_trust_list_deinit.short
-FUNCS += functions/gnutls_x509_trust_list_get_issuer
-FUNCS += functions/gnutls_x509_trust_list_get_issuer.short
+FUNCS += functions/gnutls_x509_rdn_get
+FUNCS += functions/gnutls_x509_rdn_get.short
+FUNCS += functions/gnutls_x509_rdn_get_by_oid
+FUNCS += functions/gnutls_x509_rdn_get_by_oid.short
+FUNCS += functions/gnutls_x509_rdn_get_oid
+FUNCS += functions/gnutls_x509_rdn_get_oid.short
 FUNCS += functions/gnutls_x509_trust_list_add_cas
 FUNCS += functions/gnutls_x509_trust_list_add_cas.short
-FUNCS += functions/gnutls_x509_trust_list_add_named_crt
-FUNCS += functions/gnutls_x509_trust_list_add_named_crt.short
 FUNCS += functions/gnutls_x509_trust_list_add_crls
 FUNCS += functions/gnutls_x509_trust_list_add_crls.short
-FUNCS += functions/gnutls_x509_trust_list_verify_named_crt
-FUNCS += functions/gnutls_x509_trust_list_verify_named_crt.short
+FUNCS += functions/gnutls_x509_trust_list_add_named_crt
+FUNCS += functions/gnutls_x509_trust_list_add_named_crt.short
+FUNCS += functions/gnutls_x509_trust_list_deinit
+FUNCS += functions/gnutls_x509_trust_list_deinit.short
+FUNCS += functions/gnutls_x509_trust_list_get_issuer
+FUNCS += functions/gnutls_x509_trust_list_get_issuer.short
+FUNCS += functions/gnutls_x509_trust_list_init
+FUNCS += functions/gnutls_x509_trust_list_init.short
 FUNCS += functions/gnutls_x509_trust_list_verify_crt
 FUNCS += functions/gnutls_x509_trust_list_verify_crt.short
+FUNCS += functions/gnutls_x509_trust_list_verify_named_crt
+FUNCS += functions/gnutls_x509_trust_list_verify_named_crt.short
diff --git a/lib/gnutls_cert.c b/lib/gnutls_cert.c
index ac25051..357569f 100644
--- a/lib/gnutls_cert.c
+++ b/lib/gnutls_cert.c
@@ -231,6 +231,7 @@ int ret;
     }
   (*res)->verify_bits = DEFAULT_VERIFY_BITS;
   (*res)->verify_depth = DEFAULT_VERIFY_DEPTH;
+  (*res)->verify_flags = GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN;
 
   return 0;
 }
diff --git a/lib/gnutls_ui.c b/lib/gnutls_ui.c
index 6221b5e..320b1ff 100644
--- a/lib/gnutls_ui.c
+++ b/lib/gnutls_ui.c
@@ -658,7 +658,8 @@ gnutls_certificate_set_params_function 
(gnutls_certificate_credentials_t res,
  *
  * This function will set the flags to be used at verification of the
  * certificates.  Flags must be OR of the
- * #gnutls_certificate_verify_flags enumerations.
+ * #gnutls_certificate_verify_flags enumerations. The default
+ * for TLS sessions is GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN.
  *
  **/
 void
diff --git a/lib/includes/gnutls/x509.h b/lib/includes/gnutls/x509.h
index 859966b..52adb7e 100644
--- a/lib/includes/gnutls/x509.h
+++ b/lib/includes/gnutls/x509.h
@@ -598,6 +598,8 @@ extern "C"
  * @GNUTLS_VERIFY_DO_NOT_ALLOW_SAME: If a certificate is not signed by
  *   anyone trusted but exists in the trusted CA list do not treat it
  *   as trusted.
+ * @GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN: A certificate chain is tolerated
+ *   if unsorted (the case with many TLS servers out there).
  * @GNUTLS_VERIFY_ALLOW_ANY_X509_V1_CA_CRT: Allow CA certificates that
  *   have version 1 (both root and intermediate). This might be
  *   dangerous since those haven't the basicConstraints
@@ -627,6 +629,7 @@ extern "C"
     GNUTLS_VERIFY_DISABLE_TRUSTED_TIME_CHECKS = 128,
     GNUTLS_VERIFY_DO_NOT_ALLOW_X509_V1_CA_CRT = 256,
     GNUTLS_VERIFY_DISABLE_CRL_CHECKS = 512,
+    GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN = 1024,
   } gnutls_certificate_verify_flags;
 
   int gnutls_x509_crt_check_issuer (gnutls_x509_crt_t cert,
diff --git a/lib/x509/verify-high.c b/lib/x509/verify-high.c
index 2ec5279..72070b9 100644
--- a/lib/x509/verify-high.c
+++ b/lib/x509/verify-high.c
@@ -411,6 +411,71 @@ static int shorten_clist(gnutls_x509_trust_list_t list,
     return clist_size;
 }
 
+#define MAX_CERTS_TO_SORT 10
+
+/* Takes a certificate list and orders it with subject, issuer order.
+ *
+ * Returns the size of the ordered list (which is always less or
+ * equal to the original).
+ */
+static gnutls_x509_crt_t* sort_clist(gnutls_x509_crt_t 
sorted[MAX_CERTS_TO_SORT], 
+                                     gnutls_x509_crt_t * clist,
+                                     unsigned int *clist_size)
+{
+  int prev;
+  unsigned int j, i;
+  int issuer[MAX_CERTS_TO_SORT]; /* contain the index of the issuers */
+    
+    /* Do not bother sorting if too many certificates are given.
+     * Prevent any DoS attacks.
+     */
+  if (*clist_size > MAX_CERTS_TO_SORT)
+    return clist;
+
+  for (i=0;i<MAX_CERTS_TO_SORT;i++)
+    issuer[i] = -1;
+
+    /* Start by truncating any disjoint list of certificates. For
+     * example, if the server presented a chain A->B->C->X->Y->Z
+     * where X is *not* actually the issuer of C, truncate at C.
+     */
+  for(i=0;i<*clist_size;i++) 
+    {
+      for (j=1;j<*clist_size;j++) 
+        {
+          if (i==j) continue;
+        
+          if (gnutls_x509_crt_check_issuer(clist[i],
+                                           clist[j])) 
+            {
+              issuer[i] = j;
+              break;
+            }
+        }
+    }
+  
+  if (issuer[0] == -1)
+    {
+      *clist_size = 1;
+      return clist;
+    }
+  
+  prev = 0;
+  sorted[0] = clist[0];
+  for (i=1;i<*clist_size;i++)
+    {
+      prev = issuer[prev];
+      if (prev == -1) /* no issuer */
+        {
+          *clist_size = i;
+          break;
+        }
+      sorted[i] = clist[prev];
+    }
+  
+  return sorted;
+}
+
 /**
  * gnutls_x509_trust_list_get_issuer:
  * @list: The structure of the list
@@ -489,10 +554,14 @@ 
gnutls_x509_trust_list_verify_crt(gnutls_x509_trust_list_t list,
     int ret;
     unsigned int i;
     uint32_t hash;
+    gnutls_x509_crt_t sorted[MAX_CERTS_TO_SORT];
 
     if (cert_list == NULL || cert_list_size < 1)
         return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
 
+    if (flags & GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN)
+      cert_list = sort_clist(sorted, cert_list, &cert_list_size);
+
     cert_list_size = shorten_clist(list, cert_list, cert_list_size);
     if (cert_list_size <= 0)
         return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 788a5e0..f5291a3 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -68,7 +68,7 @@ ctests = mini-deflate simple gc set_pkcs12_cred certder 
certuniqueid  \
         mini-rehandshake rng-fork mini-eagain-dtls resume-dtls \
         x509cert x509cert-tl infoaccess rsa-encrypt-decrypt \
         mini-loss-time mini-tdb mini-dtls-rehandshake mini-record \
-        mini-termination mini-x509-cas
+        mini-termination mini-x509-cas chainverify-unsorted
 
 if ENABLE_OCSP
 ctests += ocsp
diff --git a/tests/chainverify-unsorted.c b/tests/chainverify-unsorted.c
new file mode 100644
index 0000000..716fbd2
--- /dev/null
+++ b/tests/chainverify-unsorted.c
@@ -0,0 +1,747 @@
+/*
+ * Copyright (C) 2011-2012 Free Software Foundation, Inc.
+ *
+ * Author: Nikos Mavrogiannopoulos
+ *
+ * This file is part of GnuTLS.
+ *
+ * GnuTLS is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GnuTLS is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GnuTLS; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+/* Parts copied from GnuTLS example programs. */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <gnutls/gnutls.h>
+#include <gnutls/x509.h>
+
+#include "utils.h"
+
+/* gnutls_trust_list_*().
+ */
+
+static void
+tls_log_func (int level, const char *str)
+{
+  fprintf (stderr, "<%d>| %s", level, str);
+}
+
+
+const char ca_str[] = 
+  "-----BEGIN CERTIFICATE-----\n"
+  "MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG\n"
+  "A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz\n"
+  "cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2\n"
+  "MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV\n"
+  "BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt\n"
+  "YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN\n"
+  "ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE\n"
+  "BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is\n"
+  "I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G\n"
+  "CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do\n"
+  "lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc\n"
+  "AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k\n"
+  "-----END CERTIFICATE-----\n";
+const gnutls_datum_t ca = { (void*)ca_str, sizeof(ca_str) };
+
+
+/* Chain1 is sorted */
+static const char chain1[] = {
+  /* chain[0] */
+  "-----BEGIN CERTIFICATE-----\n"
+  "MIIGCDCCBPCgAwIBAgIQakrDGzEQ5utI8PxRo5oXHzANBgkqhkiG9w0BAQUFADCB\n"
+  "vjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL\n"
+  "ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2Ug\n"
+  "YXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjE4MDYGA1UEAxMv\n"
+  "VmVyaVNpZ24gQ2xhc3MgMyBFeHRlbmRlZCBWYWxpZGF0aW9uIFNTTCBTR0MgQ0Ew\n"
+  "HhcNMDcwNTA5MDAwMDAwWhcNMDkwNTA4MjM1OTU5WjCCAUAxEDAOBgNVBAUTBzI0\n"
+  "OTc4ODYxEzARBgsrBgEEAYI3PAIBAxMCVVMxGTAXBgsrBgEEAYI3PAIBAhMIRGVs\n"
+  "YXdhcmUxCzAJBgNVBAYTAlVTMQ4wDAYDVQQRFAU5NDA0MzETMBEGA1UECBMKQ2Fs\n"
+  "aWZvcm5pYTEWMBQGA1UEBxQNTW91bnRhaW4gVmlldzEiMCAGA1UECRQZNDg3IEVh\n"
+  "c3QgTWlkZGxlZmllbGQgUm9hZDEXMBUGA1UEChQOVmVyaVNpZ24sIEluYy4xJTAj\n"
+  "BgNVBAsUHFByb2R1Y3Rpb24gU2VjdXJpdHkgU2VydmljZXMxMzAxBgNVBAsUKlRl\n"
+  "cm1zIG9mIHVzZSBhdCB3d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjEZMBcGA1UE\n"
+  "AxQQd3d3LnZlcmlzaWduLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA\n"
+  "xxA35ev879drgQCpENGRQ3ARaCPz/WneT9dtMe3qGNvzXQJs6cjm1Bx8XegyW1gB\n"
+  "jJX5Zl4WWbr9wpAWZ1YyJ0bEyShIGmkU8fPfbcXYwSyWoWwvE5NRaUB2ztmfAVdv\n"
+  "OaGMUKxny2Dnj3tAdaQ+FOeRDJJYg6K1hzczq/otOfsCAwEAAaOCAf8wggH7MAkG\n"
+  "A1UdEwQCMAAwHQYDVR0OBBYEFPFaiZNVR0u6UfVO4MsWVfTXzDhnMAsGA1UdDwQE\n"
+  "AwIFoDA+BgNVHR8ENzA1MDOgMaAvhi1odHRwOi8vRVZJbnRsLWNybC52ZXJpc2ln\n"
+  "bi5jb20vRVZJbnRsMjAwNi5jcmwwRAYDVR0gBD0wOzA5BgtghkgBhvhFAQcXBjAq\n"
+  "MCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhMDQGA1Ud\n"
+  "JQQtMCsGCCsGAQUFBwMBBggrBgEFBQcDAgYJYIZIAYb4QgQBBgorBgEEAYI3CgMD\n"
+  "MB8GA1UdIwQYMBaAFE5DyB127zdTek/yWG+U8zji1b3fMHYGCCsGAQUFBwEBBGow\n"
+  "aDArBggrBgEFBQcwAYYfaHR0cDovL0VWSW50bC1vY3NwLnZlcmlzaWduLmNvbTA5\n"
+  "BggrBgEFBQcwAoYtaHR0cDovL0VWSW50bC1haWEudmVyaXNpZ24uY29tL0VWSW50\n"
+  "bDIwMDYuY2VyMG0GCCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAh\n"
+  "MB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dv\n"
+  "LnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMA0GCSqGSIb3DQEBBQUAA4IBAQBEueAg\n"
+  "xZJrjGPKAZk1NT8VtTn0yi87i9XUnSOnkFkAuI3THDd+cWbNSUzc5uFJg42GhMK7\n"
+  "S1Rojm8FHxESovLvimH/w111BKF9wNU2XSOb9KohfYq3GRiQG8O7v9JwIjjLepkc\n"
+  "iyITx7sYiJ+kwZlrNBwN6TwVHrONg6NzyzSnxCg+XgKRbJu2PqEQb6uQVkYhb+Oq\n"
+  "Vi9d4by9YqpnuXImSffQ0OZ/6s3Rl6vY08zIPqa6OVfjGs/H45ETblzezcUKpX0L\n"
+  "cqnOwUB9dVuPhtlX3X/hgz/ROxz96NBwwzha58HUgfEfkVtm+piI6TTI7XxS/7Av\n"
+  "nKMfhbyFQYPQ6J9g\n"
+  "-----END CERTIFICATE-----\n"
+  /* chain[1] */
+  "-----BEGIN CERTIFICATE-----\n"
+  "MIIGCjCCBPKgAwIBAgIQESoAbTflEG/WynzD77rMGDANBgkqhkiG9w0BAQUFADCB\n"
+  "yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL\n"
+  "ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp\n"
+  "U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW\n"
+  "ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0\n"
+  "aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMTYxMTA3MjM1OTU5WjCBvjEL\n"
+  "MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW\n"
+  "ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQg\n"
+  "aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjE4MDYGA1UEAxMvVmVy\n"
+  "aVNpZ24gQ2xhc3MgMyBFeHRlbmRlZCBWYWxpZGF0aW9uIFNTTCBTR0MgQ0EwggEi\n"
+  "MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9Voi6iDRkZM/NyrDu5xlzxXLZ\n"
+  "u0W8taj/g74cA9vtibcuEBolvFXKQaGfC88ZXnC5XjlLnjEcX4euKqqoK6IbOxAj\n"
+  "XxOx3QiMThTag4HjtYzjaO0kZ85Wtqybc5ZE24qMs9bwcZOO23FUSutzWWqPcFEs\n"
+  "A5+X0cwRerxiDZUqyRx1V+n1x+q6hDXLx4VafuRN4RGXfQ4gNEXb8aIJ6+s9nriW\n"
+  "Q140SwglHkMaotm3igE0PcP45a9PjP/NZfAjTsWXs1zakByChQ0GDcEitnsopAPD\n"
+  "TFPRWLxyvAg5/KB2qKjpS26IPeOzMSWMcylIDjJ5Bu09Q/T25On8fb6OCNUfAgMB\n"
+  "AAGjggH0MIIB8DAdBgNVHQ4EFgQUTkPIHXbvN1N6T/JYb5TzOOLVvd8wEgYDVR0T\n"
+  "AQH/BAgwBgEB/wIBADA9BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYc\n"
+  "aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL2NwczA9BgNVHR8ENjA0MDKgMKAuhixo\n"
+  "dHRwOi8vRVZTZWN1cmUtY3JsLnZlcmlzaWduLmNvbS9wY2EzLWc1LmNybDAgBgNV\n"
+  "HSUEGTAXBglghkgBhvhCBAEGCmCGSAGG+EUBCAEwDgYDVR0PAQH/BAQDAgEGMBEG\n"
+  "CWCGSAGG+EIBAQQEAwIBBjBtBggrBgEFBQcBDARhMF+hXaBbMFkwVzBVFglpbWFn\n"
+  "ZS9naWYwITAfMAcGBSsOAwIaBBSP5dMahqyNjmvDz4Bq1EgYLHsZLjAlFiNodHRw\n"
+  "Oi8vbG9nby52ZXJpc2lnbi5jb20vdnNsb2dvLmdpZjApBgNVHREEIjAgpB4wHDEa\n"
+  "MBgGA1UEAxMRQ2xhc3MzQ0EyMDQ4LTEtNDgwPQYIKwYBBQUHAQEEMTAvMC0GCCsG\n"
+  "AQUFBzABhiFodHRwOi8vRVZTZWN1cmUtb2NzcC52ZXJpc2lnbi5jb20wHwYDVR0j\n"
+  "BBgwFoAUf9Nlp8Ld7LvwMAnzQzn6Aq8zMTMwDQYJKoZIhvcNAQEFBQADggEBAFqi\n"
+  "sb/rjdQ4qIBywtw4Lqyncfkro7tHu21pbxA2mIzHVi67vKtKm3rW8oKT4BT+is6D\n"
+  "t4Pbk4errGV5Sf1XqbHOCR+6EBXECQ5i4/kKJdVkmPDyqA92Mn6R5hjuvOfa0E6N\n"
+  "eLvincBZK8DOlQ0kDHLKNF5wIokrSrDxaIfz7kSNKEB3OW5IckUxXWs5DoYC6maZ\n"
+  "kzEP32fepp+MnUzOcW86Ifa5ND/5btia9z7a84Ffelxtj3z2mXS3/+QXXe1hXqtI\n"
+  "u5aNZkU5tBIK9nDpnHYiS2DpKhs0Sfei1GfAsSatE7rZhAHBq+GObXAWO3eskZq7\n"
+  "Gh/aWKfkT8Fhrryi/ks=\n"
+  "-----END CERTIFICATE-----\n"
+  /* chain[2] */
+  "-----BEGIN CERTIFICATE-----\n"
+  "MIIE/zCCBGigAwIBAgIQY5Jrio9Agv2swDvTeCmmwDANBgkqhkiG9w0BAQUFADBf\n"
+  "MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT\n"
+  "LkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw\n"
+  "HhcNMDYxMTA4MDAwMDAwWhcNMjExMTA3MjM1OTU5WjCByjELMAkGA1UEBhMCVVMx\n"
+  "FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz\n"
+  "dCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZv\n"
+  "ciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAz\n"
+  "IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEi\n"
+  "MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8\n"
+  "RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbext0uz/o9+B1fs70Pb\n"
+  "ZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhDY2pSS9KP6HBR\n"
+  "TdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/\n"
+  "Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNH\n"
+  "iDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMB\n"
+  "AAGjggHKMIIBxjAPBgNVHRMBAf8EBTADAQH/MDEGA1UdHwQqMCgwJqAkoCKGIGh0\n"
+  "dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3JsMA4GA1UdDwEB/wQEAwIBBjBt\n"
+  "BggrBgEFBQcBDARhMF+hXaBbMFkwVzBVFglpbWFnZS9naWYwITAfMAcGBSsOAwIa\n"
+  "BBSP5dMahqyNjmvDz4Bq1EgYLHsZLjAlFiNodHRwOi8vbG9nby52ZXJpc2lnbi5j\n"
+  "b20vdnNsb2dvLmdpZjA9BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYc\n"
+  "aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL2NwczAdBgNVHQ4EFgQUf9Nlp8Ld7Lvw\n"
+  "MAnzQzn6Aq8zMTMwgYAGA1UdIwR5MHehY6RhMF8xCzAJBgNVBAYTAlVTMRcwFQYD\n"
+  "VQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMyBQdWJsaWMgUHJp\n"
+  "bWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eYIQcLrkHRDZKTS2OMp7A8y6vzAg\n"
+  "BgNVHSUEGTAXBglghkgBhvhCBAEGCmCGSAGG+EUBCAEwDQYJKoZIhvcNAQEFBQAD\n"
+  "gYEAUNfnArcMK6xK11/59ADJdeNqKOck4skH3qw6WCAYQxfrcn4eobTInOn5G3Gu\n"
+  "39g6DapSHmBex2UtZSxvKnJVlWYQgE4P4wGoXdzV69YdCNssXNVVc59DYhDH05dZ\n"
+  "P4sJH99fucYDkJjUgRUYw35ww0OFwKgUp3CxiizbXxCqEQc=\n"
+  "-----END CERTIFICATE-----\n"
+  /* chain[3] (CA) */
+  "-----BEGIN CERTIFICATE-----\n"
+  "MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG\n"
+  "A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz\n"
+  "cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2\n"
+  "MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV\n"
+  "BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt\n"
+  "YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN\n"
+  "ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE\n"
+  "BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is\n"
+  "I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G\n"
+  "CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do\n"
+  "lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc\n"
+  "AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k\n"
+  "-----END CERTIFICATE-----\n"
+};
+
+/* Chain2 is unsorted - reverse order */
+static const char chain2[] = {
+  /* chain[0] */
+  "-----BEGIN CERTIFICATE-----\n"
+  "MIIGCDCCBPCgAwIBAgIQakrDGzEQ5utI8PxRo5oXHzANBgkqhkiG9w0BAQUFADCB\n"
+  "vjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL\n"
+  "ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2Ug\n"
+  "YXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjE4MDYGA1UEAxMv\n"
+  "VmVyaVNpZ24gQ2xhc3MgMyBFeHRlbmRlZCBWYWxpZGF0aW9uIFNTTCBTR0MgQ0Ew\n"
+  "HhcNMDcwNTA5MDAwMDAwWhcNMDkwNTA4MjM1OTU5WjCCAUAxEDAOBgNVBAUTBzI0\n"
+  "OTc4ODYxEzARBgsrBgEEAYI3PAIBAxMCVVMxGTAXBgsrBgEEAYI3PAIBAhMIRGVs\n"
+  "YXdhcmUxCzAJBgNVBAYTAlVTMQ4wDAYDVQQRFAU5NDA0MzETMBEGA1UECBMKQ2Fs\n"
+  "aWZvcm5pYTEWMBQGA1UEBxQNTW91bnRhaW4gVmlldzEiMCAGA1UECRQZNDg3IEVh\n"
+  "c3QgTWlkZGxlZmllbGQgUm9hZDEXMBUGA1UEChQOVmVyaVNpZ24sIEluYy4xJTAj\n"
+  "BgNVBAsUHFByb2R1Y3Rpb24gU2VjdXJpdHkgU2VydmljZXMxMzAxBgNVBAsUKlRl\n"
+  "cm1zIG9mIHVzZSBhdCB3d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjEZMBcGA1UE\n"
+  "AxQQd3d3LnZlcmlzaWduLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA\n"
+  "xxA35ev879drgQCpENGRQ3ARaCPz/WneT9dtMe3qGNvzXQJs6cjm1Bx8XegyW1gB\n"
+  "jJX5Zl4WWbr9wpAWZ1YyJ0bEyShIGmkU8fPfbcXYwSyWoWwvE5NRaUB2ztmfAVdv\n"
+  "OaGMUKxny2Dnj3tAdaQ+FOeRDJJYg6K1hzczq/otOfsCAwEAAaOCAf8wggH7MAkG\n"
+  "A1UdEwQCMAAwHQYDVR0OBBYEFPFaiZNVR0u6UfVO4MsWVfTXzDhnMAsGA1UdDwQE\n"
+  "AwIFoDA+BgNVHR8ENzA1MDOgMaAvhi1odHRwOi8vRVZJbnRsLWNybC52ZXJpc2ln\n"
+  "bi5jb20vRVZJbnRsMjAwNi5jcmwwRAYDVR0gBD0wOzA5BgtghkgBhvhFAQcXBjAq\n"
+  "MCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhMDQGA1Ud\n"
+  "JQQtMCsGCCsGAQUFBwMBBggrBgEFBQcDAgYJYIZIAYb4QgQBBgorBgEEAYI3CgMD\n"
+  "MB8GA1UdIwQYMBaAFE5DyB127zdTek/yWG+U8zji1b3fMHYGCCsGAQUFBwEBBGow\n"
+  "aDArBggrBgEFBQcwAYYfaHR0cDovL0VWSW50bC1vY3NwLnZlcmlzaWduLmNvbTA5\n"
+  "BggrBgEFBQcwAoYtaHR0cDovL0VWSW50bC1haWEudmVyaXNpZ24uY29tL0VWSW50\n"
+  "bDIwMDYuY2VyMG0GCCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAh\n"
+  "MB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dv\n"
+  "LnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMA0GCSqGSIb3DQEBBQUAA4IBAQBEueAg\n"
+  "xZJrjGPKAZk1NT8VtTn0yi87i9XUnSOnkFkAuI3THDd+cWbNSUzc5uFJg42GhMK7\n"
+  "S1Rojm8FHxESovLvimH/w111BKF9wNU2XSOb9KohfYq3GRiQG8O7v9JwIjjLepkc\n"
+  "iyITx7sYiJ+kwZlrNBwN6TwVHrONg6NzyzSnxCg+XgKRbJu2PqEQb6uQVkYhb+Oq\n"
+  "Vi9d4by9YqpnuXImSffQ0OZ/6s3Rl6vY08zIPqa6OVfjGs/H45ETblzezcUKpX0L\n"
+  "cqnOwUB9dVuPhtlX3X/hgz/ROxz96NBwwzha58HUgfEfkVtm+piI6TTI7XxS/7Av\n"
+  "nKMfhbyFQYPQ6J9g\n"
+  "-----END CERTIFICATE-----\n"
+  /* chain[3] (CA) */
+  "-----BEGIN CERTIFICATE-----\n"
+  "MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG\n"
+  "A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz\n"
+  "cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2\n"
+  "MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV\n"
+  "BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt\n"
+  "YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN\n"
+  "ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE\n"
+  "BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is\n"
+  "I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G\n"
+  "CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do\n"
+  "lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc\n"
+  "AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k\n"
+  "-----END CERTIFICATE-----\n"
+  /* chain[2] */
+  "-----BEGIN CERTIFICATE-----\n"
+  "MIIE/zCCBGigAwIBAgIQY5Jrio9Agv2swDvTeCmmwDANBgkqhkiG9w0BAQUFADBf\n"
+  "MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT\n"
+  "LkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw\n"
+  "HhcNMDYxMTA4MDAwMDAwWhcNMjExMTA3MjM1OTU5WjCByjELMAkGA1UEBhMCVVMx\n"
+  "FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz\n"
+  "dCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZv\n"
+  "ciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAz\n"
+  "IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEi\n"
+  "MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8\n"
+  "RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbext0uz/o9+B1fs70Pb\n"
+  "ZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhDY2pSS9KP6HBR\n"
+  "TdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/\n"
+  "Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNH\n"
+  "iDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMB\n"
+  "AAGjggHKMIIBxjAPBgNVHRMBAf8EBTADAQH/MDEGA1UdHwQqMCgwJqAkoCKGIGh0\n"
+  "dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3JsMA4GA1UdDwEB/wQEAwIBBjBt\n"
+  "BggrBgEFBQcBDARhMF+hXaBbMFkwVzBVFglpbWFnZS9naWYwITAfMAcGBSsOAwIa\n"
+  "BBSP5dMahqyNjmvDz4Bq1EgYLHsZLjAlFiNodHRwOi8vbG9nby52ZXJpc2lnbi5j\n"
+  "b20vdnNsb2dvLmdpZjA9BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYc\n"
+  "aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL2NwczAdBgNVHQ4EFgQUf9Nlp8Ld7Lvw\n"
+  "MAnzQzn6Aq8zMTMwgYAGA1UdIwR5MHehY6RhMF8xCzAJBgNVBAYTAlVTMRcwFQYD\n"
+  "VQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMyBQdWJsaWMgUHJp\n"
+  "bWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eYIQcLrkHRDZKTS2OMp7A8y6vzAg\n"
+  "BgNVHSUEGTAXBglghkgBhvhCBAEGCmCGSAGG+EUBCAEwDQYJKoZIhvcNAQEFBQAD\n"
+  "gYEAUNfnArcMK6xK11/59ADJdeNqKOck4skH3qw6WCAYQxfrcn4eobTInOn5G3Gu\n"
+  "39g6DapSHmBex2UtZSxvKnJVlWYQgE4P4wGoXdzV69YdCNssXNVVc59DYhDH05dZ\n"
+  "P4sJH99fucYDkJjUgRUYw35ww0OFwKgUp3CxiizbXxCqEQc=\n"
+  "-----END CERTIFICATE-----\n"
+  /* chain[1] */
+  "-----BEGIN CERTIFICATE-----\n"
+  "MIIGCjCCBPKgAwIBAgIQESoAbTflEG/WynzD77rMGDANBgkqhkiG9w0BAQUFADCB\n"
+  "yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL\n"
+  "ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp\n"
+  "U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW\n"
+  "ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0\n"
+  "aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMTYxMTA3MjM1OTU5WjCBvjEL\n"
+  "MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW\n"
+  "ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQg\n"
+  "aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjE4MDYGA1UEAxMvVmVy\n"
+  "aVNpZ24gQ2xhc3MgMyBFeHRlbmRlZCBWYWxpZGF0aW9uIFNTTCBTR0MgQ0EwggEi\n"
+  "MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9Voi6iDRkZM/NyrDu5xlzxXLZ\n"
+  "u0W8taj/g74cA9vtibcuEBolvFXKQaGfC88ZXnC5XjlLnjEcX4euKqqoK6IbOxAj\n"
+  "XxOx3QiMThTag4HjtYzjaO0kZ85Wtqybc5ZE24qMs9bwcZOO23FUSutzWWqPcFEs\n"
+  "A5+X0cwRerxiDZUqyRx1V+n1x+q6hDXLx4VafuRN4RGXfQ4gNEXb8aIJ6+s9nriW\n"
+  "Q140SwglHkMaotm3igE0PcP45a9PjP/NZfAjTsWXs1zakByChQ0GDcEitnsopAPD\n"
+  "TFPRWLxyvAg5/KB2qKjpS26IPeOzMSWMcylIDjJ5Bu09Q/T25On8fb6OCNUfAgMB\n"
+  "AAGjggH0MIIB8DAdBgNVHQ4EFgQUTkPIHXbvN1N6T/JYb5TzOOLVvd8wEgYDVR0T\n"
+  "AQH/BAgwBgEB/wIBADA9BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYc\n"
+  "aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL2NwczA9BgNVHR8ENjA0MDKgMKAuhixo\n"
+  "dHRwOi8vRVZTZWN1cmUtY3JsLnZlcmlzaWduLmNvbS9wY2EzLWc1LmNybDAgBgNV\n"
+  "HSUEGTAXBglghkgBhvhCBAEGCmCGSAGG+EUBCAEwDgYDVR0PAQH/BAQDAgEGMBEG\n"
+  "CWCGSAGG+EIBAQQEAwIBBjBtBggrBgEFBQcBDARhMF+hXaBbMFkwVzBVFglpbWFn\n"
+  "ZS9naWYwITAfMAcGBSsOAwIaBBSP5dMahqyNjmvDz4Bq1EgYLHsZLjAlFiNodHRw\n"
+  "Oi8vbG9nby52ZXJpc2lnbi5jb20vdnNsb2dvLmdpZjApBgNVHREEIjAgpB4wHDEa\n"
+  "MBgGA1UEAxMRQ2xhc3MzQ0EyMDQ4LTEtNDgwPQYIKwYBBQUHAQEEMTAvMC0GCCsG\n"
+  "AQUFBzABhiFodHRwOi8vRVZTZWN1cmUtb2NzcC52ZXJpc2lnbi5jb20wHwYDVR0j\n"
+  "BBgwFoAUf9Nlp8Ld7LvwMAnzQzn6Aq8zMTMwDQYJKoZIhvcNAQEFBQADggEBAFqi\n"
+  "sb/rjdQ4qIBywtw4Lqyncfkro7tHu21pbxA2mIzHVi67vKtKm3rW8oKT4BT+is6D\n"
+  "t4Pbk4errGV5Sf1XqbHOCR+6EBXECQ5i4/kKJdVkmPDyqA92Mn6R5hjuvOfa0E6N\n"
+  "eLvincBZK8DOlQ0kDHLKNF5wIokrSrDxaIfz7kSNKEB3OW5IckUxXWs5DoYC6maZ\n"
+  "kzEP32fepp+MnUzOcW86Ifa5ND/5btia9z7a84Ffelxtj3z2mXS3/+QXXe1hXqtI\n"
+  "u5aNZkU5tBIK9nDpnHYiS2DpKhs0Sfei1GfAsSatE7rZhAHBq+GObXAWO3eskZq7\n"
+  "Gh/aWKfkT8Fhrryi/ks=\n"
+  "-----END CERTIFICATE-----\n"
+};
+
+/* Chain3 is unsorted - random order */
+static const char chain3[] = {
+  /* chain[0] */
+  "-----BEGIN CERTIFICATE-----\n"
+  "MIIGCDCCBPCgAwIBAgIQakrDGzEQ5utI8PxRo5oXHzANBgkqhkiG9w0BAQUFADCB\n"
+  "vjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL\n"
+  "ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2Ug\n"
+  "YXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjE4MDYGA1UEAxMv\n"
+  "VmVyaVNpZ24gQ2xhc3MgMyBFeHRlbmRlZCBWYWxpZGF0aW9uIFNTTCBTR0MgQ0Ew\n"
+  "HhcNMDcwNTA5MDAwMDAwWhcNMDkwNTA4MjM1OTU5WjCCAUAxEDAOBgNVBAUTBzI0\n"
+  "OTc4ODYxEzARBgsrBgEEAYI3PAIBAxMCVVMxGTAXBgsrBgEEAYI3PAIBAhMIRGVs\n"
+  "YXdhcmUxCzAJBgNVBAYTAlVTMQ4wDAYDVQQRFAU5NDA0MzETMBEGA1UECBMKQ2Fs\n"
+  "aWZvcm5pYTEWMBQGA1UEBxQNTW91bnRhaW4gVmlldzEiMCAGA1UECRQZNDg3IEVh\n"
+  "c3QgTWlkZGxlZmllbGQgUm9hZDEXMBUGA1UEChQOVmVyaVNpZ24sIEluYy4xJTAj\n"
+  "BgNVBAsUHFByb2R1Y3Rpb24gU2VjdXJpdHkgU2VydmljZXMxMzAxBgNVBAsUKlRl\n"
+  "cm1zIG9mIHVzZSBhdCB3d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjEZMBcGA1UE\n"
+  "AxQQd3d3LnZlcmlzaWduLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA\n"
+  "xxA35ev879drgQCpENGRQ3ARaCPz/WneT9dtMe3qGNvzXQJs6cjm1Bx8XegyW1gB\n"
+  "jJX5Zl4WWbr9wpAWZ1YyJ0bEyShIGmkU8fPfbcXYwSyWoWwvE5NRaUB2ztmfAVdv\n"
+  "OaGMUKxny2Dnj3tAdaQ+FOeRDJJYg6K1hzczq/otOfsCAwEAAaOCAf8wggH7MAkG\n"
+  "A1UdEwQCMAAwHQYDVR0OBBYEFPFaiZNVR0u6UfVO4MsWVfTXzDhnMAsGA1UdDwQE\n"
+  "AwIFoDA+BgNVHR8ENzA1MDOgMaAvhi1odHRwOi8vRVZJbnRsLWNybC52ZXJpc2ln\n"
+  "bi5jb20vRVZJbnRsMjAwNi5jcmwwRAYDVR0gBD0wOzA5BgtghkgBhvhFAQcXBjAq\n"
+  "MCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhMDQGA1Ud\n"
+  "JQQtMCsGCCsGAQUFBwMBBggrBgEFBQcDAgYJYIZIAYb4QgQBBgorBgEEAYI3CgMD\n"
+  "MB8GA1UdIwQYMBaAFE5DyB127zdTek/yWG+U8zji1b3fMHYGCCsGAQUFBwEBBGow\n"
+  "aDArBggrBgEFBQcwAYYfaHR0cDovL0VWSW50bC1vY3NwLnZlcmlzaWduLmNvbTA5\n"
+  "BggrBgEFBQcwAoYtaHR0cDovL0VWSW50bC1haWEudmVyaXNpZ24uY29tL0VWSW50\n"
+  "bDIwMDYuY2VyMG0GCCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAh\n"
+  "MB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dv\n"
+  "LnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMA0GCSqGSIb3DQEBBQUAA4IBAQBEueAg\n"
+  "xZJrjGPKAZk1NT8VtTn0yi87i9XUnSOnkFkAuI3THDd+cWbNSUzc5uFJg42GhMK7\n"
+  "S1Rojm8FHxESovLvimH/w111BKF9wNU2XSOb9KohfYq3GRiQG8O7v9JwIjjLepkc\n"
+  "iyITx7sYiJ+kwZlrNBwN6TwVHrONg6NzyzSnxCg+XgKRbJu2PqEQb6uQVkYhb+Oq\n"
+  "Vi9d4by9YqpnuXImSffQ0OZ/6s3Rl6vY08zIPqa6OVfjGs/H45ETblzezcUKpX0L\n"
+  "cqnOwUB9dVuPhtlX3X/hgz/ROxz96NBwwzha58HUgfEfkVtm+piI6TTI7XxS/7Av\n"
+  "nKMfhbyFQYPQ6J9g\n"
+  "-----END CERTIFICATE-----\n"
+  /* chain[2] */
+  "-----BEGIN CERTIFICATE-----\n"
+  "MIIE/zCCBGigAwIBAgIQY5Jrio9Agv2swDvTeCmmwDANBgkqhkiG9w0BAQUFADBf\n"
+  "MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT\n"
+  "LkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw\n"
+  "HhcNMDYxMTA4MDAwMDAwWhcNMjExMTA3MjM1OTU5WjCByjELMAkGA1UEBhMCVVMx\n"
+  "FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz\n"
+  "dCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZv\n"
+  "ciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAz\n"
+  "IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEi\n"
+  "MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8\n"
+  "RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbext0uz/o9+B1fs70Pb\n"
+  "ZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhDY2pSS9KP6HBR\n"
+  "TdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/\n"
+  "Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNH\n"
+  "iDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMB\n"
+  "AAGjggHKMIIBxjAPBgNVHRMBAf8EBTADAQH/MDEGA1UdHwQqMCgwJqAkoCKGIGh0\n"
+  "dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3JsMA4GA1UdDwEB/wQEAwIBBjBt\n"
+  "BggrBgEFBQcBDARhMF+hXaBbMFkwVzBVFglpbWFnZS9naWYwITAfMAcGBSsOAwIa\n"
+  "BBSP5dMahqyNjmvDz4Bq1EgYLHsZLjAlFiNodHRwOi8vbG9nby52ZXJpc2lnbi5j\n"
+  "b20vdnNsb2dvLmdpZjA9BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYc\n"
+  "aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL2NwczAdBgNVHQ4EFgQUf9Nlp8Ld7Lvw\n"
+  "MAnzQzn6Aq8zMTMwgYAGA1UdIwR5MHehY6RhMF8xCzAJBgNVBAYTAlVTMRcwFQYD\n"
+  "VQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMyBQdWJsaWMgUHJp\n"
+  "bWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eYIQcLrkHRDZKTS2OMp7A8y6vzAg\n"
+  "BgNVHSUEGTAXBglghkgBhvhCBAEGCmCGSAGG+EUBCAEwDQYJKoZIhvcNAQEFBQAD\n"
+  "gYEAUNfnArcMK6xK11/59ADJdeNqKOck4skH3qw6WCAYQxfrcn4eobTInOn5G3Gu\n"
+  "39g6DapSHmBex2UtZSxvKnJVlWYQgE4P4wGoXdzV69YdCNssXNVVc59DYhDH05dZ\n"
+  "P4sJH99fucYDkJjUgRUYw35ww0OFwKgUp3CxiizbXxCqEQc=\n"
+  "-----END CERTIFICATE-----\n"
+  /* chain[3] (CA) */
+  "-----BEGIN CERTIFICATE-----\n"
+  "MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG\n"
+  "A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz\n"
+  "cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2\n"
+  "MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV\n"
+  "BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt\n"
+  "YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN\n"
+  "ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE\n"
+  "BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is\n"
+  "I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G\n"
+  "CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do\n"
+  "lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc\n"
+  "AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k\n"
+  "-----END CERTIFICATE-----\n"
+  /* chain[1] */
+  "-----BEGIN CERTIFICATE-----\n"
+  "MIIGCjCCBPKgAwIBAgIQESoAbTflEG/WynzD77rMGDANBgkqhkiG9w0BAQUFADCB\n"
+  "yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL\n"
+  "ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp\n"
+  "U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW\n"
+  "ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0\n"
+  "aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMTYxMTA3MjM1OTU5WjCBvjEL\n"
+  "MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW\n"
+  "ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQg\n"
+  "aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjE4MDYGA1UEAxMvVmVy\n"
+  "aVNpZ24gQ2xhc3MgMyBFeHRlbmRlZCBWYWxpZGF0aW9uIFNTTCBTR0MgQ0EwggEi\n"
+  "MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9Voi6iDRkZM/NyrDu5xlzxXLZ\n"
+  "u0W8taj/g74cA9vtibcuEBolvFXKQaGfC88ZXnC5XjlLnjEcX4euKqqoK6IbOxAj\n"
+  "XxOx3QiMThTag4HjtYzjaO0kZ85Wtqybc5ZE24qMs9bwcZOO23FUSutzWWqPcFEs\n"
+  "A5+X0cwRerxiDZUqyRx1V+n1x+q6hDXLx4VafuRN4RGXfQ4gNEXb8aIJ6+s9nriW\n"
+  "Q140SwglHkMaotm3igE0PcP45a9PjP/NZfAjTsWXs1zakByChQ0GDcEitnsopAPD\n"
+  "TFPRWLxyvAg5/KB2qKjpS26IPeOzMSWMcylIDjJ5Bu09Q/T25On8fb6OCNUfAgMB\n"
+  "AAGjggH0MIIB8DAdBgNVHQ4EFgQUTkPIHXbvN1N6T/JYb5TzOOLVvd8wEgYDVR0T\n"
+  "AQH/BAgwBgEB/wIBADA9BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYc\n"
+  "aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL2NwczA9BgNVHR8ENjA0MDKgMKAuhixo\n"
+  "dHRwOi8vRVZTZWN1cmUtY3JsLnZlcmlzaWduLmNvbS9wY2EzLWc1LmNybDAgBgNV\n"
+  "HSUEGTAXBglghkgBhvhCBAEGCmCGSAGG+EUBCAEwDgYDVR0PAQH/BAQDAgEGMBEG\n"
+  "CWCGSAGG+EIBAQQEAwIBBjBtBggrBgEFBQcBDARhMF+hXaBbMFkwVzBVFglpbWFn\n"
+  "ZS9naWYwITAfMAcGBSsOAwIaBBSP5dMahqyNjmvDz4Bq1EgYLHsZLjAlFiNodHRw\n"
+  "Oi8vbG9nby52ZXJpc2lnbi5jb20vdnNsb2dvLmdpZjApBgNVHREEIjAgpB4wHDEa\n"
+  "MBgGA1UEAxMRQ2xhc3MzQ0EyMDQ4LTEtNDgwPQYIKwYBBQUHAQEEMTAvMC0GCCsG\n"
+  "AQUFBzABhiFodHRwOi8vRVZTZWN1cmUtb2NzcC52ZXJpc2lnbi5jb20wHwYDVR0j\n"
+  "BBgwFoAUf9Nlp8Ld7LvwMAnzQzn6Aq8zMTMwDQYJKoZIhvcNAQEFBQADggEBAFqi\n"
+  "sb/rjdQ4qIBywtw4Lqyncfkro7tHu21pbxA2mIzHVi67vKtKm3rW8oKT4BT+is6D\n"
+  "t4Pbk4errGV5Sf1XqbHOCR+6EBXECQ5i4/kKJdVkmPDyqA92Mn6R5hjuvOfa0E6N\n"
+  "eLvincBZK8DOlQ0kDHLKNF5wIokrSrDxaIfz7kSNKEB3OW5IckUxXWs5DoYC6maZ\n"
+  "kzEP32fepp+MnUzOcW86Ifa5ND/5btia9z7a84Ffelxtj3z2mXS3/+QXXe1hXqtI\n"
+  "u5aNZkU5tBIK9nDpnHYiS2DpKhs0Sfei1GfAsSatE7rZhAHBq+GObXAWO3eskZq7\n"
+  "Gh/aWKfkT8Fhrryi/ks=\n"
+  "-----END CERTIFICATE-----\n"
+};
+
+/* Chain4 is unsorted - random order and includes random certs */
+static const char chain4[] = {
+  /* chain[0] */
+  "-----BEGIN CERTIFICATE-----\n"
+  "MIIGCDCCBPCgAwIBAgIQakrDGzEQ5utI8PxRo5oXHzANBgkqhkiG9w0BAQUFADCB\n"
+  "vjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL\n"
+  "ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2Ug\n"
+  "YXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjE4MDYGA1UEAxMv\n"
+  "VmVyaVNpZ24gQ2xhc3MgMyBFeHRlbmRlZCBWYWxpZGF0aW9uIFNTTCBTR0MgQ0Ew\n"
+  "HhcNMDcwNTA5MDAwMDAwWhcNMDkwNTA4MjM1OTU5WjCCAUAxEDAOBgNVBAUTBzI0\n"
+  "OTc4ODYxEzARBgsrBgEEAYI3PAIBAxMCVVMxGTAXBgsrBgEEAYI3PAIBAhMIRGVs\n"
+  "YXdhcmUxCzAJBgNVBAYTAlVTMQ4wDAYDVQQRFAU5NDA0MzETMBEGA1UECBMKQ2Fs\n"
+  "aWZvcm5pYTEWMBQGA1UEBxQNTW91bnRhaW4gVmlldzEiMCAGA1UECRQZNDg3IEVh\n"
+  "c3QgTWlkZGxlZmllbGQgUm9hZDEXMBUGA1UEChQOVmVyaVNpZ24sIEluYy4xJTAj\n"
+  "BgNVBAsUHFByb2R1Y3Rpb24gU2VjdXJpdHkgU2VydmljZXMxMzAxBgNVBAsUKlRl\n"
+  "cm1zIG9mIHVzZSBhdCB3d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjEZMBcGA1UE\n"
+  "AxQQd3d3LnZlcmlzaWduLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA\n"
+  "xxA35ev879drgQCpENGRQ3ARaCPz/WneT9dtMe3qGNvzXQJs6cjm1Bx8XegyW1gB\n"
+  "jJX5Zl4WWbr9wpAWZ1YyJ0bEyShIGmkU8fPfbcXYwSyWoWwvE5NRaUB2ztmfAVdv\n"
+  "OaGMUKxny2Dnj3tAdaQ+FOeRDJJYg6K1hzczq/otOfsCAwEAAaOCAf8wggH7MAkG\n"
+  "A1UdEwQCMAAwHQYDVR0OBBYEFPFaiZNVR0u6UfVO4MsWVfTXzDhnMAsGA1UdDwQE\n"
+  "AwIFoDA+BgNVHR8ENzA1MDOgMaAvhi1odHRwOi8vRVZJbnRsLWNybC52ZXJpc2ln\n"
+  "bi5jb20vRVZJbnRsMjAwNi5jcmwwRAYDVR0gBD0wOzA5BgtghkgBhvhFAQcXBjAq\n"
+  "MCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhMDQGA1Ud\n"
+  "JQQtMCsGCCsGAQUFBwMBBggrBgEFBQcDAgYJYIZIAYb4QgQBBgorBgEEAYI3CgMD\n"
+  "MB8GA1UdIwQYMBaAFE5DyB127zdTek/yWG+U8zji1b3fMHYGCCsGAQUFBwEBBGow\n"
+  "aDArBggrBgEFBQcwAYYfaHR0cDovL0VWSW50bC1vY3NwLnZlcmlzaWduLmNvbTA5\n"
+  "BggrBgEFBQcwAoYtaHR0cDovL0VWSW50bC1haWEudmVyaXNpZ24uY29tL0VWSW50\n"
+  "bDIwMDYuY2VyMG0GCCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAh\n"
+  "MB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dv\n"
+  "LnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMA0GCSqGSIb3DQEBBQUAA4IBAQBEueAg\n"
+  "xZJrjGPKAZk1NT8VtTn0yi87i9XUnSOnkFkAuI3THDd+cWbNSUzc5uFJg42GhMK7\n"
+  "S1Rojm8FHxESovLvimH/w111BKF9wNU2XSOb9KohfYq3GRiQG8O7v9JwIjjLepkc\n"
+  "iyITx7sYiJ+kwZlrNBwN6TwVHrONg6NzyzSnxCg+XgKRbJu2PqEQb6uQVkYhb+Oq\n"
+  "Vi9d4by9YqpnuXImSffQ0OZ/6s3Rl6vY08zIPqa6OVfjGs/H45ETblzezcUKpX0L\n"
+  "cqnOwUB9dVuPhtlX3X/hgz/ROxz96NBwwzha58HUgfEfkVtm+piI6TTI7XxS/7Av\n"
+  "nKMfhbyFQYPQ6J9g\n"
+  "-----END CERTIFICATE-----\n"
+  /* chain[2] */
+  "-----BEGIN CERTIFICATE-----\n"
+  "MIIE/zCCBGigAwIBAgIQY5Jrio9Agv2swDvTeCmmwDANBgkqhkiG9w0BAQUFADBf\n"
+  "MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT\n"
+  "LkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw\n"
+  "HhcNMDYxMTA4MDAwMDAwWhcNMjExMTA3MjM1OTU5WjCByjELMAkGA1UEBhMCVVMx\n"
+  "FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVz\n"
+  "dCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZv\n"
+  "ciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAz\n"
+  "IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEi\n"
+  "MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8\n"
+  "RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbext0uz/o9+B1fs70Pb\n"
+  "ZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhDY2pSS9KP6HBR\n"
+  "TdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/\n"
+  "Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNH\n"
+  "iDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMB\n"
+  "AAGjggHKMIIBxjAPBgNVHRMBAf8EBTADAQH/MDEGA1UdHwQqMCgwJqAkoCKGIGh0\n"
+  "dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3JsMA4GA1UdDwEB/wQEAwIBBjBt\n"
+  "BggrBgEFBQcBDARhMF+hXaBbMFkwVzBVFglpbWFnZS9naWYwITAfMAcGBSsOAwIa\n"
+  "BBSP5dMahqyNjmvDz4Bq1EgYLHsZLjAlFiNodHRwOi8vbG9nby52ZXJpc2lnbi5j\n"
+  "b20vdnNsb2dvLmdpZjA9BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYc\n"
+  "aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL2NwczAdBgNVHQ4EFgQUf9Nlp8Ld7Lvw\n"
+  "MAnzQzn6Aq8zMTMwgYAGA1UdIwR5MHehY6RhMF8xCzAJBgNVBAYTAlVTMRcwFQYD\n"
+  "VQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMyBQdWJsaWMgUHJp\n"
+  "bWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eYIQcLrkHRDZKTS2OMp7A8y6vzAg\n"
+  "BgNVHSUEGTAXBglghkgBhvhCBAEGCmCGSAGG+EUBCAEwDQYJKoZIhvcNAQEFBQAD\n"
+  "gYEAUNfnArcMK6xK11/59ADJdeNqKOck4skH3qw6WCAYQxfrcn4eobTInOn5G3Gu\n"
+  "39g6DapSHmBex2UtZSxvKnJVlWYQgE4P4wGoXdzV69YdCNssXNVVc59DYhDH05dZ\n"
+  "P4sJH99fucYDkJjUgRUYw35ww0OFwKgUp3CxiizbXxCqEQc=\n"
+  "-----END CERTIFICATE-----\n"
+  "-----BEGIN CERTIFICATE-----\n"
+  "MIIEczCCA9ygAwIBAgIQeODCPg2RbK2r7/1KoWjWZzANBgkqhkiG9w0BAQUFADCB\n"
+  "ujEfMB0GA1UEChMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazEXMBUGA1UECxMOVmVy\n"
+  "aVNpZ24sIEluYy4xMzAxBgNVBAsTKlZlcmlTaWduIEludGVybmF0aW9uYWwgU2Vy\n"
+  "dmVyIENBIC0gQ2xhc3MgMzFJMEcGA1UECxNAd3d3LnZlcmlzaWduLmNvbS9DUFMg\n"
+  "SW5jb3JwLmJ5IFJlZi4gTElBQklMSVRZIExURC4oYyk5NyBWZXJpU2lnbjAeFw0w\n"
+  "ODA2MTAwMDAwMDBaFw0wOTA3MzAyMzU5NTlaMIG2MQswCQYDVQQGEwJERTEPMA0G\n"
+  "A1UECBMGSGVzc2VuMRowGAYDVQQHFBFGcmFua2Z1cnQgYW0gTWFpbjEsMCoGA1UE\n"
+  "ChQjU3Bhcmthc3NlbiBJbmZvcm1hdGlrIEdtYkggJiBDby4gS0cxKTAnBgNVBAsU\n"
+  "IFRlcm1zIG9mIHVzZSBhdCB3d3cudmVyaXNpZ24uY29tMSEwHwYDVQQDFBhoYmNp\n"
+  "LXBpbnRhbi1ycC5zLWhiY2kuZGUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB\n"
+  "AK1CdQ9lqmChZWaRAInimuK7I36VImTuAVU0N6BIS4a2BbblkiekbVf15GVHGb6e\n"
+  "QV06ANN6Nd8XIdfoxi3LoAs8sa+Ku7eoEsRFi/XIU96GgtFlxf3EsVA9RbGdtfer\n"
+  "9iJGIBae2mJTlk+5LVg2EQr50PJlBuTgiYFc41xs9O2RAgMBAAGjggF6MIIBdjAJ\n"
+  "BgNVHRMEAjAAMAsGA1UdDwQEAwIFoDBGBgNVHR8EPzA9MDugOaA3hjVodHRwOi8v\n"
+  "Y3JsLnZlcmlzaWduLmNvbS9DbGFzczNJbnRlcm5hdGlvbmFsU2VydmVyLmNybDBE\n"
+  "BgNVHSAEPTA7MDkGC2CGSAGG+EUBBxcDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v\n"
+  "d3d3LnZlcmlzaWduLmNvbS9ycGEwKAYDVR0lBCEwHwYJYIZIAYb4QgQBBggrBgEF\n"
+  "BQcDAQYIKwYBBQUHAwIwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRw\n"
+  "Oi8vb2NzcC52ZXJpc2lnbi5jb20wbgYIKwYBBQUHAQwEYjBgoV6gXDBaMFgwVhYJ\n"
+  "aW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUS2u5KJYGDLvQUjibKaxLB4shBRgwJhYk\n"
+  "aHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nbzEuZ2lmMA0GCSqGSIb3DQEB\n"
+  "BQUAA4GBAJ03R0YAjYzlWm54gMSn6MqJi0mHdLCO2lk3CARwjbg7TEYAZvDsKqTd\n"
+  "cRuhNk079BqrQ3QapffeN55SAVrc3mzHO54Nla4n5y6x3XIQXVvRjbJGwmWXsdvr\n"
+  "W899F/pBEN30Tgdbmn7JR/iZlGhIJpY9Us1i7rwQhKYir9ZQBdj3\n"
+  "-----END CERTIFICATE-----\n"
+  /* chain[1] */
+  "-----BEGIN CERTIFICATE-----\n"
+  "MIIGCjCCBPKgAwIBAgIQESoAbTflEG/WynzD77rMGDANBgkqhkiG9w0BAQUFADCB\n"
+  "yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL\n"
+  "ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp\n"
+  "U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW\n"
+  "ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0\n"
+  "aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMTYxMTA3MjM1OTU5WjCBvjEL\n"
+  "MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW\n"
+  "ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQg\n"
+  "aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjE4MDYGA1UEAxMvVmVy\n"
+  "aVNpZ24gQ2xhc3MgMyBFeHRlbmRlZCBWYWxpZGF0aW9uIFNTTCBTR0MgQ0EwggEi\n"
+  "MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9Voi6iDRkZM/NyrDu5xlzxXLZ\n"
+  "u0W8taj/g74cA9vtibcuEBolvFXKQaGfC88ZXnC5XjlLnjEcX4euKqqoK6IbOxAj\n"
+  "XxOx3QiMThTag4HjtYzjaO0kZ85Wtqybc5ZE24qMs9bwcZOO23FUSutzWWqPcFEs\n"
+  "A5+X0cwRerxiDZUqyRx1V+n1x+q6hDXLx4VafuRN4RGXfQ4gNEXb8aIJ6+s9nriW\n"
+  "Q140SwglHkMaotm3igE0PcP45a9PjP/NZfAjTsWXs1zakByChQ0GDcEitnsopAPD\n"
+  "TFPRWLxyvAg5/KB2qKjpS26IPeOzMSWMcylIDjJ5Bu09Q/T25On8fb6OCNUfAgMB\n"
+  "AAGjggH0MIIB8DAdBgNVHQ4EFgQUTkPIHXbvN1N6T/JYb5TzOOLVvd8wEgYDVR0T\n"
+  "AQH/BAgwBgEB/wIBADA9BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYc\n"
+  "aHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL2NwczA9BgNVHR8ENjA0MDKgMKAuhixo\n"
+  "dHRwOi8vRVZTZWN1cmUtY3JsLnZlcmlzaWduLmNvbS9wY2EzLWc1LmNybDAgBgNV\n"
+  "HSUEGTAXBglghkgBhvhCBAEGCmCGSAGG+EUBCAEwDgYDVR0PAQH/BAQDAgEGMBEG\n"
+  "CWCGSAGG+EIBAQQEAwIBBjBtBggrBgEFBQcBDARhMF+hXaBbMFkwVzBVFglpbWFn\n"
+  "ZS9naWYwITAfMAcGBSsOAwIaBBSP5dMahqyNjmvDz4Bq1EgYLHsZLjAlFiNodHRw\n"
+  "Oi8vbG9nby52ZXJpc2lnbi5jb20vdnNsb2dvLmdpZjApBgNVHREEIjAgpB4wHDEa\n"
+  "MBgGA1UEAxMRQ2xhc3MzQ0EyMDQ4LTEtNDgwPQYIKwYBBQUHAQEEMTAvMC0GCCsG\n"
+  "AQUFBzABhiFodHRwOi8vRVZTZWN1cmUtb2NzcC52ZXJpc2lnbi5jb20wHwYDVR0j\n"
+  "BBgwFoAUf9Nlp8Ld7LvwMAnzQzn6Aq8zMTMwDQYJKoZIhvcNAQEFBQADggEBAFqi\n"
+  "sb/rjdQ4qIBywtw4Lqyncfkro7tHu21pbxA2mIzHVi67vKtKm3rW8oKT4BT+is6D\n"
+  "t4Pbk4errGV5Sf1XqbHOCR+6EBXECQ5i4/kKJdVkmPDyqA92Mn6R5hjuvOfa0E6N\n"
+  "eLvincBZK8DOlQ0kDHLKNF5wIokrSrDxaIfz7kSNKEB3OW5IckUxXWs5DoYC6maZ\n"
+  "kzEP32fepp+MnUzOcW86Ifa5ND/5btia9z7a84Ffelxtj3z2mXS3/+QXXe1hXqtI\n"
+  "u5aNZkU5tBIK9nDpnHYiS2DpKhs0Sfei1GfAsSatE7rZhAHBq+GObXAWO3eskZq7\n"
+  "Gh/aWKfkT8Fhrryi/ks=\n"
+  "-----END CERTIFICATE-----\n"
+  /* chain[3] (CA) */
+  "-----BEGIN CERTIFICATE-----\n"
+  "MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG\n"
+  "A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz\n"
+  "cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2\n"
+  "MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV\n"
+  "BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt\n"
+  "YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN\n"
+  "ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE\n"
+  "BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is\n"
+  "I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G\n"
+  "CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do\n"
+  "lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc\n"
+  "AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k\n"
+  "-----END CERTIFICATE-----\n"
+  "-----BEGIN CERTIFICATE-----\n"
+  "MIIDgzCCAuygAwIBAgIQJUuKhThCzONY+MXdriJupDANBgkqhkiG9w0BAQUFADBf\n"
+  "MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT\n"
+  "LkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw\n"
+  "HhcNOTcwNDE3MDAwMDAwWhcNMTExMDI0MjM1OTU5WjCBujEfMB0GA1UEChMWVmVy\n"
+  "aVNpZ24gVHJ1c3QgTmV0d29yazEXMBUGA1UECxMOVmVyaVNpZ24sIEluYy4xMzAx\n"
+  "BgNVBAsTKlZlcmlTaWduIEludGVybmF0aW9uYWwgU2VydmVyIENBIC0gQ2xhc3Mg\n"
+  "MzFJMEcGA1UECxNAd3d3LnZlcmlzaWduLmNvbS9DUFMgSW5jb3JwLmJ5IFJlZi4g\n"
+  "TElBQklMSVRZIExURC4oYyk5NyBWZXJpU2lnbjCBnzANBgkqhkiG9w0BAQEFAAOB\n"
+  "jQAwgYkCgYEA2IKA6NYZAn0fhRg5JaJlK+G/1AXTvOY2O6rwTGxbtueqPHNFVbLx\n"
+  "veqXQu2aNAoV1Klc9UAl3dkHwTKydWzEyruj/lYncUOqY/UwPpMo5frxCTvzt01O\n"
+  "OfdcSVq4wR3Tsor+cDCVQsv+K1GLWjw6+SJPkLICp1OcTzTnqwSye28CAwEAAaOB\n"
+  "4zCB4DAPBgNVHRMECDAGAQH/AgEAMEQGA1UdIAQ9MDswOQYLYIZIAYb4RQEHAQEw\n"
+  "KjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL0NQUzA0BgNV\n"
+  "HSUELTArBggrBgEFBQcDAQYIKwYBBQUHAwIGCWCGSAGG+EIEAQYKYIZIAYb4RQEI\n"
+  "ATALBgNVHQ8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgEGMDEGA1UdHwQqMCgwJqAk\n"
+  "oCKGIGh0dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3JsMA0GCSqGSIb3DQEB\n"
+  "BQUAA4GBAAgB7ORolANC8XPxI6I63unx2sZUxCM+hurPajozq+qcBBQHNgYL+Yhv\n"
+  "1RPuKSvD5HKNRO3RrCAJLeH24RkFOLA9D59/+J4C3IYChmFOJl9en5IeDCSk9dBw\n"
+  "E88mw0M9SR2egi5SX7w+xmYpAY5Okiy8RnUDgqxz6dl+C2fvVFIa\n"
+  "-----END CERTIFICATE-----\n"
+};
+
+static time_t mytime (time_t * t)
+{
+  time_t then = 1207000800;
+
+  if (t)
+    *t = then;
+
+  return then;
+}
+
+void
+doit (void)
+{
+  int ret;
+  gnutls_datum_t data;
+  gnutls_x509_crt_t *crts;
+  unsigned int crts_size, i;
+  gnutls_x509_trust_list_t tl;
+  unsigned int status, flags = GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN;
+
+  /* this must be called once in the program
+   */
+  gnutls_global_init ();
+
+  gnutls_global_set_time_function (mytime);
+  gnutls_global_set_log_function (tls_log_func);
+  if (debug)
+    gnutls_global_set_log_level (6);
+
+  /* test for gnutls_certificate_get_issuer() */
+  gnutls_x509_trust_list_init(&tl, 0);
+  
+  ret = gnutls_x509_trust_list_add_trust_mem(tl, &ca, NULL, 
GNUTLS_X509_FMT_PEM, 0, 0);
+  if (ret < 0)
+    {
+      fail("gnutls_x509_trust_list_add_trust_mem\n");
+      exit(1);
+    }
+
+  /* Chain 1 */
+  data.data = (void*) chain1;
+  data.size = sizeof(chain1);
+  ret = gnutls_x509_crt_list_import2(&crts, &crts_size, &data, 
GNUTLS_X509_FMT_PEM, 0);
+  if (ret < 0)
+    {
+      fail("gnutls_x509_crt_list_import2: %s\n", gnutls_strerror(ret));
+      exit(1);
+    }
+  
+  ret = gnutls_x509_trust_list_verify_crt(tl, crts, crts_size, flags, &status, 
NULL);
+  if (ret < 0 || status != 0)
+    {
+      fail("gnutls_x509_trust_list_verify_crt - 1\n");
+      exit(1);
+    }
+    
+  for (i=0;i<crts_size;i++)
+    gnutls_x509_crt_deinit(crts[i]);
+  gnutls_free(crts);
+
+  /* Chain 2 */
+  data.data = (void*) chain2;
+  data.size = sizeof(chain2);
+  ret = gnutls_x509_crt_list_import2(&crts, &crts_size, &data, 
GNUTLS_X509_FMT_PEM, 0);
+  if (ret < 0)
+    {
+      fail("gnutls_x509_crt_list_import2: %s\n", gnutls_strerror(ret));
+      exit(1);
+    }
+  
+  ret = gnutls_x509_trust_list_verify_crt(tl, crts, crts_size, flags, &status, 
NULL);
+  if (ret < 0 || status != 0)
+    {
+      fail("gnutls_x509_trust_list_verify_crt - 2\n");
+      exit(1);
+    }
+    
+  for (i=0;i<crts_size;i++)
+    gnutls_x509_crt_deinit(crts[i]);
+  gnutls_free(crts);
+
+  /* Chain 3 */
+  data.data = (void*) chain3;
+  data.size = sizeof(chain3);
+  ret = gnutls_x509_crt_list_import2(&crts, &crts_size, &data, 
GNUTLS_X509_FMT_PEM, 0);
+  if (ret < 0)
+    {
+      fail("gnutls_x509_crt_list_import2: %s\n", gnutls_strerror(ret));
+      exit(1);
+    }
+  
+  ret = gnutls_x509_trust_list_verify_crt(tl, crts, crts_size, flags, &status, 
NULL);
+  if (ret < 0 || status != 0)
+    {
+      fail("gnutls_x509_trust_list_verify_crt - 3\n");
+      exit(1);
+    }
+    
+  for (i=0;i<crts_size;i++)
+    gnutls_x509_crt_deinit(crts[i]);
+  gnutls_free(crts);
+
+  /* Chain 4 */
+  data.data = (void*) chain4;
+  data.size = sizeof(chain4);
+  ret = gnutls_x509_crt_list_import2(&crts, &crts_size, &data, 
GNUTLS_X509_FMT_PEM, 0);
+  if (ret < 0)
+    {
+      fail("gnutls_x509_crt_list_import2: %s\n", gnutls_strerror(ret));
+      exit(1);
+    }
+  
+  ret = gnutls_x509_trust_list_verify_crt(tl, crts, crts_size, flags, &status, 
NULL);
+  if (ret < 0 || status != 0)
+    {
+      fail("gnutls_x509_trust_list_verify_crt - 4\n");
+      exit(1);
+    }
+    
+  for (i=0;i<crts_size;i++)
+    gnutls_x509_crt_deinit(crts[i]);
+  gnutls_free(crts);
+
+  /* Check if an unsorted list would fail if the unsorted flag is not given */
+  data.data = (void*) chain2;
+  data.size = sizeof(chain2);
+  ret = gnutls_x509_crt_list_import2(&crts, &crts_size, &data, 
GNUTLS_X509_FMT_PEM, 0);
+  if (ret < 0)
+    {
+      fail("gnutls_x509_crt_list_import2: %s\n", gnutls_strerror(ret));
+      exit(1);
+    }
+  
+  ret = gnutls_x509_trust_list_verify_crt(tl, crts, crts_size, 0, &status, 
NULL);
+  if (ret < 0 || status == 0)
+    {
+      fail("gnutls_x509_trust_list_verify_crt - 5\n");
+      exit(1);
+    }
+    
+  for (i=0;i<crts_size;i++)
+    gnutls_x509_crt_deinit(crts[i]);
+  gnutls_free(crts);
+
+  gnutls_x509_trust_list_deinit(tl, 1);
+  
+  gnutls_global_deinit();
+  
+  if (debug) success("success");
+}


hooks/post-receive
-- 
GNU gnutls



reply via email to

[Prev in Thread] Current Thread [Next in Thread]